Repository: file:///home/nathan/Projects/sibyllinesoft.github.io
HEAD commit: 81e2651dc5119888df49ad9b31a9d3b09700ff12
Total files: 1519 Ā· Rendered: 1519 Ā· Skipped: 0
View:

Directory tree

.
ā”œā”€ā”€ .cache
│   ā”œā”€ā”€ eleventy-fetch
│   │   ā”œā”€ā”€ eleventy-fetch-0ca70533982928b147b5fdc377559c
│   │   ā”œā”€ā”€ eleventy-fetch-0ca70533982928b147b5fdc377559c.json
│   │   ā”œā”€ā”€ eleventy-fetch-163cc37f5a3ef2514b6cc5371e582f
│   │   ā”œā”€ā”€ eleventy-fetch-163cc37f5a3ef2514b6cc5371e582f.json
│   │   ā”œā”€ā”€ eleventy-fetch-16b00c58e838a618a605973935e5e1
│   │   ā”œā”€ā”€ eleventy-fetch-16b00c58e838a618a605973935e5e1.json
│   │   ā”œā”€ā”€ eleventy-fetch-1eee96f45bfcfe051f68cea4dcccb2
│   │   ā”œā”€ā”€ eleventy-fetch-1eee96f45bfcfe051f68cea4dcccb2.json
│   │   ā”œā”€ā”€ eleventy-fetch-2230142a331f2a61f5cc06028d9626
│   │   ā”œā”€ā”€ eleventy-fetch-2230142a331f2a61f5cc06028d9626.json
│   │   ā”œā”€ā”€ eleventy-fetch-26353a7cde4d5262242dd2865ece08
│   │   ā”œā”€ā”€ eleventy-fetch-26353a7cde4d5262242dd2865ece08.json
│   │   ā”œā”€ā”€ eleventy-fetch-3f00e41cef53eaca7cea753089cd67
│   │   ā”œā”€ā”€ eleventy-fetch-3f00e41cef53eaca7cea753089cd67.json
│   │   ā”œā”€ā”€ eleventy-fetch-4600b072be5b3d69ec9da49394b2f3
│   │   ā”œā”€ā”€ eleventy-fetch-4600b072be5b3d69ec9da49394b2f3.json
│   │   ā”œā”€ā”€ eleventy-fetch-500f0cfcfd4491af21917b05a42052
│   │   ā”œā”€ā”€ eleventy-fetch-500f0cfcfd4491af21917b05a42052.json
│   │   ā”œā”€ā”€ eleventy-fetch-5bf863b94aafaad1f8f06caf4ffe5e
│   │   ā”œā”€ā”€ eleventy-fetch-5bf863b94aafaad1f8f06caf4ffe5e.json
│   │   ā”œā”€ā”€ eleventy-fetch-66afc12ad2e0accb0253741ac74526
│   │   ā”œā”€ā”€ eleventy-fetch-66afc12ad2e0accb0253741ac74526.json
│   │   ā”œā”€ā”€ eleventy-fetch-7f68ecb9cf3b69adb4df6e62418c53
│   │   ā”œā”€ā”€ eleventy-fetch-7f68ecb9cf3b69adb4df6e62418c53.json
│   │   ā”œā”€ā”€ eleventy-fetch-8fb652f9977792aa72c18045c3eb81
│   │   ā”œā”€ā”€ eleventy-fetch-8fb652f9977792aa72c18045c3eb81.json
│   │   ā”œā”€ā”€ eleventy-fetch-98e7a187d171913abe135d3f5728b2
│   │   ā”œā”€ā”€ eleventy-fetch-98e7a187d171913abe135d3f5728b2.json
│   │   ā”œā”€ā”€ eleventy-fetch-9de3eedab1ef3d94c8a091b9af6955
│   │   ā”œā”€ā”€ eleventy-fetch-9de3eedab1ef3d94c8a091b9af6955.json
│   │   ā”œā”€ā”€ eleventy-fetch-ad0b7611fcfb7225f9adfe5cd1d59e
│   │   ā”œā”€ā”€ eleventy-fetch-ad0b7611fcfb7225f9adfe5cd1d59e.json
│   │   ā”œā”€ā”€ eleventy-fetch-ce07466fa156b8b80fa370669ee8cb
│   │   ā”œā”€ā”€ eleventy-fetch-ce07466fa156b8b80fa370669ee8cb.json
│   │   ā”œā”€ā”€ eleventy-fetch-d7c199e201bb2b823b93c8bde5b940
│   │   ā”œā”€ā”€ eleventy-fetch-d7c199e201bb2b823b93c8bde5b940.json
│   │   ā”œā”€ā”€ eleventy-fetch-d9d3a18eb08ce04b33d2dafa4378b9
│   │   ā”œā”€ā”€ eleventy-fetch-d9d3a18eb08ce04b33d2dafa4378b9.json
│   │   ā”œā”€ā”€ eleventy-fetch-e9796389a43994ea10144e4c6ca3b5
│   │   ā”œā”€ā”€ eleventy-fetch-e9796389a43994ea10144e4c6ca3b5.json
│   │   ā”œā”€ā”€ eleventy-fetch-ec261c7819c2251449362a1c258f00
│   │   ā”œā”€ā”€ eleventy-fetch-ec261c7819c2251449362a1c258f00.json
│   │   ā”œā”€ā”€ eleventy-fetch-f3f8a31ff8038563d3f8944d6e7f1f
│   │   └── eleventy-fetch-f3f8a31ff8038563d3f8944d6e7f1f.json
│   ā”œā”€ā”€ eleventy-fetch-06dfe6e50c25422a31b324f4fb2132
│   ā”œā”€ā”€ eleventy-fetch-06dfe6e50c25422a31b324f4fb2132.text
│   ā”œā”€ā”€ eleventy-fetch-0f242166a8d44b4cb7e288a00d211e
│   ā”œā”€ā”€ eleventy-fetch-0f242166a8d44b4cb7e288a00d211e.text
│   ā”œā”€ā”€ eleventy-fetch-1377bf1b654f64efeb159bdbdd154e
│   ā”œā”€ā”€ eleventy-fetch-1377bf1b654f64efeb159bdbdd154e.json
│   ā”œā”€ā”€ eleventy-fetch-13a1fa6447c59176946a3b49fad4be
│   ā”œā”€ā”€ eleventy-fetch-13a1fa6447c59176946a3b49fad4be.json
│   ā”œā”€ā”€ eleventy-fetch-1f8a4b92d90a056a1a5b1c56f7a84c
│   ā”œā”€ā”€ eleventy-fetch-1f8a4b92d90a056a1a5b1c56f7a84c.json
│   ā”œā”€ā”€ eleventy-fetch-4e8657e92ae0640f8aa0e806ede0ca
│   ā”œā”€ā”€ eleventy-fetch-4e8657e92ae0640f8aa0e806ede0ca.json
│   ā”œā”€ā”€ eleventy-fetch-5428f8ce2144d610d4db7f75eca674
│   ā”œā”€ā”€ eleventy-fetch-5428f8ce2144d610d4db7f75eca674.json
│   ā”œā”€ā”€ eleventy-fetch-632c4057679b4f88eb2bb6027c31b7
│   ā”œā”€ā”€ eleventy-fetch-632c4057679b4f88eb2bb6027c31b7.text
│   ā”œā”€ā”€ eleventy-fetch-64c5f080f69397db18d8c7193b77f6
│   ā”œā”€ā”€ eleventy-fetch-64c5f080f69397db18d8c7193b77f6.json
│   ā”œā”€ā”€ eleventy-fetch-79f9712eb73e5985cb80c1f65c2271
│   ā”œā”€ā”€ eleventy-fetch-79f9712eb73e5985cb80c1f65c2271.json
│   ā”œā”€ā”€ eleventy-fetch-7a4fd64012daf5082f7f266b3877f5
│   ā”œā”€ā”€ eleventy-fetch-7a4fd64012daf5082f7f266b3877f5.json
│   ā”œā”€ā”€ eleventy-fetch-87170d1fc6beed28b3225048d02f47
│   ā”œā”€ā”€ eleventy-fetch-87170d1fc6beed28b3225048d02f47.json
│   ā”œā”€ā”€ eleventy-fetch-967cf05794ca6e0b380a8c7a91c8ad
│   ā”œā”€ā”€ eleventy-fetch-967cf05794ca6e0b380a8c7a91c8ad.json
│   ā”œā”€ā”€ eleventy-fetch-9a2ceb9a84bb71e13e5daadde11dba
│   ā”œā”€ā”€ eleventy-fetch-9a2ceb9a84bb71e13e5daadde11dba.json
│   ā”œā”€ā”€ eleventy-fetch-9bfd42904cf84a5706f4906bf011e9
│   ā”œā”€ā”€ eleventy-fetch-9bfd42904cf84a5706f4906bf011e9.text
│   ā”œā”€ā”€ eleventy-fetch-9d663cc0bb92f357028f24949b341a
│   ā”œā”€ā”€ eleventy-fetch-9d663cc0bb92f357028f24949b341a.text
│   ā”œā”€ā”€ eleventy-fetch-affbb31bc6f3eb4b692dccb3ee2aca
│   ā”œā”€ā”€ eleventy-fetch-affbb31bc6f3eb4b692dccb3ee2aca.json
│   ā”œā”€ā”€ eleventy-fetch-b75c3619d436b5326ade7853e53c4d
│   ā”œā”€ā”€ eleventy-fetch-b75c3619d436b5326ade7853e53c4d.json
│   ā”œā”€ā”€ eleventy-fetch-bb50dac5ac069d15b0ff5726135dea
│   ā”œā”€ā”€ eleventy-fetch-bb50dac5ac069d15b0ff5726135dea.json
│   ā”œā”€ā”€ eleventy-fetch-cb2d0971b5475adfbd473dd3ad01cd
│   ā”œā”€ā”€ eleventy-fetch-cb2d0971b5475adfbd473dd3ad01cd.json
│   ā”œā”€ā”€ eleventy-fetch-d2abc8b9e33465664653662c719d89
│   ā”œā”€ā”€ eleventy-fetch-d2abc8b9e33465664653662c719d89.json
│   ā”œā”€ā”€ eleventy-fetch-d3760d9ed17cf94e88a877a2472792
│   ā”œā”€ā”€ eleventy-fetch-d3760d9ed17cf94e88a877a2472792.json
│   ā”œā”€ā”€ eleventy-fetch-d66276334102a994a9362cc0f2345d
│   ā”œā”€ā”€ eleventy-fetch-d66276334102a994a9362cc0f2345d.text
│   ā”œā”€ā”€ eleventy-fetch-f29b456219785b5c3a29b8406d6b3b
│   ā”œā”€ā”€ eleventy-fetch-f29b456219785b5c3a29b8406d6b3b.json
│   ā”œā”€ā”€ eleventy-fetch-f7e8fab17a9f8591e08eddfd465246
│   ā”œā”€ā”€ eleventy-fetch-f7e8fab17a9f8591e08eddfd465246.json
│   ā”œā”€ā”€ eleventy-fetch-fe87183b8dcb449f04d6a89230d07f
│   └── eleventy-fetch-fe87183b8dcb449f04d6a89230d07f.text
ā”œā”€ā”€ .eleventyignore
ā”œā”€ā”€ .env.example
ā”œā”€ā”€ .git
│   ā”œā”€ā”€ COMMIT_EDITMSG
│   ā”œā”€ā”€ FETCH_HEAD
│   ā”œā”€ā”€ HEAD
│   ā”œā”€ā”€ ORIG_HEAD
│   ā”œā”€ā”€ config
│   ā”œā”€ā”€ description
│   ā”œā”€ā”€ hooks
│   │   ā”œā”€ā”€ applypatch-msg.sample
│   │   ā”œā”€ā”€ commit-msg.sample
│   │   ā”œā”€ā”€ fsmonitor-watchman.sample
│   │   ā”œā”€ā”€ post-update.sample
│   │   ā”œā”€ā”€ pre-applypatch.sample
│   │   ā”œā”€ā”€ pre-commit.sample
│   │   ā”œā”€ā”€ pre-merge-commit.sample
│   │   ā”œā”€ā”€ pre-push.sample
│   │   ā”œā”€ā”€ pre-rebase.sample
│   │   ā”œā”€ā”€ pre-receive.sample
│   │   ā”œā”€ā”€ prepare-commit-msg.sample
│   │   ā”œā”€ā”€ push-to-checkout.sample
│   │   ā”œā”€ā”€ sendemail-validate.sample
│   │   └── update.sample
│   ā”œā”€ā”€ index
│   ā”œā”€ā”€ info
│   │   └── exclude
│   ā”œā”€ā”€ logs
│   │   ā”œā”€ā”€ HEAD
│   │   └── refs
│   │       ā”œā”€ā”€ heads
│   │       │   └── main
│   │       └── remotes
│   │           └── origin
│   │               └── main
│   ā”œā”€ā”€ objects
│   │   ā”œā”€ā”€ 00
│   │   │   ā”œā”€ā”€ 4da8d12a22dd291abefa5d395dd02bad5dd561
│   │   │   ā”œā”€ā”€ 545dc93d3c0a6865d1c097b32a83585ad5618a
│   │   │   ā”œā”€ā”€ 6ee53a747ffe113e025a4f22153c606c076183
│   │   │   ā”œā”€ā”€ 7e66658d867e6c8ae1671b9b6b9c3ffae20c6c
│   │   │   ā”œā”€ā”€ a94fa5f17944ae4a2e75c4689fb0575680fe00
│   │   │   └── b963b58d6f860627d8727b82489b3f44a7e2da
│   │   ā”œā”€ā”€ 01
│   │   │   ā”œā”€ā”€ 0cf611b7e073b60ba24261a5da5c1001b6ca60
│   │   │   ā”œā”€ā”€ 116483eeba95306584bea1e6df6b53d75dd8cb
│   │   │   ā”œā”€ā”€ 1ea182f56c3df0ae630ad17f4e25518b0e7baf
│   │   │   ā”œā”€ā”€ 275f2bc38a4a03e34b804b81c5a26c6b6a1fde
│   │   │   ā”œā”€ā”€ 8827e908eaf3e7847b65029b13003bd31bafcb
│   │   │   ā”œā”€ā”€ 8dded3156014e8d403b163fd539cd3dbf58704
│   │   │   ā”œā”€ā”€ 8eb038f63fd3076bec61bdf09d7f4f38e6c6c2
│   │   │   ā”œā”€ā”€ af6d1f88c6f037c674c7921ecf6c8372631ea1
│   │   │   ā”œā”€ā”€ cf0eae46bf8375878787c2074234f2e7b9f429
│   │   │   ā”œā”€ā”€ d5708ca0f0eeb04d59a6798342daa19d609286
│   │   │   └── dbbbc4c2febcef4d439d633fca02f47f30d70a
│   │   ā”œā”€ā”€ 02
│   │   │   ā”œā”€ā”€ 1c2cff48979b4d7dbc26f990548202708cf1ed
│   │   │   ā”œā”€ā”€ 280f2be72b9b95de286f29c332599b0f05dbd6
│   │   │   ā”œā”€ā”€ 30515ca2ffc7760fce10c924331c1136696b7c
│   │   │   ā”œā”€ā”€ 43f24700a7fd43b034e7803d17554ee0516eac
│   │   │   ā”œā”€ā”€ 4520a2c70262d4e12507bae407403f00c952fc
│   │   │   ā”œā”€ā”€ 5b51a22189d7340da982e630d0aba242a0b6d6
│   │   │   ā”œā”€ā”€ 965e37604237b2c34906da91befa3ea9f2ca2d
│   │   │   ā”œā”€ā”€ ac3e25e1d0d73ca4dbd4b7c3156b4c04e5e42e
│   │   │   └── cb02ced239a06c56158bff57c7eb3fc0773b83
│   │   ā”œā”€ā”€ 03
│   │   │   ā”œā”€ā”€ 2ba7053350ea2ed8a498e71f77d480e898bd18
│   │   │   ā”œā”€ā”€ 39abfb6fc9f70ece7d0b6c53b2f93b6b13e12e
│   │   │   ā”œā”€ā”€ 3b1090b79b3e3f8f2bdc5eeb673eb01e7b520b
│   │   │   ā”œā”€ā”€ 4c7a7e66fc7f5e28fb1f26ce400117b59f8f93
│   │   │   ā”œā”€ā”€ 59bead1dbd030ab4f1345d16e07d8e35096b2c
│   │   │   ā”œā”€ā”€ 736b710eb541a5ea46617cf0221b8270db759c
│   │   │   ā”œā”€ā”€ 9735f6956e627a139930b0da1af157693f6856
│   │   │   ā”œā”€ā”€ b8f048d45cc407867879ee1498854b2abb9cf0
│   │   │   ā”œā”€ā”€ bd9ad236b10af60b791a9b345486a88821496c
│   │   │   └── d9ce4523ff4f80b55c8b3b80d020cc6f52a11c
│   │   ā”œā”€ā”€ 04
│   │   │   ā”œā”€ā”€ 0a994a1a5ca1d57fad9f483133df48fe92d1cc
│   │   │   ā”œā”€ā”€ 4bc5c45998601855b3f0f4a74b4170a57fc4bc
│   │   │   ā”œā”€ā”€ 50c0ce4a74d8a006d2d221e10b582c7a264dee
│   │   │   ā”œā”€ā”€ 5523bd8a6a106e82d681f0d22b99dcec6a4852
│   │   │   ā”œā”€ā”€ 6e2478f9a1ed61ead4e7d7d4c70d3afb72d90b
│   │   │   ā”œā”€ā”€ 7b075c6f095110b67a7e2d710798b521daf902
│   │   │   ā”œā”€ā”€ b0d98c7259c9af30e0f0ce491a8817c20b571c
│   │   │   ā”œā”€ā”€ b742c70b35e6243437aa008af007537210f94e
│   │   │   ā”œā”€ā”€ bfb2c2f036764e8c61d6eab433e51c9c48ae4a
│   │   │   └── f2c2c45fbcaf666709126230b1495927918ccc
│   │   ā”œā”€ā”€ 05
│   │   │   ā”œā”€ā”€ 0e4b6d7b82f4fefd47ea64cfc2c087fedf8ecd
│   │   │   ā”œā”€ā”€ 0f1c84acb9f65dc008ed8929a8ca7c453680d0
│   │   │   ā”œā”€ā”€ 2d1ca3e1f46ecbf1bc008a06b314b49d6b811f
│   │   │   ā”œā”€ā”€ 5f88fe389a87744d3f41260777bbe90fb3d268
│   │   │   ā”œā”€ā”€ cae41cea33380bbec04552dc77f45763a998ef
│   │   │   └── eaa88e8070178eab6ef27536fc03f7d7c33133
│   │   ā”œā”€ā”€ 06
│   │   │   ā”œā”€ā”€ 00e97a43b6609f6ad075b8fd291beb300b60a1
│   │   │   ā”œā”€ā”€ 2d345352677d41e91f97a16fbb66ba91f9e7fe
│   │   │   ā”œā”€ā”€ 2e335245130a8822e685debe7a98f20b7666ec
│   │   │   ā”œā”€ā”€ 37a088a01e8ddab3bf3fa98dbe804cbde1a0dc
│   │   │   ā”œā”€ā”€ 7eb86ce191a9682dd9c14d2baf34f373d474ef
│   │   │   ā”œā”€ā”€ 8d3723edc5031883c19336215dde1b90a47dfa
│   │   │   ā”œā”€ā”€ b4ae078ab65d3b17899643c2e87bbf3e39138e
│   │   │   ā”œā”€ā”€ d095f016d42ff54c5db6d5ab25a75857e78e28
│   │   │   └── f10fff2a9d633f1ad364df4cb9cd69e060f9b4
│   │   ā”œā”€ā”€ 07
│   │   │   ā”œā”€ā”€ 52af773cc5ee3701f91ff69664d266825ce2c6
│   │   │   ā”œā”€ā”€ 659c783a09e401327feb24a86ae63946bd2e52
│   │   │   ā”œā”€ā”€ 76b869f7063cc3d2aff86091745dfe5977a8ae
│   │   │   ā”œā”€ā”€ 8a7c560fb564e8e11d116699fb79840d5c8033
│   │   │   ā”œā”€ā”€ a2a0bf6601ac0d7fe45bbad97a7c23a4c56656
│   │   │   ā”œā”€ā”€ aba4f35fffba3d8d6a4c2d323d4aa6fc840238
│   │   │   ā”œā”€ā”€ bc0d7b8cc7934074f3fc838dfbcb6e8b20a209
│   │   │   ā”œā”€ā”€ e49457208951ef81d861582fb22e65f1726ec8
│   │   │   ā”œā”€ā”€ ea84180326291c35904a62854ea0234ef43851
│   │   │   └── ff2507a506cc87e5995c209c7dd51099fd65c0
│   │   ā”œā”€ā”€ 08
│   │   │   ā”œā”€ā”€ 10fd4105cebdd0d33e7d59eabe39f379995d2a
│   │   │   ā”œā”€ā”€ 1533928bdfb39c0eb88bde99da8a7befc53a8a
│   │   │   ā”œā”€ā”€ 68c9c1b084b2c2c602d402af9b9ee9326ac039
│   │   │   ā”œā”€ā”€ a61bd2693f8a3856ee488a018a499ad1ae5d60
│   │   │   ā”œā”€ā”€ b2b55f7d64323f02940f489a763de6124a9648
│   │   │   ā”œā”€ā”€ c353635bf32e2f29af881d8bfb388ef5cb04ff
│   │   │   ā”œā”€ā”€ c45d2b4c2a760a3275a2bb0a800bd16b6507c5
│   │   │   ā”œā”€ā”€ c467a59edccd3a890b345fcd2fec5c55d88dc1
│   │   │   ā”œā”€ā”€ cc1a4e529021616e74efe2f3434e53fdc7f142
│   │   │   ā”œā”€ā”€ d4f8c7028743abfa60ee7d7f668c97b3205cb5
│   │   │   └── feb690539ddfb2b194cd413bcde00b8d68fd41
│   │   ā”œā”€ā”€ 09
│   │   │   ā”œā”€ā”€ 0162a360df2de5c309fff3e07de5ce2152b5a3
│   │   │   ā”œā”€ā”€ 312883e4506fdfc016e4a0bcfcdbaa544b342e
│   │   │   ā”œā”€ā”€ 41e967735db5347804e4f33494aa4865f6228c
│   │   │   ā”œā”€ā”€ 478d0a2cf3a2149bc497324364027fa4d0cd89
│   │   │   ā”œā”€ā”€ 5e979049aa9b2f5e465a11d0e131e34216297b
│   │   │   ā”œā”€ā”€ 6d5ebc1228ed0d9d63ada34d18b20215f94f46
│   │   │   ā”œā”€ā”€ 971c0d4988f5c6534a94960e698bb14ae9eb5a
│   │   │   ā”œā”€ā”€ b5b340eb882df4c6f7cafd3a388b9bd9aa17b7
│   │   │   ā”œā”€ā”€ c4269f1759da9a6ebbeee623f0c98793ce1d9c
│   │   │   └── e1a8e9fc6063990641c1d2c13ecf5ff3bd19e8
│   │   ā”œā”€ā”€ 0a
│   │   │   ā”œā”€ā”€ 151f05d9aab8ea3f11186e33efba6911340d06
│   │   │   ā”œā”€ā”€ 226dcc56010e4b53634e4739c996577e15683a
│   │   │   ā”œā”€ā”€ 8110464325a4f6f27900881940ff28772ed038
│   │   │   ā”œā”€ā”€ 92a910a97dc8ae4e29186c79de0455c32039ee
│   │   │   ā”œā”€ā”€ a12df6b31824d53eccd7f0f6121bf12c8540a1
│   │   │   ā”œā”€ā”€ f7101ff6e06e19f8a3019dac5d93a46a68e0de
│   │   │   ā”œā”€ā”€ f7d06d7647ef5270f9fdd19d943e09e2695d2c
│   │   │   └── ffbc4aa95a5802c39a18f58c5ce151cad1b2cc
│   │   ā”œā”€ā”€ 0b
│   │   │   ā”œā”€ā”€ 23244a632a7fe74afa763dae7b6bcad813ee29
│   │   │   ā”œā”€ā”€ 24f84413d6ebd1f07d0c42eb0d8019e0976d02
│   │   │   ā”œā”€ā”€ 42c7ee621bae46aee8b44b02f27173c24dac72
│   │   │   ā”œā”€ā”€ 5505a237a4cb3ac43b3772801820efe1f14f81
│   │   │   ā”œā”€ā”€ 5cd58d1aaa75a7a8c9d24bd0959f4cdea6a3f0
│   │   │   ā”œā”€ā”€ 5ff5e1a2c66c2a1dea3d236541bf68cf573be6
│   │   │   ā”œā”€ā”€ 6ba227b0c1ff521d3b2607bc57559a24d84277
│   │   │   ā”œā”€ā”€ 769dede17e262171da4bd6d9dea08444484c10
│   │   │   ā”œā”€ā”€ b7fae0ff652690b9678b96bbca977c2bee4cdf
│   │   │   └── f8136738a179bc0988f237944584beaefc4d46
│   │   ā”œā”€ā”€ 0c
│   │   │   ā”œā”€ā”€ 37cfb55f61e94f0c7e673cf9d4cc8f50829fd8
│   │   │   ā”œā”€ā”€ 44acba77837d6bf94d41c3f3b823a022739591
│   │   │   ā”œā”€ā”€ 57c9560aa2df33de865e47bfe9c4fe7bc3b83d
│   │   │   ā”œā”€ā”€ 73807b1660f7304ba7139c06832bab5359b75a
│   │   │   ā”œā”€ā”€ 94028494ae2bee3c97d22f6fe800bd66343d53
│   │   │   ā”œā”€ā”€ aca7146164aa7d739de1866e6b3fbb086be9b5
│   │   │   ā”œā”€ā”€ c6b2bcd51b2e36067ef17d691a8fb9dcd7c3e3
│   │   │   └── d065ae3110704f88c2f72ccdefa05fea5e1cf4
│   │   ā”œā”€ā”€ 0d
│   │   │   ā”œā”€ā”€ 1937f2e9efbb43d28db49f95bdacf5ec1e69ce
│   │   │   ā”œā”€ā”€ 19e9a1e2d1f4f24c7724bfb4072396d158de27
│   │   │   ā”œā”€ā”€ 23b9271d900fdb78222c03e0e76e330d3f1108
│   │   │   ā”œā”€ā”€ 5f247484cff9b0ef21ee16b4e0a959ce34db06
│   │   │   ā”œā”€ā”€ 68b240f78da255ed858e1b4f20d07797114baa
│   │   │   ā”œā”€ā”€ 8479092b209f95f98329d4e1efa21f4fbe9549
│   │   │   ā”œā”€ā”€ acdc319a742203abf76246ae4759bfebf3a005
│   │   │   └── b50e3be4074929aae60ac2c3430ceeed96a242
│   │   ā”œā”€ā”€ 0e
│   │   │   ā”œā”€ā”€ 2dad3027f1bd35314b3d4e9ceda3f9034588fe
│   │   │   ā”œā”€ā”€ 38ebbdbd1939e80fda20547f9c729b47d77501
│   │   │   ā”œā”€ā”€ 4646ebfb85f427cb86696b2a59b88a3b2f0c80
│   │   │   ā”œā”€ā”€ 55cf5fff666baad5b5d3692b46fcab6269d4f8
│   │   │   ā”œā”€ā”€ 66323a58f99fa462e83c28ea0adeae856c30c0
│   │   │   ā”œā”€ā”€ 6d961fbeed710b1aaf68183f426a445cb5758d
│   │   │   ā”œā”€ā”€ 7f5b3ed07203e3b3d80f9e7e6feb36cf050788
│   │   │   └── f0c0927fa864483466f256d2d293bb819b0ccf
│   │   ā”œā”€ā”€ 0f
│   │   │   ā”œā”€ā”€ 0973d228a9d3f2c989a5582b1cab1e79aef38b
│   │   │   ā”œā”€ā”€ 09c934ccef4f8b250ce96e91c5804c0f275775
│   │   │   ā”œā”€ā”€ 2c7527d5b72b0e401ac304178c09b78619976c
│   │   │   ā”œā”€ā”€ 5dcfcacfa23cd76b476590acaaed8306d7684d
│   │   │   ā”œā”€ā”€ 7f22afc8a1fc95bc0ff34326c30b06a7378ea4
│   │   │   ā”œā”€ā”€ 97ff8b65ba9a1a80ccfe6a5987c023506bd77b
│   │   │   ā”œā”€ā”€ 9b23ad7e43cc2b42d6deeaf8411fffc865640f
│   │   │   └── eab10716b9afa76f2b39ec6afc9032081f6127
│   │   ā”œā”€ā”€ 10
│   │   │   ā”œā”€ā”€ 412a7e184bf8160c81a0044fa4ab031bdec497
│   │   │   ā”œā”€ā”€ 4d077fcf6c81f2fe9ce5f5df9f75b13c3bd931
│   │   │   ā”œā”€ā”€ 653fef5afd9d245387bc084d856d01c9674812
│   │   │   ā”œā”€ā”€ 7a5e800b212c0f4498913ff75643de7ef2e4c3
│   │   │   ā”œā”€ā”€ 8cc8abe36c302b3739e807c9c36d897e73e3a7
│   │   │   ā”œā”€ā”€ 8dc5cb0c5e5f084c59333a659ee8465e5537b5
│   │   │   ā”œā”€ā”€ a184e9efbb562d7eff002e0ec1d041bf0904c0
│   │   │   ā”œā”€ā”€ a42e0b071e8545bbf8d0a3752e2a8dc60f3f54
│   │   │   ā”œā”€ā”€ a483d1917488ba9f41097afc34078ef56972e2
│   │   │   ā”œā”€ā”€ a76c586b0bc72177ba59f6f98ec00868a559a6
│   │   │   └── bd3f2b977711ace51c98f1c549c86c28cbc090
│   │   ā”œā”€ā”€ 11
│   │   │   ā”œā”€ā”€ 5c6d372487c546204a38077afd5f8a697f99c1
│   │   │   ā”œā”€ā”€ 6809cfaaeb5ce3abbce783e82ff0a0c8477a6d
│   │   │   ā”œā”€ā”€ 6a2ae9df9d68500b0eeb685a49dd375a979f01
│   │   │   ā”œā”€ā”€ 71c793b446d4e187abfab1f2827e70ec6ce2ac
│   │   │   ā”œā”€ā”€ 764f2dff4f1b583318b1cea0711a24d8568cb6
│   │   │   ā”œā”€ā”€ 7b72ae3fb09a93f86dda9f211c2edbc847d30e
│   │   │   ā”œā”€ā”€ 9d8409915f30d42e47afc9217b5b8de9946219
│   │   │   ā”œā”€ā”€ a3009b6e76dd2021f806a9848476497ef3fd19
│   │   │   ā”œā”€ā”€ dddd739f284c1bfa21e5559b2d221c2d7d25d7
│   │   │   └── e94038396da230c4161ead8b51753d9dde9f78
│   │   ā”œā”€ā”€ 12
│   │   │   ā”œā”€ā”€ 0748c09aa6943eb2c7f9941183958dd65fe1c6
│   │   │   ā”œā”€ā”€ 11e74ab1d562f327a939ad8e5dae668f46e2be
│   │   │   ā”œā”€ā”€ 15c10b90275c964363fae0579ffb0ec4f9c68e
│   │   │   └── 9cc7219551acde05428799ded207639a0af32c
│   │   ā”œā”€ā”€ 13
│   │   │   ā”œā”€ā”€ 10606652336fd62764d118a679f03b70a7b0a3
│   │   │   ā”œā”€ā”€ 199a50a8a883a9282bbf44dccdcdfbe8d4dace
│   │   │   ā”œā”€ā”€ 1d6845572c1a797341dcfc7ceb87f7d0388982
│   │   │   ā”œā”€ā”€ 2c25ad8d326df5cbfe8ca16080cc934845703d
│   │   │   ā”œā”€ā”€ 3e90699a4af32738461600c07873829adab5cf
│   │   │   ā”œā”€ā”€ 94dbb218823a03cd966fd562e7361ef250ffae
│   │   │   └── bfc45254b153a1f4e87adb59cc5f10ac2b68b0
│   │   ā”œā”€ā”€ 14
│   │   │   ā”œā”€ā”€ 0d7cb72e8a7c841dd0a92d50311aaf6fabf1af
│   │   │   ā”œā”€ā”€ 36c40245c8d666f4c412b17330b35417af4afe
│   │   │   ā”œā”€ā”€ 4d6621f6ee8a360c3bb8087421d302e1e25e2e
│   │   │   ā”œā”€ā”€ 7449d7015e2a780a45ba28386dcc26e3772d83
│   │   │   ā”œā”€ā”€ 8fd7da55fba604b6b55528e3d4602b933a530b
│   │   │   ā”œā”€ā”€ a5bab36c462d955fac8067351b695a1c6b9b32
│   │   │   ā”œā”€ā”€ cdbd74d034b72e39c3fef8e17083d0b99a34eb
│   │   │   ā”œā”€ā”€ e1b76d470830797f74a037de174adfcb714b2f
│   │   │   ā”œā”€ā”€ e205f8a6eb8f2bf44282003b0b571d7886e332
│   │   │   └── f686d55fad8a483b2a79bd59c91519ed0d584b
│   │   ā”œā”€ā”€ 15
│   │   │   ā”œā”€ā”€ 00d3ebc7a75cef62a8fadf5e6018b2d5f00ec9
│   │   │   ā”œā”€ā”€ 2fb4dad49a112bf732ba71d4f8cc2e6065fc4a
│   │   │   ā”œā”€ā”€ 4e7a05905988a94dff50a9894cea861e43f372
│   │   │   ā”œā”€ā”€ b680341549bfbf73759eab554f3c52ce96eedf
│   │   │   ā”œā”€ā”€ bbdd8a17130685a387fdab618dfa575257f905
│   │   │   ā”œā”€ā”€ c69043868dc65d46867ea13cd6dd8c470d1474
│   │   │   ā”œā”€ā”€ e2bd8f5b8888056237bc2d1275197dd9daebb7
│   │   │   └── f98a8e78a755685e2d92219988209ddcf9760e
│   │   ā”œā”€ā”€ 16
│   │   │   ā”œā”€ā”€ 0f79179cdf8307e666aca52fc638b50aee723e
│   │   │   ā”œā”€ā”€ 472732a87829bfe74c5044fbaac59eaa959ccc
│   │   │   ā”œā”€ā”€ 557ba71b2c7e2592411de968843fc7d7274a05
│   │   │   ā”œā”€ā”€ 57ecdeead67df10f571a8e6d17aa5ddd016354
│   │   │   ā”œā”€ā”€ 59a2c0e8f41dd13f3db2fa9a169cc036c32d59
│   │   │   ā”œā”€ā”€ 63c9c6ec240a7ec7e65d653746e402e8d3a430
│   │   │   ā”œā”€ā”€ 9816bc76d3dd6aade0574f27ee1fdf616558d1
│   │   │   └── b1ff00b780653eee690219afe7abd07376da67
│   │   ā”œā”€ā”€ 17
│   │   │   ā”œā”€ā”€ 1ea2548230b6053a06f323e5b9c68e22306b2e
│   │   │   ā”œā”€ā”€ 4c087e82311fcce0407ba769da6b198f5b3290
│   │   │   ā”œā”€ā”€ bf5c0d5915667c7281a18effb17631297c39ac
│   │   │   └── db9af7e3ff233de141c960de4bb6742ee1476b
│   │   ā”œā”€ā”€ 18
│   │   │   ā”œā”€ā”€ 2793f2771f3827c5c83b043a33efefe6dde82d
│   │   │   ā”œā”€ā”€ 3a74458e29a347bfbfccb47120cf6ef79a7bea
│   │   │   ā”œā”€ā”€ 6393001d789402cb2701ff23886b52e0270ce0
│   │   │   ā”œā”€ā”€ 69bd2b424342a7679199cac3756796d13002e2
│   │   │   ā”œā”€ā”€ 7e60c3c80d06253bddfcb6242f56c69d4dceb6
│   │   │   ā”œā”€ā”€ affa8eda91c0b9c8639c2dc27e5e37cbe825f6
│   │   │   ā”œā”€ā”€ b96c8b489243270c80cc6dbf85982c84bcc155
│   │   │   ā”œā”€ā”€ c712b630c3c6b6a3bc58cf4490d7a409166a0e
│   │   │   ā”œā”€ā”€ ebb7ea23534caf5016e406edac6f10956a9157
│   │   │   └── f0bbe3d7e1c064cced4802158bb6e007ed7a0e
│   │   ā”œā”€ā”€ 19
│   │   │   ā”œā”€ā”€ 113101328fe714b842db351f339148e1dc1e41
│   │   │   ā”œā”€ā”€ 27f1e45517ecc1b10789783f6d926fa39f9a89
│   │   │   ā”œā”€ā”€ 2d958d1270be2af641389fbc5929e11338ec07
│   │   │   ā”œā”€ā”€ 739786de3800727bfc9fae1c5bd61cb80f24cc
│   │   │   ā”œā”€ā”€ 76dd6ae9308b62e76ba9a9e2346333150aa91f
│   │   │   ā”œā”€ā”€ 9177d2bec937715d54f028ad29f003b0fed4ad
│   │   │   ā”œā”€ā”€ c97b3b76adf154c7901e4508673cfa7166d0e5
│   │   │   ā”œā”€ā”€ dcb2b3e069a6eab36cd1213a976ef059fbdcc3
│   │   │   └── fee3467b66e38f8ab0af28c4c661d23f9eb993
│   │   ā”œā”€ā”€ 1a
│   │   │   ā”œā”€ā”€ 1878f28803c72f5d5b05b9de2d5cd9c0c8a4a4
│   │   │   ā”œā”€ā”€ 2565646dce8af256b79745c1d3c26fb6f7b12e
│   │   │   ā”œā”€ā”€ 54990228d490a3ba4fe988596bdca3e5f413ca
│   │   │   ā”œā”€ā”€ 551837396a99cab1d1fd196bb9e30e6189d98d
│   │   │   ā”œā”€ā”€ 63cc4461575cac504ddaafbf69b9422242a68c
│   │   │   ā”œā”€ā”€ 6cd457acb8ee764547b61b9cf25c42ee6f66b6
│   │   │   ā”œā”€ā”€ a57ce38c4a72119f5db11df429462a4aaaf26f
│   │   │   ā”œā”€ā”€ b00548e492dc337fb70c8da81880a3411e2efa
│   │   │   ā”œā”€ā”€ cb373683d1663ebd2f7e19681af0ab4a05c496
│   │   │   └── f7b64bc1f94c00ab400f7d4d803688a44a748f
│   │   ā”œā”€ā”€ 1b
│   │   │   ā”œā”€ā”€ 05d171202a828e1748d5a33fd0cdc290c0477c
│   │   │   ā”œā”€ā”€ 17a78286c1b04118d257a6d5c7a28bd5db96b4
│   │   │   ā”œā”€ā”€ 54903bb0f3d425989cef5b4fa35e64562878ff
│   │   │   ā”œā”€ā”€ a8e56193ab31f854b11e550b218b414108d8ec
│   │   │   ā”œā”€ā”€ c16996df0b772b432d4adc3bdbe580404dd481
│   │   │   ā”œā”€ā”€ c23a7f21344dbc680437f00bed6b4017b9c4ef
│   │   │   ā”œā”€ā”€ cef216eebbb3117813ff33bbf48ca08922bcfd
│   │   │   ā”œā”€ā”€ cf644560a787d8cc1e3ea167c682135089f276
│   │   │   ā”œā”€ā”€ e1f684430511fa10dcf513c3cac6219e58c9e9
│   │   │   └── ecba6fd0880f40391f9e95c2935f6e000bf7fa
│   │   ā”œā”€ā”€ 1c
│   │   │   ā”œā”€ā”€ 209838f684fe60fe0405ffb9bc99d218abe7d0
│   │   │   ā”œā”€ā”€ 23c325636c423335be9a10cb86517cd8b8f0ed
│   │   │   ā”œā”€ā”€ 4c4487986cbfdbd6bd75a03b59bb8ab605b16c
│   │   │   ā”œā”€ā”€ a1f35b51b00502be4df874e5d523af04a6476c
│   │   │   ā”œā”€ā”€ bfc0dfaee90f4840165829d5a89be5865a406c
│   │   │   ā”œā”€ā”€ cce9dd4d274843fff9ca55fa605e32147702c1
│   │   │   └── eaa1c057d2fa1544a31dd2460440676176d27c
│   │   ā”œā”€ā”€ 1d
│   │   │   ā”œā”€ā”€ 254c73cf7779f1ec2dd483fe2ceaac33e8ff72
│   │   │   ā”œā”€ā”€ 35a9ae42035168caf2ab80890defd47b724470
│   │   │   ā”œā”€ā”€ 669b54c3af5f156ce8619fb59a7d77a53cea27
│   │   │   ā”œā”€ā”€ 77a3d4ccc32948be8a72f175b1f70ff0d778fa
│   │   │   ā”œā”€ā”€ 8d2fee4405739d2e1ac0e8759609affd144441
│   │   │   ā”œā”€ā”€ 9104b5a6359bf9078995d9e4723753340a62f7
│   │   │   ā”œā”€ā”€ aedb7d1ace32e14c91d88264e75bb18688f3bb
│   │   │   ā”œā”€ā”€ b4602b4f798093eef0300141573aaed6275e6c
│   │   │   ā”œā”€ā”€ b4898eb2608f89e71fd0cc6efca7460c6cd2cd
│   │   │   ā”œā”€ā”€ d71b9573abe53ccfc6a9757757d90215e0e14e
│   │   │   ā”œā”€ā”€ e173840d6f873715b8b23094b87e84c30894ac
│   │   │   └── e7851747318fa4f1c3c383e2a8d86a1b82ee09
│   │   ā”œā”€ā”€ 1e
│   │   │   ā”œā”€ā”€ 8551e7e7c9cebfc2b6b06eb1481e306b68cddf
│   │   │   ā”œā”€ā”€ 8e14e1be7bb9b258815ef18ac8ba0af059019c
│   │   │   ā”œā”€ā”€ 9a59ba346488d68e211acb314a1d6aa2bacf05
│   │   │   └── ab6e153ff6de503e5ec93ec7994dc69902a53b
│   │   ā”œā”€ā”€ 1f
│   │   │   ā”œā”€ā”€ 436004ee83a8add94364311c9e66aea610f2b6
│   │   │   ā”œā”€ā”€ 6a083db646bf741a23bae99e0e86875d546d22
│   │   │   ā”œā”€ā”€ 74b4e8c74116dda7357101c0f148960639e83e
│   │   │   ā”œā”€ā”€ 7a322c94accb59d8699f4c10f23fe717929113
│   │   │   ā”œā”€ā”€ 892bc45df6fc097b9f0aadedf7d9a8d7863d18
│   │   │   ā”œā”€ā”€ a5be3afdafefdfa0330798282277b8aa540c10
│   │   │   ā”œā”€ā”€ c948286de2656d2f11bf19c412700ece9e1977
│   │   │   └── fcebdbb0d920af40936fcd54c5895d8e3202be
│   │   ā”œā”€ā”€ 20
│   │   │   ā”œā”€ā”€ 1d30736a7ce08ffc4627c0c37d5fc50aa5ca71
│   │   │   ā”œā”€ā”€ 2b92dc15d8a3f40699b2593343cd86cdb0f49e
│   │   │   ā”œā”€ā”€ 4a873721c118f0cfb3a41fbc60ebf8b9b23c89
│   │   │   ā”œā”€ā”€ 4e3ca7d456d8aa182cde585f6fb7317986dda6
│   │   │   ā”œā”€ā”€ a7cecdc1c92062e90e0c2bbd99ead38a7d4d4e
│   │   │   └── ccd71dd426fadfb52179c7643e6601e078bf31
│   │   ā”œā”€ā”€ 21
│   │   │   ā”œā”€ā”€ 0d78473000065a913b629b65e73a688d5d0775
│   │   │   ā”œā”€ā”€ 3ea75552238077c53259f1eddf0d5b099533a3
│   │   │   ā”œā”€ā”€ 4e76cea0211cb9ec5884bb798e39aead92ab52
│   │   │   ā”œā”€ā”€ 52709bce0f7abc7dfe89a70e670add6ca49bce
│   │   │   ā”œā”€ā”€ 59a77506b940cec48b7bb63eb6971b1b044dfc
│   │   │   ā”œā”€ā”€ 5dbc7d9b05065c0b035648c4614199122047c2
│   │   │   ā”œā”€ā”€ 643b924574edff28ea0855f764aca3041e01e7
│   │   │   ā”œā”€ā”€ 9b52f21048fad871810dbb6741b68fe46c7ef8
│   │   │   ā”œā”€ā”€ a864f068d4905e872a1e486e29514d3d9c97e7
│   │   │   └── d26a3cbdad12b91dd3f531191a6d7cd39def96
│   │   ā”œā”€ā”€ 22
│   │   │   ā”œā”€ā”€ 07a7add5f40976db0afcee6efe7ae31c8bcaa8
│   │   │   ā”œā”€ā”€ 2f105375718503169e51a88e437f1b29a3409e
│   │   │   ā”œā”€ā”€ 32f51373f5bd2b28bf0676c0f58f474b0e7f59
│   │   │   ā”œā”€ā”€ 4a31c663aa0f388d6c613e01f8aeba25d6b40f
│   │   │   ā”œā”€ā”€ 540a8bf1d5ec0ee26a5a78bfcac69919708d0b
│   │   │   ā”œā”€ā”€ 7b0f43d4dfcc4285204adba2ecb7e563e3d13a
│   │   │   ā”œā”€ā”€ 804cd08f969b7e9b36c58f1951830778692a6a
│   │   │   ā”œā”€ā”€ 99acc4ef24d754dee2c99f6d33d73846dbe6ec
│   │   │   ā”œā”€ā”€ b2a5b464886046ff65ceae0f0668f0660b70c4
│   │   │   └── ee344f3abe89679c1410bbf113678b8cb0c124
│   │   ā”œā”€ā”€ 23
│   │   │   ā”œā”€ā”€ 2a9fe1ad08aa6ba8936e8a923a995ec220639a
│   │   │   └── c505782f7ea23c21a2510b71c7d086dc90ba98
│   │   ā”œā”€ā”€ 24
│   │   │   ā”œā”€ā”€ 1dc4826eded19b3ab2e298141edcbbb4ec4744
│   │   │   ā”œā”€ā”€ 3c904c806fc57af35fe44ab4f71c6724e88385
│   │   │   ā”œā”€ā”€ 5f3333225b4d00fb78a0fee1bd90417e3cdda3
│   │   │   ā”œā”€ā”€ 6a99289c9cd14a6a33ec2383a11f096d890e04
│   │   │   ā”œā”€ā”€ 8c18157f5afe1e9eef4202cefaba63bd652d18
│   │   │   └── 8e1640f1e5c1aa0454b2f8be937794e76ed1e0
│   │   ā”œā”€ā”€ 25
│   │   │   ā”œā”€ā”€ 08e481b12ded44a0b667fe06c132497f707f19
│   │   │   ā”œā”€ā”€ 0e0499172461c814f03e2119c449d1a4ea691d
│   │   │   ā”œā”€ā”€ 1b89b2b0ff908ce4a5a82e2e69a65589fa10a6
│   │   │   ā”œā”€ā”€ 2bdeb9b20839c9b705f14eab119da09b86ad21
│   │   │   ā”œā”€ā”€ 34fd396c035f7996182f7459a22bdbfa7cebac
│   │   │   ā”œā”€ā”€ 54b24074eeedf5e26491b552369b672fb9bd58
│   │   │   ā”œā”€ā”€ 806a31b1efcc1107ff0f8ce129206ba6f31476
│   │   │   ā”œā”€ā”€ a6358bd6acf84e978f2557b361c4c3ce567b6f
│   │   │   ā”œā”€ā”€ cc58df7f5b8ee536a0060742f8f5f8174c7adb
│   │   │   ā”œā”€ā”€ d3b782c1ca8c6796ff3e8def14e92a0dd2f076
│   │   │   └── f34c12b2e7d07f82ab548f735b343ce0694da4
│   │   ā”œā”€ā”€ 26
│   │   │   ā”œā”€ā”€ 0cb60393c25408e978b2d540722bc704c111fb
│   │   │   └── 6318c9cc14b06bde524b92342409fe843001eb
│   │   ā”œā”€ā”€ 27
│   │   │   ā”œā”€ā”€ 50a20f1c8785a19a922145856b3bdfc57f4806
│   │   │   ā”œā”€ā”€ 53a0e27df460a63c81930f32c9803d78e1aec6
│   │   │   ā”œā”€ā”€ 8699538f7965d7171f4637a0c75fd40988af00
│   │   │   ā”œā”€ā”€ 973078bb69593c920866c26069d60846e1d080
│   │   │   ā”œā”€ā”€ 9aaff95ce1dd2eedb62e4b544155939afc90ec
│   │   │   └── bde56128ceaebe355813ee500b1a89e334f5d3
│   │   ā”œā”€ā”€ 28
│   │   │   ā”œā”€ā”€ 7f77eb4cc53a9c81a39b7f0437d3d8f32a2189
│   │   │   ā”œā”€ā”€ 8e0aa15365c50e6383117e183cf8b7666f7be4
│   │   │   └── 8f9616d1e6adbe67ba9a37a031dae07daa6ab3
│   │   ā”œā”€ā”€ 29
│   │   │   ā”œā”€ā”€ 191755e19c8b3d94fca2dba2ad30ea97ad4c29
│   │   │   ā”œā”€ā”€ 201f04fb0ce763f5b882cabb46377aba2aa9dc
│   │   │   ā”œā”€ā”€ 59833eeb5cfb6fcf775601424a4adecf1669d1
│   │   │   ā”œā”€ā”€ 6273dd2c59c46a5d848a24185afe9fd1aa3aa6
│   │   │   ā”œā”€ā”€ 8c467e4794ee811d35d9eb733b63f4d28acf79
│   │   │   ā”œā”€ā”€ b9f0cf22f291a31cabe8ecef8b2da5564efc95
│   │   │   ā”œā”€ā”€ cab1de020f4f306e1fd9d163642a978a7bd3f2
│   │   │   └── f0cfcc3842ed7093a7bf08cad88f139f3de183
│   │   ā”œā”€ā”€ 2a
│   │   │   ā”œā”€ā”€ 2eb3aa16e144fcd1b712de0ad4c52834b09b15
│   │   │   ā”œā”€ā”€ 426b92adfef58f57e1666d1a08100d37ff4b1c
│   │   │   ā”œā”€ā”€ 59b177e17ebaf0a9f2718f95853ed71c217685
│   │   │   ā”œā”€ā”€ 98a6f7c55b3fa4ab5a3ab44ae11c973aa60113
│   │   │   ā”œā”€ā”€ bb5b55df4e73a20eb8d313f582d297f36f3169
│   │   │   └── cffd2319d11e132721c8374dd3fa6371f08410
│   │   ā”œā”€ā”€ 2b
│   │   │   ā”œā”€ā”€ 3ae96ea6ef3c957df38d974362d7a810c6ab6d
│   │   │   ā”œā”€ā”€ 55e3208d3a2057136eaa82d8481a688c60c0b8
│   │   │   ā”œā”€ā”€ 659a1bb83b2522282ae7e64484fa13d82a1fbe
│   │   │   ā”œā”€ā”€ 92d61bfd41873ce227afd19df23e038f92a27e
│   │   │   ā”œā”€ā”€ d48787cc397dcb425d1f0ca1875c8bf66998cb
│   │   │   ā”œā”€ā”€ e2855a9666f6b12dcc7d3909306839ffff64fe
│   │   │   └── e9f91219792fafb994152a03cd4a8de21c13cd
│   │   ā”œā”€ā”€ 2c
│   │   │   ā”œā”€ā”€ 100863a48974b3f122a13b0add8ba4a203da9f
│   │   │   ā”œā”€ā”€ 21fa70a090b9a6e37f2f0405fef339857ba23d
│   │   │   ā”œā”€ā”€ 682e5e4a2ec3e060006dbc86e88f7df66b67f0
│   │   │   ā”œā”€ā”€ 6f54d9d163cdbf883cfa31183ca4f85ef030b1
│   │   │   ā”œā”€ā”€ b6345d50b0c5ceb3e5d661195cee38e52fef7d
│   │   │   ā”œā”€ā”€ cb5010b8af46e98d84832f3f1ac9f3de7f9eff
│   │   │   └── cc502d79c46aea7c4ed90b269e3c16250de948
│   │   ā”œā”€ā”€ 2d
│   │   │   ā”œā”€ā”€ 625806118d924a047b13cc646539ba9b351e27
│   │   │   ā”œā”€ā”€ 72c02a083f22e6d64fc96e5c869a4a95ae28ad
│   │   │   ā”œā”€ā”€ 8ec3abbc5e61ceb0fef394d1c53ea6a7a67622
│   │   │   ā”œā”€ā”€ ad1855035c8f02160df220299030b6f34f33b4
│   │   │   ā”œā”€ā”€ bc933996915041a639829ba6b5d3f6d6a1188b
│   │   │   └── f274a065e17962e64e83811677b72288691e46
│   │   ā”œā”€ā”€ 2e
│   │   │   ā”œā”€ā”€ 0134ec83b1d80b7b7c85dc3944e5befee772bd
│   │   │   ā”œā”€ā”€ 081331777ef39c18bdb140de0a844b65677116
│   │   │   ā”œā”€ā”€ 163c51aeb66ceff3f4020fc88215261126b632
│   │   │   ā”œā”€ā”€ 276e65b2f8fd699e4934cce33b66d561bde84f
│   │   │   ā”œā”€ā”€ 5fb1fbc07cf054ad1b93e503ed7dd3aa8e8bc8
│   │   │   ā”œā”€ā”€ b80687568323af21087c459b2c8a37dee1bf73
│   │   │   ā”œā”€ā”€ c6887e5a9c6f8dde74f83d156c883755d13f4e
│   │   │   ā”œā”€ā”€ c88468c070b28bd2c75fdbf657753dc32f45dd
│   │   │   └── faf3669cffffb88051f5ccc9085631a95bc8b7
│   │   ā”œā”€ā”€ 2f
│   │   │   ā”œā”€ā”€ 24b4f09b74a9b6397e2b2c6ee22c3d7bb1d224
│   │   │   ā”œā”€ā”€ 3f67053d68f6cfd41bb1f629bbe70c52186e43
│   │   │   ā”œā”€ā”€ 4d8b09b2c6fff1409d5f170bc4e1ad4172983d
│   │   │   ā”œā”€ā”€ 7bdf89528c383c8c118516f00ae68314e672a7
│   │   │   ā”œā”€ā”€ c224acca99e7dfa7b60a1ab73d1208d4d8b0d0
│   │   │   └── db7cc2bbbda83189c2554d6021b4505d0ef203
│   │   ā”œā”€ā”€ 30
│   │   │   ā”œā”€ā”€ 05fc1f9744f2db329e8bbc0c65ccab8eb1524d
│   │   │   ā”œā”€ā”€ 37b78e45adf7ae6aea82c01b2bd8805bebfbba
│   │   │   ā”œā”€ā”€ 3d285ccbab802d97fa59e1a333838ae2c85346
│   │   │   ā”œā”€ā”€ 8b77901ced1ae57b67cd603d799abaae3a2b0e
│   │   │   ā”œā”€ā”€ a71ff9cd40142825f4ab2c73014e4ada24aea9
│   │   │   ā”œā”€ā”€ b3c822b7ee62667c76d1ded219b836b66534b2
│   │   │   └── c4d3f5ccba97ea965b46fe479c1b537e9ba76c
│   │   ā”œā”€ā”€ 31
│   │   │   ā”œā”€ā”€ 026e5f2af71ae551e3b5262360022778f41be8
│   │   │   ā”œā”€ā”€ 0d40752c81f9cf0d67e4576d17297cf98ff14a
│   │   │   ā”œā”€ā”€ 19a94ecec95d769aaf0d0ce0d69758621b7435
│   │   │   ā”œā”€ā”€ 459de9355bc4a3020ec50df1d4ea57a5e78d72
│   │   │   ā”œā”€ā”€ 6983e4e2e4e864962664949c810db2c4473602
│   │   │   ā”œā”€ā”€ 6d562498abceb03bfa3c020042cb02084e50f4
│   │   │   ā”œā”€ā”€ 70a5e91a9980c39eb58fd3784b9fba079e1a75
│   │   │   ā”œā”€ā”€ 71a578a1ed9e52992fecae4720720f2e111827
│   │   │   ā”œā”€ā”€ 82cdc88d8b45b629cbd911fda3a2cbe0debf49
│   │   │   ā”œā”€ā”€ a0972c0b2bd09a520cccb690525ead0c801734
│   │   │   ā”œā”€ā”€ b0124f3f32f292c9648374d0b884d5d006888b
│   │   │   ā”œā”€ā”€ bd659a0d432311a9816050d0b8467f8e4c050d
│   │   │   └── caf374628629859eddf4e65ab34e155d46f53e
│   │   ā”œā”€ā”€ 32
│   │   │   ā”œā”€ā”€ 52b534845eb7e11331fed0e8378ddad0ef1c0a
│   │   │   ā”œā”€ā”€ 581f4ed064568d659900587b651fcf0f84741a
│   │   │   ā”œā”€ā”€ 849705e1d379a333249564be781a3ae55e9c21
│   │   │   ā”œā”€ā”€ a7217d3f545f159a99a2b286d51ff36ec7fecd
│   │   │   ā”œā”€ā”€ b0dc46802882d6a0af56d4f0fc19185ef4106b
│   │   │   ā”œā”€ā”€ b4b451d09a915540bcf5bb84a49a621062d4fd
│   │   │   └── f6645694eb60179ea27ace799eccdbc6bee565
│   │   ā”œā”€ā”€ 33
│   │   │   ā”œā”€ā”€ 0df39ae67d4220d7855830fee5748ef7f0ae53
│   │   │   ā”œā”€ā”€ 1a0acbb79ee85dbaf75828b48b8af74a490fb3
│   │   │   ā”œā”€ā”€ 33cca16efecff140299e4f807e4d7b0483d603
│   │   │   ā”œā”€ā”€ 3b6fe93ac25fd417e50fc6024770b6d47182ac
│   │   │   ā”œā”€ā”€ 4cfb3bf4caf99b3672750faaee8a6a2e2d5ef0
│   │   │   ā”œā”€ā”€ 64b69e239e4eeea88440f09b7d3f3b6a78d2cf
│   │   │   └── c7f1dcf956c73b7ffbdb3478697b501b34f958
│   │   ā”œā”€ā”€ 34
│   │   │   ā”œā”€ā”€ 1534db901f5e5955b427883f169398f9d6f177
│   │   │   ā”œā”€ā”€ 37d035db810f10b2102de0d58111671a427bf0
│   │   │   ā”œā”€ā”€ 39647503635ab5393d4e0d08b70a84f1544188
│   │   │   ā”œā”€ā”€ 8409aa221891eefd6da8432cc90db4a5761530
│   │   │   ā”œā”€ā”€ a09d30aed0b2effb8e7d0f269499d8c34406d4
│   │   │   ā”œā”€ā”€ b910cd99bbfa0d18140cf4dca32832c7b079c5
│   │   │   └── d6beb38472a84d4fd9aea14e6118356efc9aa7
│   │   ā”œā”€ā”€ 35
│   │   │   ā”œā”€ā”€ 0c776dbbd5fe56c9ae9096894bfce61079bc59
│   │   │   ā”œā”€ā”€ 1fba1ee817faa64e2f3801f8532109c51506f9
│   │   │   ā”œā”€ā”€ 468c599d6c7b23db553512ea23a8d3d78b05c4
│   │   │   ā”œā”€ā”€ 7548e61f65a1130bdfef084327151f9bdf1f8e
│   │   │   ā”œā”€ā”€ c152405e32f6683667509315a55a9d703238c2
│   │   │   ā”œā”€ā”€ d2f0d74c9f4e2c794ed63ea2ec2d0b8c1c9926
│   │   │   └── e9df603aae42460a6df3aa3047efefde0e4716
│   │   ā”œā”€ā”€ 36
│   │   │   ā”œā”€ā”€ 0201e8513e9582c83d861bd6b73841cefa544b
│   │   │   ā”œā”€ā”€ 138865f77e792aba1d849e19a9dcb7d9dac220
│   │   │   ā”œā”€ā”€ 25900c83a060a9df0288a777229af0f79ad18a
│   │   │   ā”œā”€ā”€ 6c2b31302045ae296d65977075bb3d8b5d98ef
│   │   │   ā”œā”€ā”€ 8488eda59a43c46884e1dea94e4a8a2f58684b
│   │   │   ā”œā”€ā”€ 8ce67a9f0d15f28fc4f27f103b78521ddff724
│   │   │   ā”œā”€ā”€ 9cf867effbea76fb719e7ebf18aab8f05c07b2
│   │   │   ā”œā”€ā”€ a1bfc110316f5869699e90f34d5411313af708
│   │   │   ā”œā”€ā”€ aab736f4df81f5d4864930ddd06b04017fb6f1
│   │   │   ā”œā”€ā”€ e2aac905bc82a6bee357c43685451daaad5ca6
│   │   │   ā”œā”€ā”€ eb70509254b5174dcd2bf504230e29f6ca4e87
│   │   │   └── fc59b49620dbc43cc4636374b173e5deb19534
│   │   ā”œā”€ā”€ 37
│   │   │   ā”œā”€ā”€ 1f7e242c52f2cf0da263e68f8e166ee8edee08
│   │   │   ā”œā”€ā”€ 448c977074f63da073def98ee589351da6b51f
│   │   │   ā”œā”€ā”€ 5b337589f3f4d02b373f67135f6d19c0eba839
│   │   │   ā”œā”€ā”€ 608e5444d3fc48bb7bc67d87be84f342b382bf
│   │   │   ā”œā”€ā”€ 9cb361fbdfc210c9e15d153ba3977c24814185
│   │   │   ā”œā”€ā”€ c364d2137ccc51c43d44ff4648d631c91689f5
│   │   │   ā”œā”€ā”€ cd773398078bed8053c8add135e610a1eb1456
│   │   │   ā”œā”€ā”€ dcf2b1268a6ae787aa3de93d3389881f813519
│   │   │   ā”œā”€ā”€ ed021c32b01fbcab2bee8c9b23bf0d1b4e34b4
│   │   │   ā”œā”€ā”€ f459b361097222e75a4352f458b7ad8964f624
│   │   │   └── fd3a6eecd5d6d4213f545cb4275940255f434a
│   │   ā”œā”€ā”€ 38
│   │   │   ā”œā”€ā”€ 02197228a04c257194263a012a10f944695de1
│   │   │   ā”œā”€ā”€ 051ba8e6707563d05342b41fbc13b3aaf851a8
│   │   │   ā”œā”€ā”€ 36f7bdce7e4886dd17f96073ee512ce8b42871
│   │   │   ā”œā”€ā”€ 58f870d066bf968d8fd314277be8cb4d649ead
│   │   │   ā”œā”€ā”€ 6c540a93b3026765410aa2f68ac90700e10b82
│   │   │   ā”œā”€ā”€ 711489c191702169ea9794c2bce54f569b2c3e
│   │   │   ā”œā”€ā”€ 80fcf72f4034d96da6a4efa2392d6ca79afc22
│   │   │   ā”œā”€ā”€ 885d1d2325be53309c63bca935e9bfe203b054
│   │   │   ā”œā”€ā”€ 8b89a17f62d6488469feb74fd7c24a8b9aa9c8
│   │   │   └── 92f6013dcf0085790c48220c67ee93b059bbeb
│   │   ā”œā”€ā”€ 39
│   │   │   ā”œā”€ā”€ 09dc554adc8edb78ab4f16efe3bb46530e3f4a
│   │   │   ā”œā”€ā”€ 2d64276db1c62eb133126d6215e22d15e11bf5
│   │   │   ā”œā”€ā”€ 4e7adc11dd8e90b5fc5a221323cb13ed5edcbf
│   │   │   ā”œā”€ā”€ 90e1bd4ab4bfb9cb44a53dbcc7b2a7216938b3
│   │   │   ā”œā”€ā”€ 9442ba661e890b1331691224535626beb4d275
│   │   │   ā”œā”€ā”€ b573c1e57d125e72efb8122db20b3cde960557
│   │   │   ā”œā”€ā”€ b6dcb336b12b480a11cfa65327eb047a3c587d
│   │   │   ā”œā”€ā”€ bbcaf996174aab1dd06ea1c0c8b2754c41a70c
│   │   │   ā”œā”€ā”€ ce69658c094b46416442c86fa82b7ca6b3f095
│   │   │   └── dc63d2e6b0714e5fbd5bf43dfa04c136486592
│   │   ā”œā”€ā”€ 3a
│   │   │   ā”œā”€ā”€ 17641e00224fbf1b9ff90139de86027d7b6cc6
│   │   │   ā”œā”€ā”€ 4449ce167757f8f387dbe76a021fadbf73ba36
│   │   │   ā”œā”€ā”€ 99f8a958b4c24cb4924a721870f2b769619101
│   │   │   ā”œā”€ā”€ a48df9cc23f6ca9751bfb2601801bee4d9d026
│   │   │   ā”œā”€ā”€ a845814235443cd4a027731550f63c09f0d116
│   │   │   ā”œā”€ā”€ bd1996ea59e6261b01dd4612c3dbc4168a8057
│   │   │   └── dac6a715641f88c5f4cd253ec6150b8baae43c
│   │   ā”œā”€ā”€ 3b
│   │   │   ā”œā”€ā”€ 12b429c6f7bde8cff5cf7350eddb287feb5a27
│   │   │   ā”œā”€ā”€ 98193014c1cb248be6fef3d09677ef00dc38c6
│   │   │   ā”œā”€ā”€ bbf9e3fe5f4977926b9c097bc4fac6ab10df68
│   │   │   ā”œā”€ā”€ c9b0424a2632d9a8188d7c96c3514d4a6cd8db
│   │   │   └── fe4301f1ee1d1f862809115801b95f67868309
│   │   ā”œā”€ā”€ 3c
│   │   │   ā”œā”€ā”€ 0900bc7f8538b6f151482fd9b7cb2363180e9b
│   │   │   ā”œā”€ā”€ 2756fa1d657ccce2b6c75650937373d006a056
│   │   │   ā”œā”€ā”€ 3f1dd7d4afd86a15d849bd25e2ac624fe54b3e
│   │   │   ā”œā”€ā”€ 70d78445435eccecc5c52a797b36f4db27c744
│   │   │   ā”œā”€ā”€ 7ed513e27bc3572379520dcc7457265fb773c3
│   │   │   ā”œā”€ā”€ 81f5c61e60999bc842c79b566cff805b60f915
│   │   │   ā”œā”€ā”€ 987a68ca6cf2228b65c1ff841f502251800b61
│   │   │   ā”œā”€ā”€ b2fffa9eb4cbed6ce507ab8f9391c7c4bff304
│   │   │   ā”œā”€ā”€ c6380526e48d228dcd63dcea973cf8b085812e
│   │   │   ā”œā”€ā”€ da24d40bdd4b1e16a06830502ef8219e3e8d47
│   │   │   ā”œā”€ā”€ eb29efa21f12d9cbb0f3f1be1f4086a2ac82a0
│   │   │   ā”œā”€ā”€ f30b7b2dfe530f18b9c2f024fa12dc01c4ef18
│   │   │   └── f38f15b6de2a8322361053d763781229f8135f
│   │   ā”œā”€ā”€ 3d
│   │   │   ā”œā”€ā”€ 0d9c443885b8c5e43d275ddb7734e6319e793d
│   │   │   ā”œā”€ā”€ 16379e868c82a85c79f1847b8421f0ddc70a97
│   │   │   ā”œā”€ā”€ 218bc75aaafd9df56d3a7a893beb4942ef5b46
│   │   │   ā”œā”€ā”€ 2f79e8c5afcdd1e053a6a3e90dcac95899e4b2
│   │   │   ā”œā”€ā”€ 52a69e0355851d51cafe3863774c72e38a12fa
│   │   │   ā”œā”€ā”€ 7117b0a57450bea6dba798ccc7be65246728a4
│   │   │   ā”œā”€ā”€ 7204241cf9b3eb3c4b5e892eb2ffcf2ec805ed
│   │   │   ā”œā”€ā”€ 731c5d721f3585d72e63831f2aea9fb8563d41
│   │   │   ā”œā”€ā”€ 894abb523905948b59cb8e5a242f1a5853ad70
│   │   │   ā”œā”€ā”€ 8d33989511bfc7d1a5d01cf463d1835468ecb8
│   │   │   ā”œā”€ā”€ a3be4b18686d5991dca48f9f9254f2812441fd
│   │   │   ā”œā”€ā”€ c46c1a6a31d7e718f7d5b6a9c81758159932a7
│   │   │   └── fb35efff201a47b212f0ae3d22b58bc00edfd5
│   │   ā”œā”€ā”€ 3e
│   │   │   ā”œā”€ā”€ 01750e30c2affe33cdc8ce3bbc4d9a2cb0ec86
│   │   │   ā”œā”€ā”€ 2d6f1aa18ae735577b9693ebc69f9cda3341b8
│   │   │   ā”œā”€ā”€ 2f70a2fbbb550040dfb13c71cfc28f9d8388c1
│   │   │   ā”œā”€ā”€ 31e2c3e3082fe852ff25932d749b3cc0950d48
│   │   │   ā”œā”€ā”€ 7bfc578c4b3a12e05514ce8ac64f44a21eff1a
│   │   │   ā”œā”€ā”€ 81de24a1863e13dabefa39a44a6760f30cbf38
│   │   │   ā”œā”€ā”€ abdf09a0d025941b9c2540b9123b82fc09cdb4
│   │   │   ā”œā”€ā”€ d44abb87a935e4bd49a50fe800dd545366da5a
│   │   │   ā”œā”€ā”€ e1b49ab06741a934c954c9e4ab055fdbb29b5a
│   │   │   └── e720e929eed9d685349bbe242a94cedfc1ebbd
│   │   ā”œā”€ā”€ 3f
│   │   │   ā”œā”€ā”€ 3a258ba38dd35c37649232c9881bbbf23721be
│   │   │   ā”œā”€ā”€ 4dddbf94a2c7b59c10f3ce5719d5d393d9c182
│   │   │   ā”œā”€ā”€ 6e6d5bdc7d226bc27dce26d6d919c73272190a
│   │   │   ā”œā”€ā”€ 853e6d6f0044b583aa0f0b0a40ddcf437f4941
│   │   │   ā”œā”€ā”€ a4ca104a6df37104da2e1eafc9d71a60da4d70
│   │   │   ā”œā”€ā”€ bc7efe8bbdf62eddaaaedd24c96d970a5a8d3c
│   │   │   ā”œā”€ā”€ d6a362afab92411e7444f3f179eee0a4f7ea16
│   │   │   └── df0d34696720aeb96e6baab1d262661e8527a6
│   │   ā”œā”€ā”€ 40
│   │   │   ā”œā”€ā”€ 0d8f5bf9ce0a8b6cd6a6612b3f7988571b0650
│   │   │   ā”œā”€ā”€ 1a4f2a958c8ca04635a31694b6420bf375d589
│   │   │   ā”œā”€ā”€ 3646bc38490e4c13c3bf06e886afe384fab0cb
│   │   │   ā”œā”€ā”€ 6bf3bff9cd15190b33cd3cc6a45fbd94459da4
│   │   │   ā”œā”€ā”€ 9b76c9242248f95c18309f92b29677a741df64
│   │   │   ā”œā”€ā”€ ba8f1da91fe8ee0fb7789acd51579bcfb816a7
│   │   │   ā”œā”€ā”€ c9f4c5cd5efa3e6e3ddac3387f653ff9da1e7c
│   │   │   ā”œā”€ā”€ cd8892a9ef577211459aaa8ce72e6ecd5675a9
│   │   │   ā”œā”€ā”€ cdbfd108c9c3d818102a7d0f847c05b05a25a1
│   │   │   ā”œā”€ā”€ d62ee611e79501b81f124ad93b0fcb304cb893
│   │   │   └── e1c4726de76a2ae6b7614e0901df3dd7c3b51f
│   │   ā”œā”€ā”€ 41
│   │   │   ā”œā”€ā”€ 0a8f417af628d3d0b6582e0d32baa43d9c453d
│   │   │   ā”œā”€ā”€ 3cdeca61c90c9c382ec79bed3a6ecf1a62eb9b
│   │   │   ā”œā”€ā”€ 653041e6ce5019f30354d8f21498e13c3f0419
│   │   │   ā”œā”€ā”€ 75c15f93bb0ecbb99c3aaf26ba27acae9234fa
│   │   │   ā”œā”€ā”€ 82826c14c810ca74e24847c99b9d3799529f66
│   │   │   └── b863673ea8260a71bf4729398a0cd9afe1530b
│   │   ā”œā”€ā”€ 42
│   │   │   ā”œā”€ā”€ 25767baa476e5f1cc746a9df9c98ac1053e525
│   │   │   └── a491f3bfb22a3ea053ed9419b1ffdcd12fdd55
│   │   ā”œā”€ā”€ 43
│   │   │   ā”œā”€ā”€ 091ac4d1806b7e52d1efa0ae41b69b2bc9366c
│   │   │   ā”œā”€ā”€ 5553f6dae5d98998dc3f26521ad760152d3b16
│   │   │   ā”œā”€ā”€ 6129b2650c3a8e46715b8c5ee6a43638d00808
│   │   │   ā”œā”€ā”€ 8d9fb63d8aa251d4eefdab708dce4f317ba6c1
│   │   │   ā”œā”€ā”€ aca1a89dca246e143bb0a7ca236f765006b4db
│   │   │   └── b5da8b1b8fcb37742982273cd12d8d83b27d2b
│   │   ā”œā”€ā”€ 44
│   │   │   ā”œā”€ā”€ 2f04e561cec26ce8b2ad0021319131f14f8810
│   │   │   ā”œā”€ā”€ 303b26c54aed37a0ad06d1e815b8d9a6ecba2f
│   │   │   ā”œā”€ā”€ 73b8464a55b9d7e04edd151a2d29c417d0f511
│   │   │   ā”œā”€ā”€ 9246137ac4276316114f5aedccf04ee5b445cc
│   │   │   ā”œā”€ā”€ c8d96ab811541e184b7bb3d84d02a2687e3934
│   │   │   └── de84f8b3890c6a3c0a502f4553db59eda31d44
│   │   ā”œā”€ā”€ 45
│   │   │   ā”œā”€ā”€ 21f2f55cc5a4d626f0b6dca48aba8920903507
│   │   │   ā”œā”€ā”€ 27233a8f4e0eb34b30b0d846965ce91838aba0
│   │   │   ā”œā”€ā”€ 39d7a4c016f9a26b205ff271f2f696606f67c5
│   │   │   ā”œā”€ā”€ 51df69bdc258bcb6320371ea35169fe5d117a2
│   │   │   ā”œā”€ā”€ 6d32519f8b2ebe00e7db400030b080c08757c9
│   │   │   ā”œā”€ā”€ 6e70a27cd0d383329c7751e616ef59c3859a74
│   │   │   ā”œā”€ā”€ 880fdd45494e01fd511586ba021966662aa853
│   │   │   ā”œā”€ā”€ b09d8076767b14a379d5ba92b13cfa4795ca1f
│   │   │   └── bf8cbe564126bd6fab67c780b08abc89fc3128
│   │   ā”œā”€ā”€ 46
│   │   │   ā”œā”€ā”€ 03922c946c0e03d4da67d29aebdab157550cab
│   │   │   ā”œā”€ā”€ 089b11469d00b571a3ce3e15e19ace7930053f
│   │   │   ā”œā”€ā”€ 1c7294aa4f512ceb2559b2b0832d2c20fff041
│   │   │   ā”œā”€ā”€ 255e0902fea8725b18c5851efe8ae87a1609f1
│   │   │   ā”œā”€ā”€ 7520077a835a38d6d333530494b90f5a20a5a6
│   │   │   ā”œā”€ā”€ 7f8169f7993d489ad4ed4467126e4bfee027ca
│   │   │   ā”œā”€ā”€ 8862a5cec1047676da228a344b004b71a61959
│   │   │   ā”œā”€ā”€ a6159d6670c385ca8b9dc508b3f753e16d19eb
│   │   │   ā”œā”€ā”€ d4fc6db9050ebb1de37fef37a499e7d4b52897
│   │   │   ā”œā”€ā”€ df09d5038eabea65277d7294ae900b88b678f3
│   │   │   ā”œā”€ā”€ e132cbb1214db69a39a56919d06b0c46b257ea
│   │   │   └── e147d295b322cf17d4a77276847fce618c6aa5
│   │   ā”œā”€ā”€ 47
│   │   │   ā”œā”€ā”€ 14e14f82ebe760f5a99c946165b7f68c54e514
│   │   │   ā”œā”€ā”€ 232c0dff225fdcb60ffe7b38992ed216f61b32
│   │   │   ā”œā”€ā”€ 9da5525981117b748ded7357af010bfb2a0ba8
│   │   │   ā”œā”€ā”€ 9e69674ac05ff759fca84da89778ffde63edc9
│   │   │   ā”œā”€ā”€ af918b07939d3d7d6c8ff3a62369d5ce57091e
│   │   │   ā”œā”€ā”€ bf61b6af0e889316dfb27a0b47609c26f39182
│   │   │   ā”œā”€ā”€ c34039e5dc161d51cf5f50e9e3c1546bf5f8d4
│   │   │   ā”œā”€ā”€ e5015c9ae20aad7623d70a42067affd2d8e8a8
│   │   │   └── f2f91a246c93681856f07d9639de6b89ee33c7
│   │   ā”œā”€ā”€ 48
│   │   │   ā”œā”€ā”€ 20d47d331783f1c51ab1bbc3aa1234e4bd83df
│   │   │   ā”œā”€ā”€ 5f91b1be058435bb4d668a7c6bcdaa6db0c616
│   │   │   ā”œā”€ā”€ 83c140d9543f0b42e4e3d7ee0cefd92b89295e
│   │   │   ā”œā”€ā”€ 85490277d81693c9841ebdc3afdce4e1a2a028
│   │   │   └── c29d2e68f0d5ebc15fcc132847b985c0046477
│   │   ā”œā”€ā”€ 49
│   │   │   ā”œā”€ā”€ 5fb0fed6d6ead0645c20dd5739e0719411d805
│   │   │   ā”œā”€ā”€ 9b11d458b9b28038273f29852673f431279e30
│   │   │   ā”œā”€ā”€ bca683d3c36465e19d3c17d4f880aade6662f2
│   │   │   ā”œā”€ā”€ d1f2ec49d5440398ecf0d2dc41b640609f8753
│   │   │   └── d71bac9787000ec49a14594c0d63d1e00ba1f0
│   │   ā”œā”€ā”€ 4a
│   │   │   ā”œā”€ā”€ 1ce881e49fb08f76fad4b89f787e20dee82e16
│   │   │   ā”œā”€ā”€ 4490463953ecf209f1be14ed8cbbbf7618ce55
│   │   │   ā”œā”€ā”€ 91a1d22808d76e2635a4764fe8975c3991bfa6
│   │   │   ā”œā”€ā”€ ada5f854aa594fcbaa4547641c044a7783464a
│   │   │   ā”œā”€ā”€ dbfca0bd5f709c88df3e8fb06fbd75aae0ed06
│   │   │   ā”œā”€ā”€ de6479670c044984862bcae8af353bcd8f8916
│   │   │   ā”œā”€ā”€ e6240a3220f2e962138ea6033df2f04433d908
│   │   │   ā”œā”€ā”€ eaa95f25129b1d2924e2e9f9b90cc82d99bfce
│   │   │   └── edd76310a295210fa61ae16faa2ba0a62994c8
│   │   ā”œā”€ā”€ 4b
│   │   │   ā”œā”€ā”€ 060d844730f6d5c5163b69d7d261dbb4f615f0
│   │   │   ā”œā”€ā”€ 273e86273692258bb153d7d8093c9c79c8560b
│   │   │   ā”œā”€ā”€ 4c761ff80b1c39ab35a54c01488598c353207a
│   │   │   ā”œā”€ā”€ 68c8d07e8a2ebe13adaa686d0159e721011752
│   │   │   ā”œā”€ā”€ 9cb6a2dfdd46374cc398ba9e5a5037f32781e3
│   │   │   ā”œā”€ā”€ b30abf977b413a33ee80da4f5eb40877c15e5d
│   │   │   ā”œā”€ā”€ bf0e208f81bc49888a442374d5cd9e5b8158ac
│   │   │   ā”œā”€ā”€ c675853e3ec8180d76401eb85233d950c16f63
│   │   │   ā”œā”€ā”€ c9b61abb3fb9efc79eb5e4368c364613c2fcc6
│   │   │   └── d86cc14cff4f17810dc0fded48a7ac674e3d04
│   │   ā”œā”€ā”€ 4c
│   │   │   ā”œā”€ā”€ 1ad787bceeb0741542a35fa29a7c9acd38d907
│   │   │   ā”œā”€ā”€ 2aa09e3c6df129f0f3d442394dab9e1f48b19e
│   │   │   ā”œā”€ā”€ 3335d9138cc18da9e663c409cf785305cc47d9
│   │   │   └── 47e0d2e3c7a208a38547475e631dedfcf75268
│   │   ā”œā”€ā”€ 4d
│   │   │   ā”œā”€ā”€ 10e08d065d513321b55c47efb2d5cb7c846d9d
│   │   │   ā”œā”€ā”€ 3611638f1b155e78f5612400a9ab23822e5649
│   │   │   ā”œā”€ā”€ 391d5db040bcc8f2520568cbe79c43f3410067
│   │   │   ā”œā”€ā”€ 6dc1f20f4e018e2926b77ebbdee8c296d0bf31
│   │   │   ā”œā”€ā”€ 785ef9ebfb3069b6e6f68e8c7ed1d29c9ea804
│   │   │   ā”œā”€ā”€ aa49a4edbed9304639809fd41fe76f89e89959
│   │   │   └── c693054da97247cfae8c72c87bf4bb0b7196f1
│   │   ā”œā”€ā”€ 4e
│   │   │   ā”œā”€ā”€ 017c7bb6a4e06424bbe0ccdb83f15245d21d33
│   │   │   ā”œā”€ā”€ 0be71c1b4269496ba7e3ab1322a8f23fd7bab0
│   │   │   ā”œā”€ā”€ 259f5287351d3e08472df82fc3fd91d594f51c
│   │   │   ā”œā”€ā”€ 4cdb1b0ec4ee6540e5f59241af6e4c42cdd56e
│   │   │   ā”œā”€ā”€ 528ea828396aac39c5bc20f0081e12649b564c
│   │   │   ā”œā”€ā”€ 60f59c0ef95203d46b37808ff549a425e7510d
│   │   │   ā”œā”€ā”€ 9f7f5bcde81925c427cd245452fff4786a40c4
│   │   │   └── d9d893f0e6081c89c5cfd62b3621cbdf733834
│   │   ā”œā”€ā”€ 4f
│   │   │   ā”œā”€ā”€ 0674e727639d1561fe8dd9417085500e50efbb
│   │   │   ā”œā”€ā”€ 1865bf3e25aca68edbfc74d754a685afbe92f9
│   │   │   ā”œā”€ā”€ 188ad3aff8b98108c803fef61316beec60cb8b
│   │   │   ā”œā”€ā”€ 337f74462ab60da6d17e4699e804558a9b427e
│   │   │   ā”œā”€ā”€ 5dab39e4e68546e75e145fe071d535f69fde16
│   │   │   ā”œā”€ā”€ 8e8a2897819f9e0b8b9265597ddb05a449ea33
│   │   │   ā”œā”€ā”€ a0b218d4d848782a80264966a5c86f71d4a96b
│   │   │   ā”œā”€ā”€ ad3c0c4baf01db8cc16422386898cb3f1a7b31
│   │   │   ā”œā”€ā”€ be07ae74d07bc9afde7f5b76ae2f414b5d1bf5
│   │   │   ā”œā”€ā”€ c8ad866d61adf00e6c2d1d6f5e3a61b98c2199
│   │   │   ā”œā”€ā”€ db47ab9c8fcd209c0310c9aa484317896fe6a7
│   │   │   └── f90ada51bc908bc9d211df1682ba385976bb1a
│   │   ā”œā”€ā”€ 50
│   │   │   ā”œā”€ā”€ 24f2bedb57549455dc130d92ed07c72bc0c85c
│   │   │   ā”œā”€ā”€ 3b5cf60bfa4c1af2cbc0fd2971a4efda818fe6
│   │   │   ā”œā”€ā”€ 424945fbac7389357ba7f01f481a3659f6e4ca
│   │   │   ā”œā”€ā”€ 59adf4613d9c2c14df1adbe2b98f715829936a
│   │   │   ā”œā”€ā”€ 6cb81997a65532aef72d620b83798d4834babf
│   │   │   ā”œā”€ā”€ 6d33694c0f03867eb2a8eafe68cf5458b42f78
│   │   │   ā”œā”€ā”€ 6d798fa9e3070e37688e5ee4a002ea3d5a6547
│   │   │   ā”œā”€ā”€ b73d3470847a1956052717aee92db1b5904761
│   │   │   ā”œā”€ā”€ be31f6a0955d2ac8874d644420654953a14a5b
│   │   │   ā”œā”€ā”€ d346e1befbc98b6e706df3057c41cb762622fe
│   │   │   ā”œā”€ā”€ da61480208c85d2e68a088cdbf9ea7c0b32b8b
│   │   │   └── ea5bdabe32690dac5856016ee587551df60d81
│   │   ā”œā”€ā”€ 51
│   │   │   ā”œā”€ā”€ 5bc9fc8ad1c52ddc66e20739049bed6cf932f8
│   │   │   ā”œā”€ā”€ 648f42b3640a1bb0f066276bdb68e8e0ea2617
│   │   │   ā”œā”€ā”€ 72b6d326eb4e415cf93472e6b1ceda58ccadc0
│   │   │   ā”œā”€ā”€ a3a1f826c9b12d6c42bfd008c0737b535aae0f
│   │   │   ā”œā”€ā”€ ab19f69fce22efe0c0a7f1b3907b5b9af9b371
│   │   │   ā”œā”€ā”€ f4aaff522a6501e3ed566a816168e685e84178
│   │   │   └── fb9e94eb833c5605f66e382194de8680911c9d
│   │   ā”œā”€ā”€ 52
│   │   │   ā”œā”€ā”€ 01bba84e0ef45088d3a058f0c1fc9cc2bc343c
│   │   │   ā”œā”€ā”€ 33fecdba2d12c95b462debe9ef2eae9f50fc4a
│   │   │   ā”œā”€ā”€ 4cb5b70d14468345e21a8a8375a671ef2e706d
│   │   │   ā”œā”€ā”€ 5e439696c715477b2af191643b617caa0d4a3b
│   │   │   ā”œā”€ā”€ 6fdf36c89e1a3c7da7bf2cc195a093505481c2
│   │   │   ā”œā”€ā”€ 760af776182c823dfd7942beb4b6d1d1562ba0
│   │   │   ā”œā”€ā”€ 8db040f0b202e45accce6de23f5fcf10d9cc77
│   │   │   └── e383bf0ce78b10ad1397967d3699a5e78596ff
│   │   ā”œā”€ā”€ 53
│   │   │   ā”œā”€ā”€ 24ef7a20f8d4a1bcb7cc138b4b7e6d16432520
│   │   │   ā”œā”€ā”€ 262162ddd8e5a0a47a280bf18e651342f7f055
│   │   │   ā”œā”€ā”€ 2db8fd768904da53d7420eed2533df51798f5a
│   │   │   ā”œā”€ā”€ 70ce0e774a0a7511a2edf427d56c28fddc1524
│   │   │   ā”œā”€ā”€ ab1cf8f32f37a0cb1e1e574692c7ad15d3995c
│   │   │   ā”œā”€ā”€ b584a6b4ef417f05a837537d9296d5380e03e1
│   │   │   ā”œā”€ā”€ bf74af26f6be89c55aff151e84c0c7234625b0
│   │   │   ā”œā”€ā”€ d5684bc55b1b19a62921a6aea370c8ecbef0e1
│   │   │   └── d6ebbf2ab33d292894b6351d4940d0901b23a5
│   │   ā”œā”€ā”€ 54
│   │   │   ā”œā”€ā”€ 14f1ba4c2ec67daa15fc28c9ca8040df2da5da
│   │   │   ā”œā”€ā”€ 3daf3ba9a882aebee445e0c001ea72ac19f6e1
│   │   │   ā”œā”€ā”€ 7ae2c0787bf639694ce46edc8f2743efc2f05b
│   │   │   ā”œā”€ā”€ 8c99c9a8c65dea91eef86c9ed27e0080e4f9ea
│   │   │   ā”œā”€ā”€ c97d9c68ef668ca582f0d52fdec8e886c74d9e
│   │   │   ā”œā”€ā”€ e26514abf4877a6c52a1473369a7bf35c1cd4b
│   │   │   ā”œā”€ā”€ e7175aa202a968d7890a1dcdc719bb1a59a979
│   │   │   ā”œā”€ā”€ ec80c994c9a14f8c7e6316840f197d2b9f3cef
│   │   │   └── eef70237949345ce34d727a8989bc54de1ecb0
│   │   ā”œā”€ā”€ 55
│   │   │   ā”œā”€ā”€ 58543e5c2f4d5cf65c54a1ad064bdc22507524
│   │   │   ā”œā”€ā”€ 6b6b6d815f8693c0bc2c87a33c2a59afd38905
│   │   │   ā”œā”€ā”€ 6bb1829fd149091d660f752ec7a5e47cdbc143
│   │   │   ā”œā”€ā”€ 7668b789731c54ae592e1a845c38cffeeb5591
│   │   │   ā”œā”€ā”€ b085727fc690bb492dd91e4a9f065cb7bcf1ff
│   │   │   ā”œā”€ā”€ b9cf14e29dde308ccd1da0b7716f1bd21f719d
│   │   │   └── fc1366bf0ffd94ad1f4cbeab8342b7337b74f4
│   │   ā”œā”€ā”€ 56
│   │   │   ā”œā”€ā”€ 1e95e02afb2bb9ee2efad4a0896c58b39b0314
│   │   │   ā”œā”€ā”€ 55b7c0926c4a2032fa76cf2056e733eb53de69
│   │   │   ā”œā”€ā”€ 856fabd985751c3a2a6f63abd1137ddf6f84d3
│   │   │   └── c27fbcd9e524386e4e05783b4dd61f17a1d8df
│   │   ā”œā”€ā”€ 57
│   │   │   ā”œā”€ā”€ 48e1e0ede68a781fbe48e38360de84d27ce10d
│   │   │   ā”œā”€ā”€ 8551cf3dfa69a78129bde81fd9ced7c1981722
│   │   │   ā”œā”€ā”€ 9250341ba0b6c8d139a003d1d7df8fd193bf5d
│   │   │   ā”œā”€ā”€ c0a515d315457e149b0f1c0f82b2b2cecb477c
│   │   │   ā”œā”€ā”€ d83e4e581b4f017bb3bf1feae9ca8c9af1bb4a
│   │   │   └── f495dd469f713c4eec08db0e995826c483dcf8
│   │   ā”œā”€ā”€ 58
│   │   │   ā”œā”€ā”€ 5707f862506c7e97324927ad61278f7db0239c
│   │   │   ā”œā”€ā”€ 7b880f8d02e3b82ccee0b7da885c044549c85d
│   │   │   ā”œā”€ā”€ 8223902e879633eba3b19194b454a9b0d572ef
│   │   │   ā”œā”€ā”€ 8a3fe581366dd40abebb656b72e3e93fa0fc35
│   │   │   ā”œā”€ā”€ ec49824f238980d17479dc53e0a42f1dd1d80f
│   │   │   ā”œā”€ā”€ f12e8a1a3eeb6d3a39486f976954a19a705d00
│   │   │   └── fd532156c710ccee7ffc44d205423f1cb17629
│   │   ā”œā”€ā”€ 59
│   │   │   ā”œā”€ā”€ 62376a3af3811b89f6710d4e7daa8a5326cc93
│   │   │   ā”œā”€ā”€ 97b1aefd8a426892437c30880a610c1adcb92e
│   │   │   ā”œā”€ā”€ 99cee32af86e01deafa61dc6495e63f70c141e
│   │   │   ā”œā”€ā”€ ab9e4702e9b3e0dcdc22756311c65832d1bad0
│   │   │   ā”œā”€ā”€ c78c80ed45ed8c552e4d00b22a7f3216bbf397
│   │   │   └── f47ef1f37777fbf247f01ae9d660a8a121c03d
│   │   ā”œā”€ā”€ 5a
│   │   │   ā”œā”€ā”€ 13d53e514c310ffb3edd965ee6dfec37a48b48
│   │   │   ā”œā”€ā”€ 35fb6eea03b526f1121a3a7e61149cd202e137
│   │   │   ā”œā”€ā”€ 5c5ff14171eea33a032ea3b9d6bc1c55aff283
│   │   │   ā”œā”€ā”€ 66978d090c1d0c85541a0fc2d985380380b5d5
│   │   │   ā”œā”€ā”€ 6ed21fc3b07671baebb28afd1aa2cb6c5b13a5
│   │   │   ā”œā”€ā”€ a1b7d9168bd9f9733521f89cd3c72dcad2475b
│   │   │   └── f93c71316f1b06bbf972f197c2120854b474a8
│   │   ā”œā”€ā”€ 5b
│   │   │   ā”œā”€ā”€ 029862703fb3961fccd54c833e78d093fe4eec
│   │   │   ā”œā”€ā”€ 332b8d47d71f31b05a8e0338f1acfb0e73ee2c
│   │   │   ā”œā”€ā”€ 83adcd688df738a68073b779a7a4e4e7940c3b
│   │   │   └── a68c249953a3461401bdc85b69ae48747d50af
│   │   ā”œā”€ā”€ 5c
│   │   │   ā”œā”€ā”€ 34d25580de4de1bb0f25ffcdba60cd862a6c09
│   │   │   ā”œā”€ā”€ 3faccd57b8c14b98132f6a00dba26af651d70c
│   │   │   ā”œā”€ā”€ 7064c7905f085d7ce1d02be0e4879f777cce46
│   │   │   └── 70d673baf5fafe15fd63088faf0d1c529fc6c8
│   │   ā”œā”€ā”€ 5d
│   │   │   ā”œā”€ā”€ 06c15641a58efe849f006a9c680cd087a495fa
│   │   │   ā”œā”€ā”€ 147877743a7c8fdd6f57c60aca8851aca29295
│   │   │   ā”œā”€ā”€ 925729dd360a4a2b3afaff16a00fd839273ea0
│   │   │   ā”œā”€ā”€ a920e62f778fa770b248ecf1809a83258434b2
│   │   │   ā”œā”€ā”€ c26406c0f6fb8b87f2bf4b7dfecfa94e449983
│   │   │   ā”œā”€ā”€ e9a0d46aba997891b19de77b147220f72d10a3
│   │   │   └── f5f754de505fe219bd9383eb03ee3adc4fc335
│   │   ā”œā”€ā”€ 5e
│   │   │   ā”œā”€ā”€ 25053b23cda582e3efdaecbf19ac2a787e1b1b
│   │   │   ā”œā”€ā”€ 3937ad2d8526c5d64db955dd0f30d3bc2821fe
│   │   │   ā”œā”€ā”€ 55ba044188cfe563d05768df5ad6b2495d3adc
│   │   │   ā”œā”€ā”€ 56349c63f15270204bb26f92e46ec07cdbea61
│   │   │   ā”œā”€ā”€ 75f1d43d54680d61391fe5d9dcf26a9179d87a
│   │   │   ā”œā”€ā”€ 7667d712b64e5111542a8aaf9e08f8c7f85cf2
│   │   │   ā”œā”€ā”€ 7a2700ebd6320fe0cf9e54706bff270e672078
│   │   │   ā”œā”€ā”€ 7c681434e991366413cfa143bcdba3db8736e8
│   │   │   ā”œā”€ā”€ 9c9dca6a7b4ae120b623a7a02f17ef9602560b
│   │   │   ā”œā”€ā”€ 9deb341107f15188b848d932a60a3301b29494
│   │   │   ā”œā”€ā”€ a6c00b0533dd8652cdc4e6892d7b500b0d8738
│   │   │   ā”œā”€ā”€ d4c288980ac7a3ad734479233ce0dd1f6519c4
│   │   │   ā”œā”€ā”€ d4fdc46998549a57bfe5d29d6f7b74e18e8a56
│   │   │   ā”œā”€ā”€ e14cdbedd06a5d0cadabbe606b781c3828cdd0
│   │   │   ā”œā”€ā”€ f0ff246314c586a1c24e3a11c49b79b0fe9fcd
│   │   │   └── f875fc09f03dff2f753b22084ba9b84ff2f305
│   │   ā”œā”€ā”€ 5f
│   │   │   ā”œā”€ā”€ 2a8e03d4035c22f8023c8d4faf79377e2c3657
│   │   │   ā”œā”€ā”€ 71620d0f89143421d7e93c26d98d3956cdd111
│   │   │   ā”œā”€ā”€ 7271f0025e98d0f6df00ebf72455b9312cda6f
│   │   │   ā”œā”€ā”€ 765881ce2d399a58ec0077dc9723c50f4b0fca
│   │   │   ā”œā”€ā”€ 7fb26dcc9920471984d471d843087823e85049
│   │   │   ā”œā”€ā”€ b72e29d1294dcdf252e4e4c27c2977333de01f
│   │   │   └── fc74c544ed3d58fe1b9cb8d5dd2b2b2ba1e979
│   │   ā”œā”€ā”€ 60
│   │   │   ā”œā”€ā”€ 0c00449e33a4de67332a7adb19e2db40a5c0fe
│   │   │   ā”œā”€ā”€ 60d03cfd2110882f92641e04a90b05241dbee8
│   │   │   ā”œā”€ā”€ a023c6f3b9882d4305517e788fe869ef14782d
│   │   │   ā”œā”€ā”€ d17e27392a2c7b2ab4414f3f3bf593973aa112
│   │   │   ā”œā”€ā”€ e7957dcef0b088434ac35b26b2bd2d383bb02d
│   │   │   └── eaeafe35729b45f0a7ae2c06a29b96883e2701
│   │   ā”œā”€ā”€ 61
│   │   │   ā”œā”€ā”€ 2b2adfc66f8a505a87eefa291a1ad68abcfefb
│   │   │   ā”œā”€ā”€ 2e8f62fc59ac074cda0d0a92069cafb4082c63
│   │   │   ā”œā”€ā”€ 3d9e82f038ddf3fe5d164ea0099770ccd5c232
│   │   │   ā”œā”€ā”€ 5d297ba3eff5cb5af070d4b375b08cea136292
│   │   │   ā”œā”€ā”€ 795049004cf5fbfc6b870b1db4cebfdbad5974
│   │   │   ā”œā”€ā”€ 8ab2b333e5c2d076de0a3ff71bd63b36b46daf
│   │   │   ā”œā”€ā”€ 936e3eb603df138cd6e3a6cbf01ec1d5299f08
│   │   │   ā”œā”€ā”€ d579cce3422cd9d291eb3f549bdbd560282887
│   │   │   └── db06ff125d02f945dfe33cd0493b8686bf7682
│   │   ā”œā”€ā”€ 63
│   │   │   ā”œā”€ā”€ 0c9836b0c3c3108d6dd4ead5e46cc9bd214f3c
│   │   │   ā”œā”€ā”€ 1664f63cd05f9ccd961a0e53f6ca513b230ece
│   │   │   ā”œā”€ā”€ 18ef189efb39cbc50df5708da7b5b14a5dd929
│   │   │   ā”œā”€ā”€ 25e60e46ee156794c9e33a9493295842154b68
│   │   │   ā”œā”€ā”€ 34038f74d4ee734bfadc372b3a31400c9a7352
│   │   │   ā”œā”€ā”€ 4a259676ed492fdc9f6de3bffa43695be86010
│   │   │   ā”œā”€ā”€ 9206df3abb0d15cb544db16da469d0238c83e4
│   │   │   ā”œā”€ā”€ 9596ccb054762612b44a6e11baab46cc327a21
│   │   │   ā”œā”€ā”€ a91a6804d6fcf6c9abc20c29b9821b9fafefd3
│   │   │   └── b7fbc1d1b3b76bc85f14a86b280fd7ddfe1f95
│   │   ā”œā”€ā”€ 64
│   │   │   ā”œā”€ā”€ 34a8661581f6245c9a513ffb806ca4eafba659
│   │   │   ā”œā”€ā”€ 3c84d548f8fa7759c6157649fa3af496cb7d32
│   │   │   ā”œā”€ā”€ 62e0803625a7acf7f7b5b501de2d71bb96f7f9
│   │   │   ā”œā”€ā”€ 8d439bce92ee38568a004894e9d035379c5fd3
│   │   │   ā”œā”€ā”€ b01afd40c83ffc314cf37dc1dfbc8b099688e9
│   │   │   ā”œā”€ā”€ e196e527d290a9e3c6f5249d8f04c1d7de1427
│   │   │   └── f1050ade030d5694b0b3c7fe92907f3d130a61
│   │   ā”œā”€ā”€ 65
│   │   │   ā”œā”€ā”€ 04a113f6511be52e9d3ce804f300546d72b4e0
│   │   │   ā”œā”€ā”€ 18e9d69a9787d69d7b6f6817a222266eb039a5
│   │   │   ā”œā”€ā”€ 46855562426ae6e74a4c6c3751fc42fb5be2d8
│   │   │   ā”œā”€ā”€ 99b4400e24efe4878854945aaa689f01c30588
│   │   │   ā”œā”€ā”€ b9e496f5c31e7fdb6e38e46ccb17c4da6dc684
│   │   │   ā”œā”€ā”€ c252bbc93cf3f402995c3ee2d1b98f636de217
│   │   │   └── cb3e400577a200847a171f0ce12644847e2e88
│   │   ā”œā”€ā”€ 66
│   │   │   ā”œā”€ā”€ 0e3bc1ce2c926cb3d46ea630cd6655fccf0f14
│   │   │   ā”œā”€ā”€ 1547217de6c3069f1f6dd83f601c724de60555
│   │   │   ā”œā”€ā”€ 24d351679228bc0eb5d61293149cd633e3e7ab
│   │   │   ā”œā”€ā”€ 33f4213456623a9554bc3dd292b960f693b74a
│   │   │   ā”œā”€ā”€ 38bb916dafd202f30419475039b27377591b9d
│   │   │   ā”œā”€ā”€ 3b7be8232846b51ca6d06b0ed807e20b17b4ca
│   │   │   ā”œā”€ā”€ 4109483ed149b516b0d165310e0732a6891c0e
│   │   │   ā”œā”€ā”€ 5ea7c2fa5dc2991e75dc956958d0f10937467f
│   │   │   ā”œā”€ā”€ 658da8a2d0d37e2aa678cda974c3b1eba2470a
│   │   │   ā”œā”€ā”€ 72a7a84f5138faf69e19a1ff0466cbd3889ade
│   │   │   ā”œā”€ā”€ 88b30ccb9a271c45d9d71d63a25ec3389bb69a
│   │   │   └── 8fe1d554dace4e8a815f92cf94918d6ce7a996
│   │   ā”œā”€ā”€ 67
│   │   │   ā”œā”€ā”€ 077f46e5615dec29b25bac7faa028cbb49a883
│   │   │   ā”œā”€ā”€ 0862c2afb47976dcd4594eb7290c23ef764e38
│   │   │   ā”œā”€ā”€ 0dcf74e5c2dd37afb76f29c705d4f9c432de27
│   │   │   ā”œā”€ā”€ 285a91a7b58bb0ddad4db11960dc4bfb3491c5
│   │   │   ā”œā”€ā”€ 2a6c286312a6559adb9ba41a1549449c1198e5
│   │   │   ā”œā”€ā”€ 352a8c00a1e7dfaa5837ff19dc5b79c0f21066
│   │   │   ā”œā”€ā”€ 4286cd92d7880be94329c3ecb9fa3451342f8d
│   │   │   ā”œā”€ā”€ 52b6e8b67a0a05b5eb88496a0e835a2da2198e
│   │   │   ā”œā”€ā”€ 566f7cc82745174cca5524e60f3c8c90c5181b
│   │   │   ā”œā”€ā”€ 58cc52646ff0bafbfb4aca7dbea6a9497d5d31
│   │   │   ā”œā”€ā”€ 5d9ea9ea1ea1ba0a7fa58c7d5d01cc06804d79
│   │   │   ā”œā”€ā”€ 6a2825c9a2adfaa026ecaf7b62f20313b92a67
│   │   │   ā”œā”€ā”€ 735151461e94bf42c2275756665a10fcd7ba95
│   │   │   ā”œā”€ā”€ 808b7cc1311445c0a53e12f2c02febd8da2d20
│   │   │   ā”œā”€ā”€ c5ef9a2d9d098c472c990faa13c6c31e7cb514
│   │   │   ā”œā”€ā”€ de03e028db88434c50188572717f3c68ae0e5a
│   │   │   └── df040a5e10e512802cdeba7f64d9295bdb7e4e
│   │   ā”œā”€ā”€ 68
│   │   │   ā”œā”€ā”€ c161c5a19ea8e74890952535190fa96d263438
│   │   │   └── c2dd7cd644b3365d5304a64d29598090da2919
│   │   ā”œā”€ā”€ 69
│   │   │   ā”œā”€ā”€ 2956a92564389c401bb44408449f1c1646303d
│   │   │   ā”œā”€ā”€ 7dc125b39348623c577f6e5ec6dad44d07fe5b
│   │   │   ā”œā”€ā”€ 9509dcbc8580c0f965a931c45e443abe7f4417
│   │   │   ā”œā”€ā”€ 9efbd7abcf02af19cd28c73743240936adf641
│   │   │   ā”œā”€ā”€ e40fda2818e6f3370e5c9ef6e0ced8613947d5
│   │   │   └── ee79d3a1acad223db1db25249131fabfc6bfde
│   │   ā”œā”€ā”€ 6a
│   │   │   ā”œā”€ā”€ 197cd43b34cff7931f5de5460bd96148fcabd9
│   │   │   ā”œā”€ā”€ 41244ed8b1d3cf64c37fb7605a9e6494e25a3f
│   │   │   ā”œā”€ā”€ 7a91c121b3a7cd6550a5cc668a8a134b8a6ba5
│   │   │   ā”œā”€ā”€ a5bce098669e06f9ded78257f5ce3b236743e9
│   │   │   ā”œā”€ā”€ c53fb33bcb43d2e01967f6f48bfea0dc2cdf87
│   │   │   └── f392bf23a3c3a231bf6ba61f6b59524b5d5ccd
│   │   ā”œā”€ā”€ 6b
│   │   │   ā”œā”€ā”€ 0105d477bc3bab2f746161f531f914e33df207
│   │   │   ā”œā”€ā”€ 1073c30ff60e8aaadcdfc8a7d3c68e590f4dec
│   │   │   ā”œā”€ā”€ 1ccaff4779a41073064179e23d96756d288839
│   │   │   ā”œā”€ā”€ 2480e59a1149392b98ab261c6116eeeb2f3e44
│   │   │   ā”œā”€ā”€ 280fb2923a434d51412fc095321fe9233ad7b6
│   │   │   ā”œā”€ā”€ 42cf6529d90aef6c21c7c11ae62e15ff8ef5bc
│   │   │   ā”œā”€ā”€ 550bd2cb2b6197b117f45d950a1209a03d1e6d
│   │   │   ā”œā”€ā”€ 678e8e2da632667215743c28dbe3a1c44940f0
│   │   │   ā”œā”€ā”€ 6aa066b66c5f440433675b8790bdebf2df9c7f
│   │   │   ā”œā”€ā”€ 751140752efdfde2c0298f2fff03d18a43dd5d
│   │   │   ā”œā”€ā”€ 7f9b7ccc9d3484a9dec160a2355cfb8826e804
│   │   │   └── dcfd27f7c4cece27a8bd1b00b3a7413d71f270
│   │   ā”œā”€ā”€ 6c
│   │   │   ā”œā”€ā”€ 3065014d206d16a75ea60d6511feded97a8bb2
│   │   │   ā”œā”€ā”€ 425aab764b8becf95d554d6730df4fcd060b22
│   │   │   ā”œā”€ā”€ 4c4d2b48314404cecb99a9734ea71c1e6b0391
│   │   │   ā”œā”€ā”€ a511d424a1123a343def981c110eb5553a1899
│   │   │   ā”œā”€ā”€ b19936a138539192508ae7ec9e098a60cb64e8
│   │   │   ā”œā”€ā”€ d38b7ec09460637aac343b5723ddbf01a3ea83
│   │   │   └── deafcbd627fd0ad1154c0c69d9eea9de4919d2
│   │   ā”œā”€ā”€ 6d
│   │   │   ā”œā”€ā”€ 82a67f5f105acae0ad613e7c64dcb49d0044e8
│   │   │   ā”œā”€ā”€ c9358cd66223e61bd189344f876fb4db8915ef
│   │   │   └── dd054ee3bfd5d10c7ececfb8b4f7c327723ffe
│   │   ā”œā”€ā”€ 6e
│   │   │   ā”œā”€ā”€ 2e8ea74037d5fa17efae996241858e98e659a8
│   │   │   ā”œā”€ā”€ 6126c9b5af50bfb6422da9ab91c4646734f37a
│   │   │   ā”œā”€ā”€ 7fc130df60b9e3d4417a27f452d7c6362d5c64
│   │   │   ā”œā”€ā”€ 82741ac70f52169d012a537152fd8c4c8cf954
│   │   │   ā”œā”€ā”€ 88fb08994dc41bec504c748b5a2ceabdbaab14
│   │   │   ā”œā”€ā”€ b05a1369eeb2bd8f27d8713331f82b616db199
│   │   │   ā”œā”€ā”€ bc552a9b808dbed1f6f3a533609ce1734f41a3
│   │   │   ā”œā”€ā”€ c3da19df4bf7da2bc45db97f39dde855f08279
│   │   │   └── df933c552f4179efb361969fefccf91898dbb1
│   │   ā”œā”€ā”€ 6f
│   │   │   ā”œā”€ā”€ 16e5f221bab8f1186f58103c2dad7292660e75
│   │   │   ā”œā”€ā”€ 2291af95fb6422a13bd7bc44c4ba4f97dda788
│   │   │   ā”œā”€ā”€ 314b2d566b41686336ad07412a06165ed4f71a
│   │   │   ā”œā”€ā”€ 31ba5f2c7a9733bda2f6d0c76e09291d9a8992
│   │   │   ā”œā”€ā”€ 3b44c0be2cb111c0db52d7d83307eff0ceec09
│   │   │   ā”œā”€ā”€ 54163d4c40ac2957de1173009f892cb817e9fe
│   │   │   ā”œā”€ā”€ 63d7fc6f63d27a88efd42e934413f9b2804784
│   │   │   └── a74b6380c10e34012a054ca48373c3020aa094
│   │   ā”œā”€ā”€ 70
│   │   │   ā”œā”€ā”€ 203a2bea34c03ae4046bf3bf29ef02fbf7a886
│   │   │   ā”œā”€ā”€ 28c04cb2d6a0f66cd41da47fffe3fa5ce3e3d4
│   │   │   ā”œā”€ā”€ 38390f131192d753e37cba5be39be446ad6d78
│   │   │   ā”œā”€ā”€ 3c0b7a865dbd67b773ebb2a724ecbca3eacacf
│   │   │   ā”œā”€ā”€ bec92fdc02830fcba19c3a2441bea6cff9ea64
│   │   │   ā”œā”€ā”€ f14c26799935da4fb168bb08e468601f25e094
│   │   │   └── f36a7cf2987b1ef92f0524703a3896ddbfb148
│   │   ā”œā”€ā”€ 71
│   │   │   ā”œā”€ā”€ 02b35a50931a6372c60140a94397c7ed74bc80
│   │   │   ā”œā”€ā”€ 12c18e55ced9a12269efd224d7dd12fe96cf87
│   │   │   ā”œā”€ā”€ 1ef5585db02cabe81d8a467d4c3614138749da
│   │   │   ā”œā”€ā”€ 92fd220d3d2fe736b93b7726e7b78b745200d2
│   │   │   ā”œā”€ā”€ bf98d26f47eb133db6542fc07a1417ca157687
│   │   │   ā”œā”€ā”€ c2b99953e4130099b04bae42965486a0283672
│   │   │   ā”œā”€ā”€ f364462c53b86f548b44950c3f78060ac7375b
│   │   │   └── fda7b0b61ea3950f85366811a2f84ac4cf0395
│   │   ā”œā”€ā”€ 72
│   │   │   ā”œā”€ā”€ 289d5158f7656f942f7410ea67a48ff964e61e
│   │   │   ā”œā”€ā”€ 3155dc5686a0a80c283d3a854142bca1dc69fe
│   │   │   ā”œā”€ā”€ 34611167e181c78ffae43281cb5fb2bbbe83a4
│   │   │   ā”œā”€ā”€ 5dde8611f2af3880b39b9c545b65fa4a106ab9
│   │   │   ā”œā”€ā”€ 887a8f8549b2fe884487c96d65850bcbf3a3b2
│   │   │   ā”œā”€ā”€ c418fbf8a1ad6ffef7e57ec7ddc162a7283e7e
│   │   │   └── e65bf4a5ade3d1b5742ce2e57e02e1d1025575
│   │   ā”œā”€ā”€ 73
│   │   │   ā”œā”€ā”€ 0450032a5f16f588d647eb3346a78b0aeae1f9
│   │   │   ā”œā”€ā”€ 5dd6b42216df7a4a98d1704e25368ce6ffb26f
│   │   │   ā”œā”€ā”€ 73319423afb37f2f2ecd64e05f71120044ba19
│   │   │   ā”œā”€ā”€ 9c2115e01f5076c5cd53b82500d2d2dbac0ff7
│   │   │   └── dd0b36883504ae4e2d81bb84fa2adad7a0c47a
│   │   ā”œā”€ā”€ 74
│   │   │   ā”œā”€ā”€ 3382b1be6272cd87f4055ff3deae205987fbb5
│   │   │   ā”œā”€ā”€ 49ef7e52a274209f8256a1ba4c4029c572aff1
│   │   │   ā”œā”€ā”€ 78674b54c8ebca0f9298f75063ea83afd53fd8
│   │   │   ā”œā”€ā”€ 7fd09abce196eb8393d169d90ac1a38d39b2b6
│   │   │   ā”œā”€ā”€ 867141f3da046aa750b39931c94ea5817a23da
│   │   │   ā”œā”€ā”€ a3eb97af1ba5cdbf94ca24d04b294c2707e17e
│   │   │   ā”œā”€ā”€ af928b2add5f04a015518a0cd0da12d663ac94
│   │   │   ā”œā”€ā”€ daec8c741feecdf1334258f1c6d7550cd19bf0
│   │   │   ā”œā”€ā”€ ea8296c825474966fa65a06637860660fc5c74
│   │   │   └── f816e04b7f8108aac0de083de6d04436517889
│   │   ā”œā”€ā”€ 75
│   │   │   ā”œā”€ā”€ 22c8554707b6f63476aa64e50458db118f1f3d
│   │   │   ā”œā”€ā”€ 394f8c78ec72bd80d4d506d7a707e26f3dc33d
│   │   │   ā”œā”€ā”€ 401a83fdb23e0ced8a7eaede37ffa5d1d4449d
│   │   │   ā”œā”€ā”€ ba1134b1320793489523493894e075fef048f2
│   │   │   ā”œā”€ā”€ cb1bbf4b8a1809b0e6e7a82f39beeb4afbd5b9
│   │   │   └── ee6ff3f48fdc5f286ddf0c898b3e40b62b2bf1
│   │   ā”œā”€ā”€ 76
│   │   │   ā”œā”€ā”€ 00affd8a273b8dabb1079264655711c57954f2
│   │   │   ā”œā”€ā”€ 186b3e4f559408a7a6d9d6f9c1cfffa770679f
│   │   │   ā”œā”€ā”€ 82cb8badc6c50f155ec5b173da60e22d6beb4a
│   │   │   ā”œā”€ā”€ 9c596d6d54bcbc94c14bd3d338444b9e075e68
│   │   │   └── dbed59458f580f7783caf8491956804ca1116f
│   │   ā”œā”€ā”€ 77
│   │   │   ā”œā”€ā”€ 1404bf41e265e388c54392b9a9743f23fcb082
│   │   │   ā”œā”€ā”€ 721638d8a989fb94167a848f78c712bcb392fb
│   │   │   ā”œā”€ā”€ 8350ea33beea11407ed6b27f4b277d90dcd03d
│   │   │   ā”œā”€ā”€ 96931c125294695cb4fda1a2301761d030e13f
│   │   │   ā”œā”€ā”€ b91edbfc8aed370dd9aaab4f67460cc2350438
│   │   │   ā”œā”€ā”€ ddf8bfbbba0afbd2bff3ddcdfc02e8373f4186
│   │   │   └── e0fb8084c84e584cdbde9b3f509bfb975450af
│   │   ā”œā”€ā”€ 78
│   │   │   ā”œā”€ā”€ 022ba60fbc02e0fc2a0459ebdca20e7a06a6a5
│   │   │   ā”œā”€ā”€ 33a224a2ac74bea730c58c1c3d587db5cdb4d3
│   │   │   ā”œā”€ā”€ 816908dbbb0dcf625aac4a0cd3b17997c23779
│   │   │   ā”œā”€ā”€ 874959590aef07a53b2a468fe04bb35e7795fb
│   │   │   ā”œā”€ā”€ a22fe55dbe4b1b52142fa0c9050e31a6737bb3
│   │   │   └── aa066e7c65dc1bb485a999abe454b4ca43946f
│   │   ā”œā”€ā”€ 79
│   │   │   ā”œā”€ā”€ 3bec2d2ad6d67f9666c4a9e1115dafc992473f
│   │   │   ā”œā”€ā”€ 3c5123d890c031f84543de02f5d5980728e898
│   │   │   ā”œā”€ā”€ 4d64d72ba855ca5ee92069b49be5098a90e163
│   │   │   ā”œā”€ā”€ 5bed0eeaade105022b2454b0db872b18920c92
│   │   │   ā”œā”€ā”€ 7c44b3f3e17f43635394997503ec7a5fdaedf2
│   │   │   ā”œā”€ā”€ b05ba3f9f46cb9bfeae38c75565d84f48c545e
│   │   │   └── df42cc123609e17079897f5cc1170504ec10c4
│   │   ā”œā”€ā”€ 7a
│   │   │   ā”œā”€ā”€ 2fdcc12676acc4c09ed1ab1012f5b0d0ea2a07
│   │   │   ā”œā”€ā”€ 40acec301246f923451e3da7e4e0c22ba537bf
│   │   │   └── 7f4bb937443db79e2fd6b94367ef75610e909b
│   │   ā”œā”€ā”€ 7b
│   │   │   ā”œā”€ā”€ 1719f93449c8871b07a7ae5ddc64f6625208b7
│   │   │   ā”œā”€ā”€ 358e76958897b08f6840f7a2d7af90ab56a0da
│   │   │   ā”œā”€ā”€ 454140dd845f2beaca450929860eba1c9701ae
│   │   │   ā”œā”€ā”€ 7ddd9a7c62e0106e4a686f9547e5c6af8a9200
│   │   │   ā”œā”€ā”€ 7e1aa371720f815a3452167c3a130aafb0bdc8
│   │   │   ā”œā”€ā”€ aab0bc5e9496011dbc3083c7a7b8942f51f45d
│   │   │   ā”œā”€ā”€ abcfd7f932243edba01b92d91e9e4015a0a413
│   │   │   ā”œā”€ā”€ b80b54bdfded759421bd74359622e7776da5cd
│   │   │   ā”œā”€ā”€ ccbbe081a8384008860335af37bc25f878b14c
│   │   │   ā”œā”€ā”€ d442e040ba6065754da65d0cc41c8952dbfcc3
│   │   │   └── ef0e7d0e12b8f489f32ebc9881f5a691345b7a
│   │   ā”œā”€ā”€ 7c
│   │   │   ā”œā”€ā”€ 08ecc7a0d3d5da4cef5c36c5a36cc0aa8f6854
│   │   │   ā”œā”€ā”€ 232891e863da465e976de0bdcb6f9599c4d02e
│   │   │   ā”œā”€ā”€ 27b04681f97d4f4c13dff4317eaae5fc1d7762
│   │   │   ā”œā”€ā”€ 347c055b0b8f309b573fbd1ba6775bfb0a0d82
│   │   │   ā”œā”€ā”€ 6f64e66cfaa7bd8903fea815d036b6f609ec50
│   │   │   ā”œā”€ā”€ 704e472d33df7bb8cc0459ef2bab667293f235
│   │   │   ā”œā”€ā”€ 789d5e4584edf040bc403691aa7a0d544da780
│   │   │   ā”œā”€ā”€ a1f0e5906eaac01636b209628f207caa181a4a
│   │   │   ā”œā”€ā”€ c1a6ff0e30d0c9847d076ac59fe882dc47f462
│   │   │   ā”œā”€ā”€ c57840965715e82200da78f7104c258a1d07f2
│   │   │   └── f4167f8c104ab4b0ac8e81ab30f8216e3ffde7
│   │   ā”œā”€ā”€ 7d
│   │   │   ā”œā”€ā”€ 0c04b1dc03ce7e35dbce4dcc298dd5467c41ca
│   │   │   ā”œā”€ā”€ 13234a01ab7cc0eb23edaf5819589047b68f57
│   │   │   ā”œā”€ā”€ 292d84bbac32c8a9d3dfdbe72ec5d644c02df5
│   │   │   ā”œā”€ā”€ 9877c5f95eb2313aca0fd52a37a37488580fbc
│   │   │   ā”œā”€ā”€ e3c5bce14716ce11e20aff5f138e034c559568
│   │   │   └── f9a7595fb50f68796719ee177738f1d5f27aa0
│   │   ā”œā”€ā”€ 7e
│   │   │   ā”œā”€ā”€ 01a13218661c56554785e6413f59ff300fadd9
│   │   │   ā”œā”€ā”€ 62ad6928287ff8315044ee2e074701f93eda87
│   │   │   ā”œā”€ā”€ 6653f03603af554e07785df62a856be9025e98
│   │   │   ā”œā”€ā”€ b309e29ce0408d5a89bbef5c4477fc13e7daea
│   │   │   ā”œā”€ā”€ b87569743d35c709d2d57fcf41a281e6dabe66
│   │   │   └── e088b852ea6c5f5e12863520bbb9f658d226a0
│   │   ā”œā”€ā”€ 7f
│   │   │   ā”œā”€ā”€ 0251c772f22f54f51fe044ffa8a84b3e8eeec3
│   │   │   ā”œā”€ā”€ 1dab0f578fef885bcc94a66fbdc3d94692ad4d
│   │   │   ā”œā”€ā”€ 35d6392f66cd4b5df6df0b5e3727d4ed418927
│   │   │   ā”œā”€ā”€ 735657ea1f2f7d10fe4b90ac0f607ffc988f3d
│   │   │   ā”œā”€ā”€ 911e9c1b9aa70f7ed8b9e9e025d39c73dc8226
│   │   │   ā”œā”€ā”€ f39b000d28bd908f0dcb32295048a31353c24a
│   │   │   ā”œā”€ā”€ f8157c44712fd5de58936f5d274cac61f2f554
│   │   │   └── f97b50847fd5f5a6f0bd6b66f6e7f9a565f8fc
│   │   ā”œā”€ā”€ 80
│   │   │   ā”œā”€ā”€ 53e350469631c8da24587b73feed8ecd64f9ab
│   │   │   ā”œā”€ā”€ 838b44fa78fc45da5cc1b00656648fe6bde538
│   │   │   └── fdae0d92c37a547d4e9256d20a470128a506d2
│   │   ā”œā”€ā”€ 81
│   │   │   ā”œā”€ā”€ 00bf1b9d8c6f5c3610f4b47cbd338024bb3f3c
│   │   │   ā”œā”€ā”€ a8a81773c648ca59ca14bae1e07acedad0c76a
│   │   │   ā”œā”€ā”€ b2b8c8adbfa04ec3364b6f49d8b23f619dfa78
│   │   │   ā”œā”€ā”€ b2ee72c3cad6f8a53fbfe382b1bd5a24daeca6
│   │   │   ā”œā”€ā”€ c31ea7a97aa993bad3ce235a9abe37c7a15b59
│   │   │   ā”œā”€ā”€ e2651dc5119888df49ad9b31a9d3b09700ff12
│   │   │   └── fc66ba0515ff1ef5a33574779a3c75943dc3a3
│   │   ā”œā”€ā”€ 82
│   │   │   ā”œā”€ā”€ 1af389faf500b9e2b9f6d96bbabdaabc321bf3
│   │   │   ā”œā”€ā”€ 401dfbf5c08f70e5d9e206641c50b85a81bb97
│   │   │   ā”œā”€ā”€ a355a034149686b0646c9844b7574f9281f2ca
│   │   │   ā”œā”€ā”€ cb402b1f40978c232694b529d24fea50f7ac12
│   │   │   ā”œā”€ā”€ cc177bc1bed3351709bb8aad4bd5a861c1c32e
│   │   │   ā”œā”€ā”€ d2aaacd0c8e87a34c2bf76f0271c87612a8569
│   │   │   ā”œā”€ā”€ e43cc23d558147609a5c6b4a52a755bdf1e397
│   │   │   └── e5f660fb22b805cf75c332aae370690bdeda7e
│   │   ā”œā”€ā”€ 83
│   │   │   ā”œā”€ā”€ 15f4e2ab9c1ab1df5a4179b5e3df646379cad2
│   │   │   ā”œā”€ā”€ 5a87f5176efee62f739c45d911ad6f0253b96d
│   │   │   ā”œā”€ā”€ 6646415410bee4e08caee795a1ca989f39d118
│   │   │   ā”œā”€ā”€ 6a90c19f8a14db6f6a63f7ca155369ba35b560
│   │   │   ā”œā”€ā”€ 8b88970a52de9676305086a31e4d196bf502e3
│   │   │   ā”œā”€ā”€ d3eb09b75237d07014e75195d5fdd308c5eff1
│   │   │   └── fd78e1748fcdd9d107dbf4518513c543167b64
│   │   ā”œā”€ā”€ 84
│   │   │   ā”œā”€ā”€ 13527142531a69a2a11773a96208993937aa12
│   │   │   ā”œā”€ā”€ 5aab79a5d64a431854e89452bf8e63703d2590
│   │   │   ā”œā”€ā”€ 73e57589117723cdee372adb05b85ea776b062
│   │   │   ā”œā”€ā”€ 779fa1950ef9a6490e6bf7d8746acf0443189f
│   │   │   ā”œā”€ā”€ 7b5bc189e6ab4421a3ec82e5962ee03e8d8ea8
│   │   │   ā”œā”€ā”€ 8308399d28fab75bdaa8e255f92b4cf0c076fd
│   │   │   └── d242604f95aaa7165af4e9b886879b13c467c1
│   │   ā”œā”€ā”€ 85
│   │   │   ā”œā”€ā”€ 14bc652c89b087f2f2b93c0e60d609579e0858
│   │   │   ā”œā”€ā”€ 581444b9b55b34071666af4d948776418658a2
│   │   │   ā”œā”€ā”€ 689b43c308636991f9a9ad2400f8dad483ec6f
│   │   │   ā”œā”€ā”€ 99214fd8880dcd8052628d17a9494a5b7d9912
│   │   │   ā”œā”€ā”€ ac73049387362952e1716b1e1189bfbe236b9b
│   │   │   ā”œā”€ā”€ b279c74e7575cf46acb0d9c61265e57e91cc17
│   │   │   ā”œā”€ā”€ d172a384679a992c84496114181ee39a3d9b53
│   │   │   ā”œā”€ā”€ eda4a27ee4775e27e20c47fed2e39005c3da95
│   │   │   └── ff37a6f6e3bf6ff5e2c4ff88b76bc80e105c52
│   │   ā”œā”€ā”€ 86
│   │   │   ā”œā”€ā”€ e474c905cfe86054e168b8383ce61eb9325068
│   │   │   └── f174e568b8b7ee53130e853f2ed82eb979abfd
│   │   ā”œā”€ā”€ 87
│   │   │   ā”œā”€ā”€ 0e47fd1460f39134cabc4231aef598b41554ae
│   │   │   ā”œā”€ā”€ 1c279d931dee4327ab261513fb0afd44a5928f
│   │   │   ā”œā”€ā”€ 4897607ef6125731b766fbe88e729d22b72333
│   │   │   ā”œā”€ā”€ 5a1ed3b16e2c79d582b0a7d7248e239fc68aaf
│   │   │   └── 7ea6606b53f04419916b0aa25db20b5deb90a9
│   │   ā”œā”€ā”€ 88
│   │   │   ā”œā”€ā”€ 1b7bbf9345bdc452aafc16cc31b65eb91711c1
│   │   │   ā”œā”€ā”€ 1eb762027a11445dafa5ed6e80d94724f6e20f
│   │   │   ā”œā”€ā”€ 2f5ba106df780503ce4a73d2584e3e89f9491e
│   │   │   ā”œā”€ā”€ 3dc5eb8d97e9f5096d647d96e3b25be251ddd5
│   │   │   ā”œā”€ā”€ a5cf360522e90cb03ced2ca6723fafa5124d69
│   │   │   ā”œā”€ā”€ c127522397bf34e99a36ace99ab009f1e6b4fb
│   │   │   ā”œā”€ā”€ cbc25c876d135bc53ca5510d72e889f589ac47
│   │   │   ā”œā”€ā”€ e0683f45b95a423f11ed4f1f053d8e4b689e21
│   │   │   └── f26ba6e975258ecac6f841cabd5adbac0cfda9
│   │   ā”œā”€ā”€ 89
│   │   │   ā”œā”€ā”€ 3ff04c156c9accad13deb32148c38733f8295d
│   │   │   ā”œā”€ā”€ 47420cf924081f782a09fdba753063a322eca1
│   │   │   └── d01cadbdd458b430a5295a877a4d050bae5652
│   │   ā”œā”€ā”€ 8a
│   │   │   ā”œā”€ā”€ 0a9007c3895a8f74eaa8e61b0775af4b1fbfd4
│   │   │   ā”œā”€ā”€ 3c9b74b4e419ed965f8959c5d561fed3fd055c
│   │   │   ā”œā”€ā”€ 3f2df26c2377e18f2e6f20e50ec70eb26a39a8
│   │   │   ā”œā”€ā”€ 4a7c67f83d0c733364b2d646a037fd0c08db1d
│   │   │   ā”œā”€ā”€ 5c049b5f2f0828d743e07f7ea38bedd6e9db83
│   │   │   ā”œā”€ā”€ 64ed92664271e3135232b213992267619b006e
│   │   │   ā”œā”€ā”€ 7775a8257099df2ba44ece89b5393eae052749
│   │   │   ā”œā”€ā”€ 82abdd30302990c29fef29cd7c3f0a0a3acb98
│   │   │   └── add415b74629a52ba0763de5647617ececd0d8
│   │   ā”œā”€ā”€ 8b
│   │   │   ā”œā”€ā”€ 035cbf6d8d74118edcb41efc4c00d07a319fce
│   │   │   ā”œā”€ā”€ 65df5e5caf0bf117dfbb3ccde14277bb838b1c
│   │   │   ā”œā”€ā”€ 7af305873cb411b73813b21d7e9ba2d699d3c5
│   │   │   ā”œā”€ā”€ 871361555396c16ee24b5d648daae06bb561b0
│   │   │   ā”œā”€ā”€ 91430f08d8371a33a72918171bba6f3418fa7d
│   │   │   ā”œā”€ā”€ ad29c6ac3aec0064fa639721677ad0029a575a
│   │   │   ā”œā”€ā”€ bd9b5e9a412003cb7d3df773db8ed446042bde
│   │   │   ā”œā”€ā”€ c51e4d27e5afeffb982ceff0232299e6e0b5aa
│   │   │   └── e104a94c11ea4332844701853d27214cafb9f5
│   │   ā”œā”€ā”€ 8c
│   │   │   ā”œā”€ā”€ 54b5a40bf8890655045a5bd3175030d889eac9
│   │   │   ā”œā”€ā”€ 7641eb32ea0b1c179d48d26f6b3e5cb8b6cb28
│   │   │   ā”œā”€ā”€ 9e28ddca9c9214538aa33f0b9ffd985dbfc28f
│   │   │   ā”œā”€ā”€ bb208066e13bd3f91f20b324d0f31ec1d40515
│   │   │   ā”œā”€ā”€ e1576055f9f76f7d9814cfbaebf09860c3f0f8
│   │   │   └── eab31b2553ec5535cb8c7ff31912637e86fa97
│   │   ā”œā”€ā”€ 8d
│   │   │   ā”œā”€ā”€ 223ea3d65403091f5f636a091678606083fa20
│   │   │   ā”œā”€ā”€ 2777a17fa562efa84f7cc2ce56fdc521fc5016
│   │   │   ā”œā”€ā”€ 2c3e4ad8c43e27dbe26886e73249153fe13771
│   │   │   ā”œā”€ā”€ 5a38132d6df560b61f3a32caced918c0c445fd
│   │   │   ā”œā”€ā”€ 5a5901dd09eb1419a95e441388f31819ff8813
│   │   │   ā”œā”€ā”€ 5b9ccb27a9b7728880613d2db8b4454a6f46de
│   │   │   ā”œā”€ā”€ 73fb29ab83acc78a950014dc5184fadd895b84
│   │   │   ā”œā”€ā”€ 95ad579245a62827ca37523c53b6979fbbe7af
│   │   │   ā”œā”€ā”€ 99cc8ce0058eb0e3e4dde62aebf8b5eaaa0a79
│   │   │   ā”œā”€ā”€ b9398858b0cba1eda0692b6671513b7cae1d1a
│   │   │   ā”œā”€ā”€ dca4dc4ed17d9b7701bbefe4ba71222a38baff
│   │   │   ā”œā”€ā”€ ea496b2efa9cd08f8b8b0d5f851f14c5f5cb33
│   │   │   └── ff979196352d0fe8aafa8c6bc8730bba5deabe
│   │   ā”œā”€ā”€ 8e
│   │   │   ā”œā”€ā”€ 04db6be54d6e2c3974286ee55cb1d8ccf210eb
│   │   │   ā”œā”€ā”€ 2373888789414de10419b85f6da53fb6354d7a
│   │   │   ā”œā”€ā”€ 540bf3518f6c217bdd11fa464c819eecef4310
│   │   │   ā”œā”€ā”€ 5ef6238a629d04f0db4002a0517794a37a1a79
│   │   │   ā”œā”€ā”€ 672f25cabb3e18ed7e4e2acef3443bbd127b1f
│   │   │   ā”œā”€ā”€ 9fed79ffed1d491bfa512202db36897dd9f177
│   │   │   ā”œā”€ā”€ ae4b9847262fa6669d6102e692825af0773eb5
│   │   │   ā”œā”€ā”€ b6915fb3a121d7545a66164ca3e840d5952b6c
│   │   │   ā”œā”€ā”€ dd12d28c47bdfc63636ff0bedf6c412307393a
│   │   │   ā”œā”€ā”€ effcdcfd29bd33f228e0cf9c2cb6e6b4d16fa8
│   │   │   └── f47a48ceff0f813e529d04a03436193d62d4df
│   │   ā”œā”€ā”€ 8f
│   │   │   ā”œā”€ā”€ 4ba3148bf67001685bb270c21a50bb98454918
│   │   │   ā”œā”€ā”€ 7ec4e8d30f86aec2643f67efabf65977ece6bc
│   │   │   └── ab0a6c487d9689a135bf2918d77143d0d81c90
│   │   ā”œā”€ā”€ 90
│   │   │   ā”œā”€ā”€ 26241e091638d06c37a0e57f4b70dd08145e3e
│   │   │   ā”œā”€ā”€ 7340fd7a1c4ca3c86687eb51417e10f49c1627
│   │   │   └── ac3ce9121ea4803297e7ef28b428790c36dd33
│   │   ā”œā”€ā”€ 91
│   │   │   ā”œā”€ā”€ 03f5178d826cc041e14be217cea4fe34e5b785
│   │   │   ā”œā”€ā”€ 938b397ce84def4ee0f6bee55597adf809cded
│   │   │   └── ca0bcedf3c4a6431ae222bc92559549c3f1128
│   │   ā”œā”€ā”€ 92
│   │   │   ā”œā”€ā”€ 336cfeabffd055b8a3f4b810942fad9d49f435
│   │   │   ā”œā”€ā”€ 47364137fff9fbf41f0e13b65a0f9b965bcb42
│   │   │   ā”œā”€ā”€ 5a4e29fe7cb4a65b59d15e7a8cee8e50530510
│   │   │   ā”œā”€ā”€ 77be2402bc166146da9407524bf7e3ee4807be
│   │   │   ā”œā”€ā”€ 7e8870600657de996717e9a7a9e4570a89a1f3
│   │   │   ā”œā”€ā”€ 9d6e537dc1c4933b2940a895564e1b61626cfb
│   │   │   ā”œā”€ā”€ b4f13fd1d8f056a72f8bce444505d2657176ea
│   │   │   ā”œā”€ā”€ be64fa2e7d26836662200e77bac754eaec1251
│   │   │   ā”œā”€ā”€ caa615885f24794e627a90c0793bfde46bfce3
│   │   │   ā”œā”€ā”€ deaa6b818918e76e59002b32059a9befd49141
│   │   │   └── f3544085bdcf830b126d71599d8862a8a82a4c
│   │   ā”œā”€ā”€ 93
│   │   │   ā”œā”€ā”€ 013502d97ae72da6417c33f28ad568f18300b0
│   │   │   ā”œā”€ā”€ 1df6ded636ac6afda402ea9d02b63fe97917fc
│   │   │   ā”œā”€ā”€ 444fce7e4e0f1b3f10506c88018b65424378e9
│   │   │   ā”œā”€ā”€ 59ff2d6b8711712c39aee41cb1173956ee0659
│   │   │   ā”œā”€ā”€ 62866dabf2058df7f650a20d05f93bab85c337
│   │   │   ā”œā”€ā”€ 67651bd63ebf25cb547c40b4e4063b9eacb537
│   │   │   ā”œā”€ā”€ 89432829cc8ccb4a86a99878830e08c5585c39
│   │   │   ā”œā”€ā”€ e8444685f35f03aa4add027cd1dfe3799fdf64
│   │   │   └── e8fec08f2423df7bf4523906cf0d9c845a8218
│   │   ā”œā”€ā”€ 94
│   │   │   ā”œā”€ā”€ 1d3b1abf74d7ae5b0aac445d02d41bde4a7d27
│   │   │   ā”œā”€ā”€ 37c8453f53a52818c0563cbdab08c32c40cfe4
│   │   │   ā”œā”€ā”€ 44c5862654bdf623f99624910cd41f1433141f
│   │   │   ā”œā”€ā”€ 4da7a4aef1047ed6178434a46f892421e77927
│   │   │   ā”œā”€ā”€ 64cea1a7c1b17f72a05bcc48d1445e89e606ec
│   │   │   ā”œā”€ā”€ b5cd241314b673806717ce10260b329aa8f5b6
│   │   │   └── cca5971a3c66697bb60929abe40f6a0cc1cae0
│   │   ā”œā”€ā”€ 95
│   │   │   ā”œā”€ā”€ 256c20e7bc8158104ef2e3372c05f1d954ecc4
│   │   │   ā”œā”€ā”€ 31743978bd222c05e6322e8292bd46366256aa
│   │   │   ā”œā”€ā”€ 3968cad0a411559d26a9dc44b584c8b7023ad5
│   │   │   ā”œā”€ā”€ 60421b0e54602d109e915fbd0233ed2bafad93
│   │   │   ā”œā”€ā”€ 85034fee805f994a9ff4507545678ad1356b3c
│   │   │   ā”œā”€ā”€ 91184453b9fab383bd7b7bc586633c91852424
│   │   │   ā”œā”€ā”€ aa2c6362e3779ab94c6e3c406ff9ffc64d40b9
│   │   │   └── e509fc626ff3eb61371742fb5d486ba193b238
│   │   ā”œā”€ā”€ 96
│   │   │   ā”œā”€ā”€ 760b54cd9d77f4d4c4c7a52c82782b1e3c6411
│   │   │   ā”œā”€ā”€ 83da1edda03d2f08c9989462cb1ac68108e403
│   │   │   └── f233e4c20b03152b6da3807ecf977b464e337b
│   │   ā”œā”€ā”€ 97
│   │   │   ā”œā”€ā”€ 0113bbd1a3ad693f2de4ba5aaf1afceccab271
│   │   │   ā”œā”€ā”€ 055977fd3064d0a30dae1989442c4682976fbf
│   │   │   ā”œā”€ā”€ 67c6d3f0e84e0b08f18ca35bbfe1c2adecf6f9
│   │   │   ā”œā”€ā”€ 721a8c43db7640ea964aa341283637a5530c05
│   │   │   └── a036dc1d224f7401caf5ba8feea9225b23f909
│   │   ā”œā”€ā”€ 98
│   │   │   ā”œā”€ā”€ 0eb839fb423129e6317eafeb7cbafd1b7fb0bf
│   │   │   ā”œā”€ā”€ 394daede63df83b45c47a94e3032582b59a789
│   │   │   ā”œā”€ā”€ 622ca5834f216080a3bb0ee38769359cdb47ef
│   │   │   ā”œā”€ā”€ b0dcb08fce1a492d9e1a521aee8957cdf7014e
│   │   │   ā”œā”€ā”€ bddd80abd38f4a7689d309b890c94bb02bfc0f
│   │   │   ā”œā”€ā”€ c0e201d48c97bcb80747e8252bf1df502be863
│   │   │   ā”œā”€ā”€ f0f9a8e76900d84cc50c243ef73a9b42b6d2a2
│   │   │   └── f54a9cb5ef8eb21dbb817dc460210f19cfab2c
│   │   ā”œā”€ā”€ 99
│   │   │   ā”œā”€ā”€ 340be049f2c420291be3d9082dd64ec4500c30
│   │   │   ā”œā”€ā”€ 3c0b2996c7389e6157c9eddbbc84e078fe99d2
│   │   │   ā”œā”€ā”€ 4f5e9c1ecc82154a1f8eaf34c34927276cfade
│   │   │   ā”œā”€ā”€ 505f3d2dadf57692f4c39b20caa4c87ad88a2c
│   │   │   ā”œā”€ā”€ 8273e77be8d988e210204d9f1c881e180327c4
│   │   │   ā”œā”€ā”€ 8aa8c75990e1b56733f4589c38c6ef5b7b5f6c
│   │   │   ā”œā”€ā”€ c03c25bef538e61c169d9d7f4afd240f8019d1
│   │   │   ā”œā”€ā”€ c493a511ea632cf914115a58aee054961da851
│   │   │   ā”œā”€ā”€ c6e6eb76e3698a0dcddb950cc7c55fc4cd257b
│   │   │   ā”œā”€ā”€ e1a71f9c7fe6d520c8dcda86da6354642e868c
│   │   │   └── fdd7f977cf976dff0bba582deadcaa53e3073b
│   │   ā”œā”€ā”€ 9a
│   │   │   ā”œā”€ā”€ 08d3cf044c29215930a3a789048c3967bc39f4
│   │   │   └── a48d5986867c3ad4ab76e4528a82edfba6ab1f
│   │   ā”œā”€ā”€ 9b
│   │   │   ā”œā”€ā”€ 1889cb2494e3976fdb0b66d024721ea2825c25
│   │   │   ā”œā”€ā”€ 3ffa085cfbc4775813798ac63c541a4389ab4f
│   │   │   ā”œā”€ā”€ 43c2a7f966b73cefcbdda9337c71ccf702b670
│   │   │   ā”œā”€ā”€ 556197c6c0af6b1cb7b6fd2fde97d93be451d0
│   │   │   ā”œā”€ā”€ 818a4bbbd7666c1278b4f954900343a409be08
│   │   │   ā”œā”€ā”€ a692ad947be5bc342eb8b0bee52fa53c0de5c6
│   │   │   ā”œā”€ā”€ bbca79a53b98b7267b65706bc357f94ab5a193
│   │   │   ā”œā”€ā”€ c5456c1f6704c297806b5f4c7a1c85784164db
│   │   │   ā”œā”€ā”€ c6f9b16f6e6dfa9df340f680de30d7c9372bb3
│   │   │   └── c9a40448e44c92f677df9c37baf07693032f40
│   │   ā”œā”€ā”€ 9c
│   │   │   ā”œā”€ā”€ 2ff7e9b332ac70e5386e051dc73ba278e17bd1
│   │   │   ā”œā”€ā”€ 327c2a8ad47f70e3eafe69f3405b377c3677d5
│   │   │   ā”œā”€ā”€ 390248b4f4d618ad8d61bca908192c56753061
│   │   │   ā”œā”€ā”€ 3b2474774af508175c519aefe199bd2496c010
│   │   │   ā”œā”€ā”€ 666202b9292b02b7afb3376e34c06c10609102
│   │   │   ā”œā”€ā”€ 7a51c94957ca90ea67823a800cdb364a5cf6cc
│   │   │   └── f6cd9b9d2ba82f86b76adf38b887a72ff0adc7
│   │   ā”œā”€ā”€ 9d
│   │   │   ā”œā”€ā”€ 1865398f00ba9d726758e067398344bc190c64
│   │   │   ā”œā”€ā”€ 23e84da6065ada16841893ca7faeb7528b06ee
│   │   │   ā”œā”€ā”€ 48a103b0e8e59f0999c7a4042fd5f177b34e0e
│   │   │   ā”œā”€ā”€ 49e1ba02c49fada807b5ef9c38fef5b7699e76
│   │   │   └── e462623a1c9a522adb8b362fc9c5e67b0acb2b
│   │   ā”œā”€ā”€ 9e
│   │   │   ā”œā”€ā”€ 13ed7372f5e62502c7e2d9e26ad5619306c55f
│   │   │   ā”œā”€ā”€ 797dc5ad427a00d96632341946150582fb994a
│   │   │   ā”œā”€ā”€ 8ab02a2fd002f55d9a3d71f867c9ef3c361c35
│   │   │   ā”œā”€ā”€ b18414f62f8059ef68bfb98655e07e1830d8e2
│   │   │   └── c20c52954f02b6b2b980e2eef3ad388916b373
│   │   ā”œā”€ā”€ 9f
│   │   │   ā”œā”€ā”€ 1dac9380cde85c07fbca0e10648ddfa980b1aa
│   │   │   ā”œā”€ā”€ 50fa778dbe849a82c30e3af1d29e49e8da344c
│   │   │   ā”œā”€ā”€ 519f57daf2a67d1183e1f3c944fe829eccc1a5
│   │   │   ā”œā”€ā”€ 56d06b2b745c4972768c0b56f7ffcba356dffd
│   │   │   ā”œā”€ā”€ 68485d385e9e9cded1eea91d2b4f08bf61903b
│   │   │   ā”œā”€ā”€ a93ead2cef24747ef60df218930b3d281158c7
│   │   │   ā”œā”€ā”€ d4b97b1c230080f3324d651c5c87b1329edf87
│   │   │   └── e0b3ee57da0d3c0b862b5f8f7118bf6d820832
│   │   ā”œā”€ā”€ a0
│   │   │   ā”œā”€ā”€ 31e3372d9ba16349166d1c211b20a8b8aae30b
│   │   │   ā”œā”€ā”€ 9f7885607f989afc523c9a595f1ed3b1a9563e
│   │   │   ā”œā”€ā”€ c02d7014cac735aa15e03a9ba3906c0c82ac6a
│   │   │   └── fb92b19f443bf7404a62cd8c706ecb1c386c11
│   │   ā”œā”€ā”€ a1
│   │   │   ā”œā”€ā”€ 25deabc178ceed6c295bdcdf720d8e6eabf37f
│   │   │   ā”œā”€ā”€ 4e3c53c8266f4e0288c0af6ece0fbcf429fd54
│   │   │   ā”œā”€ā”€ 67073d6f7fdbe73d250fa92399ec4b12e2fa4a
│   │   │   ā”œā”€ā”€ 6d4f5394171e0adab0192ac3c160a07cf98531
│   │   │   ā”œā”€ā”€ 6e077fed9b5133744431190787dd35b1964d52
│   │   │   ā”œā”€ā”€ 791822718618cf498f1454af7541bda45d8683
│   │   │   ā”œā”€ā”€ d336c24a363c792e7a537f691b0cf51e0d9b23
│   │   │   ā”œā”€ā”€ d4e8cc7463c49f05e46828d990828cb94a912c
│   │   │   ā”œā”€ā”€ d6fbc1ac9facab70061689d38fb652b3e154b3
│   │   │   └── fed961cb4be390e1f0f0ee152b5db6d9a6dbf1
│   │   ā”œā”€ā”€ a2
│   │   │   ā”œā”€ā”€ 35558fb885c2e0a5d11bb614c85d3401d55834
│   │   │   ā”œā”€ā”€ 5809f78b0718c924c4ef82f3f2b56b4da3a603
│   │   │   ā”œā”€ā”€ 5b9eeb4a5a428a59a666d082fc1f3860916949
│   │   │   ā”œā”€ā”€ bb61bf1306bab45de80ef4d8a62cdf867bbb37
│   │   │   ā”œā”€ā”€ eb6554eecf0149800d7301f2b90169ff8f5c6b
│   │   │   └── f2d25a25cb885a91a916bfc14ab4dcfe46d2f2
│   │   ā”œā”€ā”€ a3
│   │   │   ā”œā”€ā”€ 0787b94aa071476030b21028b0085b4f96bb85
│   │   │   ā”œā”€ā”€ 263f4fae97ced83d251d9096dc8a4d02fc8b89
│   │   │   ā”œā”€ā”€ 50b12d064fb6b717eacbfef4eaccce16a47a17
│   │   │   ā”œā”€ā”€ 5d68642a07bff5dbee2ae869f59abfb9232d0e
│   │   │   ā”œā”€ā”€ ab1b7bee0c0ea42ab8b496781e07cc2f455763
│   │   │   ā”œā”€ā”€ c0959f3ea83ce6c1095356b1d452bd09f917c8
│   │   │   └── fbac1e69e068e5e1b8a0e637c2158db6a628e8
│   │   ā”œā”€ā”€ a4
│   │   │   ā”œā”€ā”€ 31afb6e6453a5425a20775e3d8cf0ee3c57ffd
│   │   │   ā”œā”€ā”€ d794df3bfa5d6fefaad236f664e038170fd1d7
│   │   │   └── fd1ac44ba92bd66a9ea9fa07d13367422a3621
│   │   ā”œā”€ā”€ a5
│   │   │   ā”œā”€ā”€ 0a02f50f440cc7cc31ad50a792366c0ef42287
│   │   │   ā”œā”€ā”€ 1ccb7d0b57eeb33bd8b7812c12294cf111ca5e
│   │   │   ā”œā”€ā”€ 365782200cc9f60e2ef0b4d079b6e87cddb4ae
│   │   │   ā”œā”€ā”€ 8a1329c7f1e739a53cd1f273186593473cd8e8
│   │   │   ā”œā”€ā”€ afa5c68a99196931b73267ba4253e814f1aee8
│   │   │   ā”œā”€ā”€ c792a99cccdd134f625aafea45193b15392718
│   │   │   ā”œā”€ā”€ d50a1d38dded3c5b084d6c585d2f4e5fb29534
│   │   │   ā”œā”€ā”€ d6b1b55491054c4b04af20ae63ed84047aa57d
│   │   │   ā”œā”€ā”€ e832869b2fe87990725ee9402ea603c897294e
│   │   │   └── fcfbf1b9be8d4665f61e2d929e5f999eb6c1cd
│   │   ā”œā”€ā”€ a6
│   │   │   ā”œā”€ā”€ 907ec48cec2999a7db630e985a583574596abd
│   │   │   ā”œā”€ā”€ 957f9eb320d3a8bf896e776bc558438e088eac
│   │   │   ā”œā”€ā”€ f40ea962ccaba26e7fd46160e8975da1f507ea
│   │   │   └── fadfc59c70b046d082aba6df8a9a527130b137
│   │   ā”œā”€ā”€ a7
│   │   │   ā”œā”€ā”€ 0f646c30cbd630ccd8df5dbdbd91036cea2a16
│   │   │   ā”œā”€ā”€ 3dee934785dd2509ea9be9697918d607531e05
│   │   │   ā”œā”€ā”€ 44e8bb0ad2d0dd838f5419366218390caabdf2
│   │   │   ā”œā”€ā”€ 55f5c6401fee10dd32956954aa7cb0e1f4c6c0
│   │   │   ā”œā”€ā”€ 6f3c47a00239dab87c8258ff7db45d608e84cd
│   │   │   ā”œā”€ā”€ 86dc6e7b5d0e5e358caa1f8adb56d705192495
│   │   │   ā”œā”€ā”€ 8aa68a72d3a902140bbaff8c662b2f21e85cda
│   │   │   ā”œā”€ā”€ a6ecd1e4f144c4e1e3b2245c981ab220bcdf56
│   │   │   ā”œā”€ā”€ b2478fe80e750f238777897c92889813c2daa7
│   │   │   ā”œā”€ā”€ ce3c6c834fe50e7bd9d572c96c6a925e0098b6
│   │   │   ā”œā”€ā”€ e852222ecbfcce90637e6f84e7867828f365e5
│   │   │   ā”œā”€ā”€ ef78fd283072bbdd6ecfff8b31b17625283368
│   │   │   └── f67af3d0818a1f9c60db5c26410251abbc278d
│   │   ā”œā”€ā”€ a8
│   │   │   ā”œā”€ā”€ 15285a4da533edf9d998bc969a5e7445d3729b
│   │   │   ā”œā”€ā”€ 2ba909cfa04188ea952226913f7b6157818e1c
│   │   │   ā”œā”€ā”€ 38083250f21755f5978ba1f4276246bc8001bb
│   │   │   ā”œā”€ā”€ 49c4691dfa9a751c31c887ea1fa942c692bd41
│   │   │   ā”œā”€ā”€ 531cef671454d571f4beb718aeb43c4feb67d7
│   │   │   ā”œā”€ā”€ a32120efb5804abca32d2622d733f083808905
│   │   │   ā”œā”€ā”€ b466c3d28d5cdfb76f23a3d5bc22f0ae2a2598
│   │   │   ā”œā”€ā”€ b4c978fb0dc8f948e72be722cd4be922473b6a
│   │   │   ā”œā”€ā”€ be7a4d44888ddc8362f911e46c9b805420c96c
│   │   │   ā”œā”€ā”€ d12b1dcada2162baa4af658c4abe2b9629ad40
│   │   │   ā”œā”€ā”€ fb72467c559432c4f49beef943c71d7cea20eb
│   │   │   └── fdb3d00ee2598e3c9acc85adf0b829d7489f73
│   │   ā”œā”€ā”€ a9
│   │   │   ā”œā”€ā”€ 1127ad283332fec9feb59f8177096bb9a198c1
│   │   │   ā”œā”€ā”€ 23fe66286bd253c114dd4c6d2efbf32174d1c8
│   │   │   ā”œā”€ā”€ 40ad16622d31f725694d89292989544ff1969a
│   │   │   ā”œā”€ā”€ 49f329e11f30cec4bede65c3401a325bd9d304
│   │   │   └── b0abbf13b8ceee0824969a56f2c20ca4b766c5
│   │   ā”œā”€ā”€ aa
│   │   │   ā”œā”€ā”€ 0d4c8f420b6233f085a15d68c58288d571030e
│   │   │   ā”œā”€ā”€ 0fc4cc119740f93bfdba2aa05d660d58469566
│   │   │   ā”œā”€ā”€ 1b4d6405ee47d8bd09e6c876661b029bd279b3
│   │   │   ā”œā”€ā”€ 652aad4c8bbce700b193ed161381af7d4a4db7
│   │   │   ā”œā”€ā”€ 9a268e980bff52c127a1b2d6f9ac6f2b1486d6
│   │   │   ā”œā”€ā”€ c0019f584f69f9260bb38e181b2e65387121ff
│   │   │   └── fbd9df3940df59de9984e5d8e6d3359dcaed08
│   │   ā”œā”€ā”€ ab
│   │   │   ā”œā”€ā”€ 1d1d866988ead13439da430559c0b9d5c0f98a
│   │   │   ā”œā”€ā”€ 1fe20e9ee344f43f0666953e21032fa7110565
│   │   │   ā”œā”€ā”€ 83518d662168e380e00b5ff8cd5098ac77781c
│   │   │   ā”œā”€ā”€ cfe28da9cb4b4f34e8fd0940b899e952948a81
│   │   │   ā”œā”€ā”€ d4957f9591d9108b3f167acbec5372269ebeb8
│   │   │   ā”œā”€ā”€ e6f06f66d4e33d6a1f3b3f3757ed8a23d83226
│   │   │   ā”œā”€ā”€ f36e91504044b124011b17d692e6fd3f7e5c39
│   │   │   └── fd51d2dc68682f626c41fae548b9c1e2ff248d
│   │   ā”œā”€ā”€ ac
│   │   │   ā”œā”€ā”€ 020c487ef693599e727acd402112277631b146
│   │   │   ā”œā”€ā”€ 021429f52300589243d11ac02ffb871f74c355
│   │   │   ā”œā”€ā”€ 749deeecab9e985c76cd0c60b15a85901a51cb
│   │   │   ā”œā”€ā”€ b4a358c3837776f3ecc6508d2620bc1b07f79d
│   │   │   ā”œā”€ā”€ f0b0dea4c30424a51458ae8fa0a5d344700a15
│   │   │   └── f3eab7f56aad2253a59166706c1bd1108ca7f1
│   │   ā”œā”€ā”€ ad
│   │   │   ā”œā”€ā”€ 16013137e7d898e3be82705a7672ec3799a18c
│   │   │   ā”œā”€ā”€ 1dc11c78e46343f800709bb35d778cc8433bc2
│   │   │   ā”œā”€ā”€ 2d0a2d0f717dec06a1fc6c833bfa9a16ea6779
│   │   │   ā”œā”€ā”€ 43bf8e52ba723432f6e9df547c78ef3cf8e06b
│   │   │   ā”œā”€ā”€ 4ebee1c40f35e472ba0e42692285f56a19b9c9
│   │   │   ā”œā”€ā”€ 8319f36ea075d83e2f4f8de7cf1dd7d034aa8e
│   │   │   ā”œā”€ā”€ a0b83365b979af4204b18025fc48a35f108a9c
│   │   │   ā”œā”€ā”€ a3e805adfc4bc23372efeccb468cbcfd1cc7eb
│   │   │   ā”œā”€ā”€ be46aef48cf8fe5170570afdf2b7e5b607aac0
│   │   │   ā”œā”€ā”€ cada9ef9b0d9f5e2b4b9c6fd4df55cf36d6084
│   │   │   ā”œā”€ā”€ db117e0b789eb62616b2b1b70b865b446c361a
│   │   │   ā”œā”€ā”€ db81dd99105bbc0687b5a458aaca64fb11e41f
│   │   │   └── ddb4826d617fefdaaeafa86dc7532b9aeb3200
│   │   ā”œā”€ā”€ ae
│   │   │   ā”œā”€ā”€ 060d04136e66efab2f27e4eb03bbf0f412ace1
│   │   │   ā”œā”€ā”€ 2bc7388405e6f91953e35e09c30b50e74590e8
│   │   │   ā”œā”€ā”€ 3211dc3e5afe5fd45dbeca047e34f058114b84
│   │   │   ā”œā”€ā”€ 5c03cf9d0002e672dd9891b0c9afa5aa7368cb
│   │   │   ā”œā”€ā”€ 6534e71de486066b753004da70ccf14c648381
│   │   │   ā”œā”€ā”€ 67d49565a4c1003cbbdc22e6daf13db1118b06
│   │   │   ā”œā”€ā”€ 77bcc4075d93ded3c9981ec65e0f3c31f3d2ad
│   │   │   ā”œā”€ā”€ b273c167369bffda456f14397db2b4afb47d79
│   │   │   ā”œā”€ā”€ d8c4c43cd33989ce546d27d3b0e9cf661e974e
│   │   │   ā”œā”€ā”€ fae3b23678be1c54736324a84d100be8a510d3
│   │   │   └── ff9fb8d80192c45cb836f1044f4b0a4b8344c7
│   │   ā”œā”€ā”€ af
│   │   │   ā”œā”€ā”€ 03dfb9d2e16095e5b398bd9fd822782415b644
│   │   │   ā”œā”€ā”€ 28afc4264b274cbade731404b8c023a371bcfe
│   │   │   ā”œā”€ā”€ 2b3f8a5be7a81f5e332b2368e59a62527e9af0
│   │   │   ā”œā”€ā”€ 4953aa73a1afae54eeff6f73c8bf3b929bfd91
│   │   │   ā”œā”€ā”€ 4a2cb4d55177e8790ca254062bddf612027256
│   │   │   ā”œā”€ā”€ 5416d30c4be58b5154c646523ac15b6050565b
│   │   │   ā”œā”€ā”€ 69075bcbf0df81dab686bb4fe6e5226abbfd51
│   │   │   ā”œā”€ā”€ e3176b7f074cc89f01cae8ffd0414543482f65
│   │   │   └── e60cc38111ab9b840a5fffb8236c6b25c0a552
│   │   ā”œā”€ā”€ b0
│   │   │   ā”œā”€ā”€ 494cc3054da2bc21d3e1a3675a273a2dc895f0
│   │   │   ā”œā”€ā”€ 581a8703b359b588217ab9ea41556cf5e24084
│   │   │   ā”œā”€ā”€ 8bc1aef30d27a3d1466dba5961cf08759c41e5
│   │   │   ā”œā”€ā”€ 9d72f915f5b07de7d258298131e6ce6d54246d
│   │   │   ā”œā”€ā”€ c59a4c09ef6132540ba128c042659fb1b8d15e
│   │   │   └── e83e7a1787c8b58f983017e32fdad736a6ddf1
│   │   ā”œā”€ā”€ b1
│   │   │   ā”œā”€ā”€ 0706f5735e1b8a667acb4a5806627702b5f6f7
│   │   │   ā”œā”€ā”€ 07ad8238f0942945f62e273e6411a617c125cf
│   │   │   ā”œā”€ā”€ 0f94aa9f5dec4ebee127ab5ca002bb8cd94152
│   │   │   ā”œā”€ā”€ 208d245ec57a61995478435d8941c0391b2721
│   │   │   ā”œā”€ā”€ 20c4a968d2867c0c4fdb3a94a9e7effab4513e
│   │   │   ā”œā”€ā”€ 28283e85051e339d19a8db1590572474617c16
│   │   │   ā”œā”€ā”€ 30e4e7a1e9fe4f3c4e6e93d188987ae8f49725
│   │   │   ā”œā”€ā”€ 59d84f966e53c9be7400b844bf0cd62d9726ea
│   │   │   ā”œā”€ā”€ 6300c95588073547e02133e8cf22d09997edd3
│   │   │   ā”œā”€ā”€ 9892b030eedcf0161edfe6306630e9befe91a0
│   │   │   ā”œā”€ā”€ aea734ad0b5afdfd17a25980d7afe718aaf9a9
│   │   │   ā”œā”€ā”€ c6ff44e44e32f7d938434048d0935d76fa901e
│   │   │   ā”œā”€ā”€ e202b3ff767182c43d2131818e04e4f43b390e
│   │   │   ā”œā”€ā”€ ee1f1728158c1e16f406a1e462955d3b9e8933
│   │   │   ā”œā”€ā”€ f67b16b4a883783eb8b85e3cb4c559fb9ff0db
│   │   │   └── f744bfec840db00c770f86618c1cbd6cc42ace
│   │   ā”œā”€ā”€ b2
│   │   │   ā”œā”€ā”€ 148efd297032409bd9f06141d0850a99dc286a
│   │   │   ā”œā”€ā”€ 396437428ff2c37a778ac95ea63a1317cc8f3c
│   │   │   ā”œā”€ā”€ 445d6db333a5edb4bac0012cabff6c0ed655cd
│   │   │   ā”œā”€ā”€ 74963782dafb68c0b20cf852346831be2e70a2
│   │   │   ā”œā”€ā”€ 7b5f980175787f4233f7ac789c2bf888497d7a
│   │   │   ā”œā”€ā”€ 7f47b465cf12d35619a1895684e2ebe67eb939
│   │   │   ā”œā”€ā”€ 9215b32858278b46044714f93255adc08d377b
│   │   │   ā”œā”€ā”€ aefa03935ff885bbcaa7e8a9a17e0fb1c0098e
│   │   │   ā”œā”€ā”€ b3ace9e1d5602d01eb7cf9a134615a3041d0e4
│   │   │   ā”œā”€ā”€ c1acf0e9ff86ab4d8fc65ca323773c7cf63cf6
│   │   │   ā”œā”€ā”€ da825864871610c9b9e46a4aa23339baba152e
│   │   │   └── e673e83e07fc33dbeb881aa4c512f3e0d68d00
│   │   ā”œā”€ā”€ b3
│   │   │   ā”œā”€ā”€ 274f12811759d8e6b13f6179836f76aecbdf94
│   │   │   ā”œā”€ā”€ 33e8db1f1415623d2aabdef40538b450a19816
│   │   │   ā”œā”€ā”€ 55105d07763910b681956217f4cbec1d50453e
│   │   │   ā”œā”€ā”€ 5af07088ea37199d0f58657291efbc893d6475
│   │   │   ā”œā”€ā”€ 7e67b193fd9a7cceef38688fb15ad78d7f1164
│   │   │   ā”œā”€ā”€ 7fb134643bc9bd5a8389570630796ded21f2a0
│   │   │   ā”œā”€ā”€ a5848e277999b6776007bb1b2988181a67c7da
│   │   │   ā”œā”€ā”€ ab3eb5fd12a9c08ea40ef0d2a5298d1876acfd
│   │   │   ā”œā”€ā”€ af48978362b2842f0ee93a9ad8875f8bcbbf1c
│   │   │   └── dae5d5866c5c5967fe144197594f2a11b6391f
│   │   ā”œā”€ā”€ b4
│   │   │   ā”œā”€ā”€ 5572451c533a5582979cd4f95c6d94f0e5d136
│   │   │   ā”œā”€ā”€ 5c222a6a173f3208f54b1a53d9c94d12bb40b2
│   │   │   ā”œā”€ā”€ 7c9d6053caa326afaadde6314c87e67fb4504f
│   │   │   ā”œā”€ā”€ 962bcb402815e5233ca37982ba72757b913a1d
│   │   │   ā”œā”€ā”€ c313a742e9c7d808c3ef2d0c094ad716caba5e
│   │   │   └── f717db5ea104184f2d1d6f690cdc2b5029e1f9
│   │   ā”œā”€ā”€ b5
│   │   │   ā”œā”€ā”€ 253645969efb85dced154a5a2f6d64e48174b0
│   │   │   ā”œā”€ā”€ 3455d9ee61933771d9580dd2f464d2b71b83d9
│   │   │   ā”œā”€ā”€ 6478be455a08fac6e96ea8162632481f25e6bc
│   │   │   ā”œā”€ā”€ 64db07da8def12b1d7ec4ec2c3ef3f7fce5f84
│   │   │   ā”œā”€ā”€ 9ceee90421cdce8ecac2f7e23fe695948aa060
│   │   │   ā”œā”€ā”€ 9d1e65b05a5e16b5e147b55471c2f22e28d66e
│   │   │   ā”œā”€ā”€ cb7fd072794f30eb79724b7ed57e6f67fdf514
│   │   │   └── d55ea607736e9f1fcc1f3dac7161202783464f
│   │   ā”œā”€ā”€ b6
│   │   │   ā”œā”€ā”€ 0d296103047ad651c1dc335804ad98c84019a3
│   │   │   ā”œā”€ā”€ 5f15a2f1dca9e0782ae09a537996fd44f2c42d
│   │   │   ā”œā”€ā”€ 7c719e87ffaa6cd4b71528f09a06b50a2c2c57
│   │   │   ā”œā”€ā”€ 8746fb5b58bdd11a962da9855878479cb7449c
│   │   │   ā”œā”€ā”€ 8c64a02f78e19dd07b9abde10189748e7d4224
│   │   │   ā”œā”€ā”€ a7dbc155ee84f0c10b76418a144b49804d2314
│   │   │   └── f13d918431b42e77821e26b1983d01fff7f71b
│   │   ā”œā”€ā”€ b7
│   │   │   ā”œā”€ā”€ 2b36d89c73364e380e5e106cbd4e38ab3b8c56
│   │   │   ā”œā”€ā”€ 2bbfe9b0696f4a8525a43c4292bdeb92caac96
│   │   │   ā”œā”€ā”€ 4634482f334bd022b6ea3cc1f0490f8a412d07
│   │   │   ā”œā”€ā”€ 4dfa777868af86fd63fa1cb3c92c116c89aaf7
│   │   │   ā”œā”€ā”€ 66ec8f3942b1f61fa5e9dcfb5f4334ed5c49c7
│   │   │   ā”œā”€ā”€ b4b0ef590b56ad987b7c8bcd61cd3d37f82095
│   │   │   └── c33b032760276a5c03f2d8e244ba04e6ce5b00
│   │   ā”œā”€ā”€ b8
│   │   │   ā”œā”€ā”€ 153bef7fe7ef19723bb3ffb494c0592719d789
│   │   │   ā”œā”€ā”€ 17a1459c9ef5c2c4c92e7b8adbaea5e72d36f1
│   │   │   ā”œā”€ā”€ 1abcf4c042fad2193a732a721da0566fd38a74
│   │   │   ā”œā”€ā”€ 202156497abf37c4d30e16efcb752b83880e6c
│   │   │   ā”œā”€ā”€ 4c55bc3fd942ea185e7c2a64cb99fe2ef896e1
│   │   │   ā”œā”€ā”€ 5aa6038d3d3b1ac1dd3991c248b9848fc4b3d9
│   │   │   ā”œā”€ā”€ 69c9f7c1a5c1992fbda7d8d5e3be34dd24d54b
│   │   │   └── 941fe727f5acfc5296f494ff2fbbf287b6db5f
│   │   ā”œā”€ā”€ b9
│   │   │   ā”œā”€ā”€ 00b6ad374c70a4a51844de0d474d2481838bfb
│   │   │   ā”œā”€ā”€ 080b07a8136c04a691679f268548947aba96ff
│   │   │   ā”œā”€ā”€ 17610eccd971718867652212bdafa38fe87e64
│   │   │   ā”œā”€ā”€ 2eb210345b0eba1c8f81d7e806881255b8950b
│   │   │   ā”œā”€ā”€ 6aab54736cf86582cdc5807fa7e88ba12b0cdc
│   │   │   ā”œā”€ā”€ 813bbd5ddd2ff1487ed71e6a9e291b77ae5318
│   │   │   ā”œā”€ā”€ 9a83e1a1189488a769797e8aaf1d10d3ba43d1
│   │   │   ā”œā”€ā”€ 9da94b0f5dd6126801e188d9df08573a7d0232
│   │   │   └── eb4e6ec0aead5e693c06ef283a946ff600d417
│   │   ā”œā”€ā”€ ba
│   │   │   ā”œā”€ā”€ 2d88f1b0702e7b156b0294e20c18154314cdec
│   │   │   ā”œā”€ā”€ 360e55066d8c694484cbf9cf7383ac218123a8
│   │   │   ā”œā”€ā”€ 443cf54fef01be0c8b9da301b7219e716d596a
│   │   │   ā”œā”€ā”€ 4ef8408e52535f960615e471990f6b54083db0
│   │   │   ā”œā”€ā”€ 5a9418e160e6e48da4133cc667f06380e91fd4
│   │   │   ā”œā”€ā”€ 64a3008b1a6f2f34ae5affff6b93155de22142
│   │   │   ā”œā”€ā”€ a4ecbb007e06150a49fe33cc269e3ebdd7a0fb
│   │   │   ā”œā”€ā”€ a6961b9dbecf31e772f9708a79da99e50eb4d7
│   │   │   ā”œā”€ā”€ bcfd2d69e6340c061f032759d59bd0aa79942d
│   │   │   ā”œā”€ā”€ c84424161a0114e08741dfff4d62b0ee23c4dd
│   │   │   └── d64170cc8a8109ba11f8d84491c043e83028aa
│   │   ā”œā”€ā”€ bb
│   │   │   ā”œā”€ā”€ 1eae472937f258082bdf44d6a4d91ccd884be1
│   │   │   ā”œā”€ā”€ 3dfb2707c9a31ceae4e7fefd610a03ae48934d
│   │   │   ā”œā”€ā”€ 516b2702c3d1248650742e0c236ac4d9c5a627
│   │   │   ā”œā”€ā”€ 5ba40a3ce2ed3789e42b624de8e858a48d28ee
│   │   │   ā”œā”€ā”€ 6381db56f13ba5ebd349bd7a0cd3fd977952d5
│   │   │   ā”œā”€ā”€ be2443e7d6b618eb239af9c8e2233ce27c2f2b
│   │   │   ā”œā”€ā”€ c7a58e3bca8688ceafb3792faaac3c957c37b5
│   │   │   ā”œā”€ā”€ c859690937fd5e42b4671a72ee3f294fb668be
│   │   │   ā”œā”€ā”€ eaaff50b48af5bba17ce9d7c9f9381a72b671c
│   │   │   └── fc891a2bc8b35d8ba43f472426d6a5e8363d96
│   │   ā”œā”€ā”€ bc
│   │   │   ā”œā”€ā”€ 15121975f08e846394b21af53807b8df88d177
│   │   │   ā”œā”€ā”€ 1c5bb0d9181e3da1c00313957120c4fffa96ac
│   │   │   ā”œā”€ā”€ 24815d51f9f1557ca72453bb48c89e7c2caebc
│   │   │   ā”œā”€ā”€ 4429d32a8c5b06646435515f7f992cf8614d0f
│   │   │   ā”œā”€ā”€ 722d267bffcea4fb83e8c8d6ca597a17fec837
│   │   │   └── e214b3a40695c83705de1abf4bddd1ba0508d3
│   │   ā”œā”€ā”€ bd
│   │   │   ā”œā”€ā”€ 24a4e7d479345d0e42af0808b9513eda406443
│   │   │   ā”œā”€ā”€ 3279ed21077118dc56f547262e6ccb5112b997
│   │   │   ā”œā”€ā”€ 8184623c7fe3dec2711d62e982d7d93c886084
│   │   │   ā”œā”€ā”€ e6b7b84327cb0645e4aca554a4862dcaf5116b
│   │   │   ā”œā”€ā”€ ef432e966e5acb4e2bc33ec849ce3a5d360d2f
│   │   │   └── f82281ec65b8439c42daafee11bd5c2d25f1ba
│   │   ā”œā”€ā”€ be
│   │   │   ā”œā”€ā”€ 3afd02cb706e8a11aeb988c43e0d6fee8d57d1
│   │   │   ā”œā”€ā”€ 3f09f1bdd2ff5db2fbd4b74bcee5e77f1540d7
│   │   │   ā”œā”€ā”€ a75ef2e96236ec127183f3dd1f81fb46dfa987
│   │   │   ā”œā”€ā”€ a8d6d4bcf333595a6d19368932d6952fd610ff
│   │   │   ā”œā”€ā”€ d957baa5fca47c9db3e7847ad0835b73a212ba
│   │   │   └── f6032d779da27f73f6fd0761e8b48da6fd284a
│   │   ā”œā”€ā”€ bf
│   │   │   ā”œā”€ā”€ 46805ecb408c57a17473681f6b6929551b9f06
│   │   │   ā”œā”€ā”€ a66b4d8386312af201d04d19350718a2e6b6be
│   │   │   ā”œā”€ā”€ de29ef2cc711e2d968a00d839107aadf35767f
│   │   │   ā”œā”€ā”€ f427967e372eda7734d24305d32d2df807d652
│   │   │   └── f939c2307a02322c0b1134441ccd49281514d0
│   │   ā”œā”€ā”€ c0
│   │   │   ā”œā”€ā”€ 0189df81459bbc9c7f16dfedaf0f15e38aa164
│   │   │   ā”œā”€ā”€ 9d91c728d7b8a4dfe52d374ffe7f3d55a0e270
│   │   │   └── df48b0c816773943039a676b0e70aa6945d182
│   │   ā”œā”€ā”€ c1
│   │   │   ā”œā”€ā”€ 2e18eb96f7320b4138e747513c44af26693feb
│   │   │   ā”œā”€ā”€ 9134598d8699ae3cf7a4af4e67f3aecdaf3db5
│   │   │   ā”œā”€ā”€ 98197a52a7535a2007aa55bc348f883ab3ba9b
│   │   │   ā”œā”€ā”€ a8169d326a7dffbf2551ff197514410f24fe77
│   │   │   ā”œā”€ā”€ ab53a0be79b7cf6b05b146c2a0f8e0e5d2b9f3
│   │   │   ā”œā”€ā”€ b691a8a9469d143bc31be15ac7210cf5cbb2a5
│   │   │   ā”œā”€ā”€ d7dbfb228d162ab41bce6bf0b3423cd4d201bf
│   │   │   └── fed2cc0eb1a6ca420db60a2d454e9d68412c3b
│   │   ā”œā”€ā”€ c2
│   │   │   ā”œā”€ā”€ 1824f05f9fc9a3292b4ef3493a2184ced4f6b4
│   │   │   ā”œā”€ā”€ 415477844df0acc16db231457577177dadd929
│   │   │   ā”œā”€ā”€ 4eb58f85bdb399261887fa47d5125adb3c7e2d
│   │   │   ā”œā”€ā”€ 6f18872a6131b45ebff0df3278a3cf677aeb09
│   │   │   ā”œā”€ā”€ 8ec477ca5e37a34e5fabafc3f1d5d174d3cbea
│   │   │   ā”œā”€ā”€ d66a936843a7fa7d59f89bef90c3f0ed015c23
│   │   │   └── f9f64154cac9ca78d76a7970a2b68510fdd304
│   │   ā”œā”€ā”€ c3
│   │   │   ā”œā”€ā”€ 0e19f250f9e6fcf4f3a3adefa8a6cdd0969934
│   │   │   ā”œā”€ā”€ 6f2292d3e8f42e6ad38c63f566b945b7821e13
│   │   │   ā”œā”€ā”€ 9eac80e3abf5040f7c29aa71a792a5764a9d30
│   │   │   ā”œā”€ā”€ a76dca3ad370167dfa215418088079ace4b6cd
│   │   │   ā”œā”€ā”€ bdde61977ef0da855988f09afec0f2be947f12
│   │   │   ā”œā”€ā”€ ce70c4b6c70176a42bdf00e5330aca2424d812
│   │   │   └── d639bda4e696998771aaae09f0e5a5ad9943c3
│   │   ā”œā”€ā”€ c4
│   │   │   ā”œā”€ā”€ 0f88413a4f8ac4afeecc8b2db01d8b7aa4b40a
│   │   │   ā”œā”€ā”€ 25526df89efb91c8f40360e2a67790831b6a0b
│   │   │   ā”œā”€ā”€ 2901e565860b2b541bf41b909ac0cc7433f3d9
│   │   │   ā”œā”€ā”€ 3cbf6196e4f636e9b084bc6804ab822a6e1d87
│   │   │   ā”œā”€ā”€ 5d8927b3d0ad8cecd2023c08304d0c19ab5740
│   │   │   ā”œā”€ā”€ 76e42a795151fca7022a369b8d560c9b560ef7
│   │   │   ā”œā”€ā”€ 8d8f2345da24285fb6bdd254ee073376922b7b
│   │   │   ā”œā”€ā”€ 9351d1186dde3e7566487169b654469153a79a
│   │   │   ā”œā”€ā”€ bdf6f5fbbbdc741d521ab2ad06bd44b7247c28
│   │   │   ā”œā”€ā”€ cde4e793af84126e7246b21807ea6105d9bd85
│   │   │   ā”œā”€ā”€ e6b71d9a3f33d6012284eaedbcfa0261f8b3de
│   │   │   └── efa8392b37b5a1731c93b4c518327ab0ff1f1c
│   │   ā”œā”€ā”€ c5
│   │   │   ā”œā”€ā”€ 96522e632d74fdb8616e2f00c0451e16d1fd23
│   │   │   ā”œā”€ā”€ b7c17c78ee052ee867cd3160831c2ad8de5ae9
│   │   │   ā”œā”€ā”€ bb7f3491df724feacb16175bf6aa543079cfe1
│   │   │   ā”œā”€ā”€ c4add1449f6ddaa3f2ec4bee382f8994654982
│   │   │   └── f18467270bd68153dc31dc05ee1eb9958af093
│   │   ā”œā”€ā”€ c6
│   │   │   ā”œā”€ā”€ 2fa4d7db16f24813e02340b011f81f98731fdf
│   │   │   ā”œā”€ā”€ 352c1d0efcac063fd3976853de472e6768ca46
│   │   │   ā”œā”€ā”€ 38be4cb6752115014a942c6c6725f1d23b9bd2
│   │   │   ā”œā”€ā”€ 8f1cb38e7fd0ff856d16bfc5f0734d2df11332
│   │   │   ā”œā”€ā”€ a192dd7f6038f4b45f5c0c7556733e6a9cc6b9
│   │   │   ā”œā”€ā”€ acec2bab776da238b803a2df073fbda61f9b2e
│   │   │   ā”œā”€ā”€ afb1b6e223058d804b9d8965fc5ba89647ea8b
│   │   │   ā”œā”€ā”€ c59a5bc8cc4436713eaaf278c9ff3d3fe5b433
│   │   │   ā”œā”€ā”€ c7f23c2a546c3fc5a5117cc09900b03b30feda
│   │   │   └── d8cafebe43b4db615146afaa003aa5b7db36f1
│   │   ā”œā”€ā”€ c7
│   │   │   ā”œā”€ā”€ 3143d0485572236bb0b55f996ad06beb698137
│   │   │   ā”œā”€ā”€ 36018bb6f21fa2cf1cfba175e8a2a97df4695f
│   │   │   ā”œā”€ā”€ 433ae5618eb8892f0e42679c5f289848136d2f
│   │   │   ā”œā”€ā”€ 54044cf3020e20ded1f655af3cf1cd135045c0
│   │   │   ā”œā”€ā”€ 5e8162c3e7e650dd46584a8d1b6ef87c7ea7de
│   │   │   ā”œā”€ā”€ 67e36954c5dfe507cca34b39582449478be0b2
│   │   │   ā”œā”€ā”€ 6e2b128fe7291df715100aa0e413c334cb2090
│   │   │   ā”œā”€ā”€ 8a394fb2f2d0a6a775906eda1a41cedf6c5ebb
│   │   │   ā”œā”€ā”€ 923d0240cd2a0d93b8818a2b1307ef77654315
│   │   │   ā”œā”€ā”€ a3d791d251a2a8b7df8ab9d6700d763b3d06b3
│   │   │   ā”œā”€ā”€ a7e64ccf7ddf4800426506beef93b5db0a117f
│   │   │   ā”œā”€ā”€ c49b3eff6dda67bcb295183d62cb24f76a0c30
│   │   │   └── fbdeb491f98f6c097b5eff18f0996db728699d
│   │   ā”œā”€ā”€ c8
│   │   │   ā”œā”€ā”€ 7881fa2227d38fbe28d4439705f41604d7428e
│   │   │   ā”œā”€ā”€ 7c050fd53f48d89f2070b849e3ff4adced963e
│   │   │   ā”œā”€ā”€ 8465f15cb463ca1b0a217d4ada46dd1df53d4b
│   │   │   ā”œā”€ā”€ 9762d7c9893164cc729029a2aef719673b6824
│   │   │   ā”œā”€ā”€ 9bfd4a9d6391cf4bc30b1b926af0ecd4b664f5
│   │   │   ā”œā”€ā”€ ad7f25adfd73d74770e7bf49a78ad66296a9bd
│   │   │   ā”œā”€ā”€ afc4e15c87f48b1a22870d2c522c54f9ab802e
│   │   │   ā”œā”€ā”€ b54ca220bfd3036a901d73eec29564904b9268
│   │   │   ā”œā”€ā”€ c186ac2a3127eda81407da964952afffa94980
│   │   │   ā”œā”€ā”€ c7eba62914cd185cd48339ed5c31d15872735e
│   │   │   └── fe328e45cbdb3ace7ace699ac08b15dfe4d257
│   │   ā”œā”€ā”€ c9
│   │   │   ā”œā”€ā”€ 3afbaa5e11cc434cf593b29b0909bd9e12a5e7
│   │   │   ā”œā”€ā”€ 6ab3caf4fc3cc56c1d2eccf7b10a9181e2e422
│   │   │   ā”œā”€ā”€ 74b030304e1e55dfab17fa275defbbcaf57d7f
│   │   │   ā”œā”€ā”€ 84a1800f11a3b8d39892aa941bdffc036e08ab
│   │   │   ā”œā”€ā”€ d6cf052e55cc09570086ac8df8d124bcf8de1b
│   │   │   └── e5ce867c67a2773eb778ac7dc03bac53f4d843
│   │   ā”œā”€ā”€ ca
│   │   │   ā”œā”€ā”€ 267e65bb0b66a2ad931ae21d108ad7c43d7f0d
│   │   │   ā”œā”€ā”€ 45b7f5b844bb63637738624ec4631c9ca4072a
│   │   │   ā”œā”€ā”€ 552231391689b7ecdac2b5458de2632b8a10ac
│   │   │   ā”œā”€ā”€ 557181854ceaee75318e236c85aaf0686b2783
│   │   │   ā”œā”€ā”€ 887262079f0526799fce8ff26934754f4a0b24
│   │   │   ā”œā”€ā”€ 9051f995c3dab112a8a3938aefc31ede477227
│   │   │   ā”œā”€ā”€ 9e00e248e698866335a1b12d9932e893a2f7b9
│   │   │   ā”œā”€ā”€ d450c6a93ce64621dead51ed33fc0480eae768
│   │   │   ā”œā”€ā”€ deda1d070e4e824d1916d1cae8922ece881c39
│   │   │   └── fa92b51953a508460db1c07c49d0699c2e3452
│   │   ā”œā”€ā”€ cb
│   │   │   ā”œā”€ā”€ 278b820fbc1d30256b97cf622bb1b720bedce2
│   │   │   ā”œā”€ā”€ 3b36208beabb47c1f70b6cae52683b8826a126
│   │   │   ā”œā”€ā”€ 62c43435c7a48a6469f5f6a84cc51136b5154f
│   │   │   ā”œā”€ā”€ 9352a1254cce5637585e01d5ae55bd310e3cb4
│   │   │   ā”œā”€ā”€ bcfb6021e7b99eb42b159fde09133fe5014091
│   │   │   ā”œā”€ā”€ bd769942d43fef76cb5840bcd2da762a98096b
│   │   │   ā”œā”€ā”€ d503132bff536dc36bbf0fcd2ae4becb928c80
│   │   │   └── e4feb9644756fb1d9c1120fe2135a59ff4d48f
│   │   ā”œā”€ā”€ cc
│   │   │   ā”œā”€ā”€ 2045ef71d27d6fe076e56ba242e804634e9171
│   │   │   ā”œā”€ā”€ 442bed1e9803459b43661a619dcfb515b4c254
│   │   │   ā”œā”€ā”€ 60d4820289b5dd1225cce9f130d52cbac386a1
│   │   │   ā”œā”€ā”€ 852cd078a2833848cf9dbcecde3caa8653c089
│   │   │   ā”œā”€ā”€ 9a31925b49ea0c853f3038b81a9ec42cba595e
│   │   │   ā”œā”€ā”€ 9c768ce74ce525a3e6fd35780ed0c9a94e7ba8
│   │   │   ā”œā”€ā”€ aba38b697d10feae921fe826d54fe71671b0a0
│   │   │   ā”œā”€ā”€ f1b42bb99d45877a35e1929c4fd91852da3ee0
│   │   │   └── fb6eb9d1a1b0e3371715680986397ad7c48f52
│   │   ā”œā”€ā”€ cd
│   │   │   ā”œā”€ā”€ 13a33fe1c692f8eb22ffb26695853e4ef6d31a
│   │   │   ā”œā”€ā”€ 26be9ceb2fa818b59e4d61cbe095f7f4c7eab6
│   │   │   ā”œā”€ā”€ 50c85c9b976095d67f0b4e10019f3cd0ba0072
│   │   │   ā”œā”€ā”€ 5b992e1f47268dbd27cb5ed2385877005d0745
│   │   │   ā”œā”€ā”€ 62929a3eb5b64416296baa40d56bc743d3f7d6
│   │   │   ā”œā”€ā”€ 9a0e665b276f79066963a4cecdb4f162552d93
│   │   │   ā”œā”€ā”€ a5755bf244d24474d27eb91efa9118588bd90c
│   │   │   ā”œā”€ā”€ d48beaa0c7bdfa0094d31857721dfa17ecfe8a
│   │   │   └── f3bf466acf0b8f475335dd69d1c6c430876904
│   │   ā”œā”€ā”€ ce
│   │   │   ā”œā”€ā”€ 085c2e3e2464ccb9b95bc791d20dc6116da8c5
│   │   │   ā”œā”€ā”€ 5ab3c4499d1bf0e2b93876e90a91027edceb0c
│   │   │   ā”œā”€ā”€ 8706772135b1aae376bf4e50dca67b560cad8d
│   │   │   ā”œā”€ā”€ 8bb211bad2bc499e7f8b9ba2bd0696185f74cf
│   │   │   ā”œā”€ā”€ a2440736dc070e63058fd57683151d86e334dd
│   │   │   ā”œā”€ā”€ b5de889d0f024786fb500de8fd134b223bd7f3
│   │   │   ā”œā”€ā”€ b7002512eeaa663d0502ed272a285d7d2b810e
│   │   │   ā”œā”€ā”€ bab2cf226ee1061f386d7a8bfe2e6cd25910a2
│   │   │   ā”œā”€ā”€ c464d2a34ebfedc6acd099b69b544e38b791e0
│   │   │   └── fa46b6effdd0514a6af60b2e5a27b9056c2384
│   │   ā”œā”€ā”€ cf
│   │   │   ā”œā”€ā”€ 057887d5b212da59ee1c2b97992e987f6c3f9e
│   │   │   ā”œā”€ā”€ 153bf17580dbca6d944079400951e73f3bf69b
│   │   │   ā”œā”€ā”€ 4b339a416f953a656cf3e5db2e2155fd86493c
│   │   │   ā”œā”€ā”€ 597b9b8a5c1e9d428e99c56d4528ad990a496e
│   │   │   ā”œā”€ā”€ 62d70d8d2ebe74c5793e9ec1eaf43a7e6ad0fc
│   │   │   ā”œā”€ā”€ 6abe4e2d997646d5b2950ab36a0c62c3506777
│   │   │   ā”œā”€ā”€ 79d66b747fa2d94dc109893f138874ec6078b7
│   │   │   ā”œā”€ā”€ 90055c570a420b5121375214f4aa18086a10b2
│   │   │   ā”œā”€ā”€ c7b6215864690291c3083735fa7f516950c242
│   │   │   └── e2453a4189b680a936a57fad450f5f9ef2f8a5
│   │   ā”œā”€ā”€ d0
│   │   │   ā”œā”€ā”€ 29cbe3379beb1a9cdc09ca64c023003265f6c2
│   │   │   ā”œā”€ā”€ 5b103d003ee29dd79176a401069597f4f9a297
│   │   │   ā”œā”€ā”€ a1866ce6aeda43d95c4b6a5877017788948449
│   │   │   ā”œā”€ā”€ c32e83b158fd5e27a28b86943d028b5bccaa19
│   │   │   ā”œā”€ā”€ d2046b522769048331fbcbaec46b873e36e614
│   │   │   ā”œā”€ā”€ e10747afcc3906b5aef11bc06fb2b45e0db450
│   │   │   ā”œā”€ā”€ e641f8a0f5915b9b5938716d4533d76b85fedf
│   │   │   └── f4139bd70ea16afeb3250c17ea0a4e9877742a
│   │   ā”œā”€ā”€ d1
│   │   │   ā”œā”€ā”€ 07580f47e0e58dc2a3ae0273ad0e14abe158fa
│   │   │   ā”œā”€ā”€ 1dc2a4968b17f9143babc7f40410aa9880b255
│   │   │   ā”œā”€ā”€ 2702f7e5d5023e1d988bc29c33c698a19d51e2
│   │   │   ā”œā”€ā”€ 2a277acd319b9a513d4a563e6f61608368b0d3
│   │   │   ā”œā”€ā”€ 333bff9fd9663e843fd95296a6dd80e0837c30
│   │   │   ā”œā”€ā”€ 593a167f9af9cb596be96f120e0100f1f62ec4
│   │   │   ā”œā”€ā”€ 5fb5b87a7b1a94755c3c4bfd1b977841561a5d
│   │   │   ā”œā”€ā”€ 99030441674dc32f3deb78d1d5b59d1ebb411b
│   │   │   ā”œā”€ā”€ b93c3cc64c3471404b5010b8ed7a6ec90224f1
│   │   │   ā”œā”€ā”€ d0cf54d631c0a1440ae5d7ec9868dbb7d34e6a
│   │   │   ā”œā”€ā”€ ed5d5a49316d938fb790d7c22401b25b47f01e
│   │   │   └── f26b619dc0ba156231b6a73333046f94645348
│   │   ā”œā”€ā”€ d2
│   │   │   ā”œā”€ā”€ 150b979a8e34b432300d1022024dc48dfcf880
│   │   │   ā”œā”€ā”€ 232a11b5dd1496e27cc8047e6498426a88373f
│   │   │   ā”œā”€ā”€ 236ee8ec816c2ce3105004340f111ab604eda7
│   │   │   ā”œā”€ā”€ 496aedfaef66fa5ad1d1c67d5d90c93ce56a17
│   │   │   ā”œā”€ā”€ 91fe794f2a67890ad57217bfe16be36a516c96
│   │   │   ā”œā”€ā”€ ca660e6597a40fd0159bba28112aaac6afa1ed
│   │   │   └── e3e7588fe074d4b61926cb60ae8f0a3f457f47
│   │   ā”œā”€ā”€ d3
│   │   │   ā”œā”€ā”€ 18f31a62a4bed88dd8d76e24dcf1892b0a22c4
│   │   │   ā”œā”€ā”€ 2b73b32f85f06c9d8c88422a642b8b387fb0cd
│   │   │   ā”œā”€ā”€ 2e86a4b240f15fc173cd816cd648fe1aaab6be
│   │   │   ā”œā”€ā”€ 34e3878f9dabb11f9d6f74fb3949417144e556
│   │   │   ā”œā”€ā”€ 486d16f9dea08875ea918ec7d1c512057d79c0
│   │   │   ā”œā”€ā”€ 977bbab2cae36aa148c1522f06cfab41e473a2
│   │   │   ā”œā”€ā”€ be4f63d2bee09c1d07bd2c31d84abb7d88ea77
│   │   │   ā”œā”€ā”€ c410050b7c6fcf25cbc25c9b5d06fcc0bf4888
│   │   │   ā”œā”€ā”€ e1354527547a907e29c48c0549b84699e5d1eb
│   │   │   ā”œā”€ā”€ e35d358cf79adae963c620b00a26cac8e0f285
│   │   │   ā”œā”€ā”€ ef78b414b22fe9f45e2ca650891234695472aa
│   │   │   └── fa9191b8b1d50054e16663a292f794b9aab52f
│   │   ā”œā”€ā”€ d4
│   │   │   ā”œā”€ā”€ 03a7f93ff00f379c39f958d962511a8b0d571b
│   │   │   ā”œā”€ā”€ 5fbe790a99256af19d05d44e22afef38279ef8
│   │   │   ā”œā”€ā”€ bee7c941086cd8c1a7697c1694afffca639727
│   │   │   └── c871b3e8844b0b9a9108da21b5da210866e11d
│   │   ā”œā”€ā”€ d5
│   │   │   ā”œā”€ā”€ 1e769fcbcbecd3440fad8d01cf620e8fdef4c3
│   │   │   ā”œā”€ā”€ 3342461e154194fed285234fa1e3a28d4d7595
│   │   │   ā”œā”€ā”€ 4656d9828729a37df2fdfeee8ca8d14d68ac7d
│   │   │   ā”œā”€ā”€ 4683298cf3fe7ed4f0c3fb128178cf23f45fc8
│   │   │   ā”œā”€ā”€ 51f04bbb675087c340a618a61e0be587f574f8
│   │   │   ā”œā”€ā”€ 5af281338bbc7d0826bd36edebd315302b6964
│   │   │   ā”œā”€ā”€ 8e36393741c067307c10b039f34ce7fee9d8d5
│   │   │   ā”œā”€ā”€ 91ea865ac11896daf5efcad0d09eaf3e7a0b5a
│   │   │   └── f435fa855875cb5eae047903428d9a279f875a
│   │   ā”œā”€ā”€ d6
│   │   │   ā”œā”€ā”€ 1c2d597b4f0508433ef3c7b6ea57b62654f922
│   │   │   ā”œā”€ā”€ 726c094aaaa10a87f8fa0a69cd6f5b141716ef
│   │   │   ā”œā”€ā”€ 7ee41362ce4622bae472f60f1c9bb81ef7179f
│   │   │   ā”œā”€ā”€ 85ec9817771d71fa9c0ca4cc3f4b64a4d9a0de
│   │   │   ā”œā”€ā”€ beca1efad5295ba3b22c5d89074c7a3d38d353
│   │   │   └── d7d5dc73ed03f5d4939fbdf3cc1b61bb3deb97
│   │   ā”œā”€ā”€ d7
│   │   │   ā”œā”€ā”€ 1350d421090bb3d4d18fd8163b885ba9246399
│   │   │   ā”œā”€ā”€ 556892e8f6e43112851e88aeff679b8da7b752
│   │   │   ā”œā”€ā”€ af0a3d779a6444187691eab9310af4960b415d
│   │   │   ā”œā”€ā”€ bcf6b42501f8e1729b9e0dbe02690bda0ef265
│   │   │   ā”œā”€ā”€ bf167f4378e56fdd1c36b3287d7e8a7d16bcf6
│   │   │   └── c197b7a518af329cd6d9d0fee8fd7290d8a838
│   │   ā”œā”€ā”€ d8
│   │   │   ā”œā”€ā”€ 102dbc1e864be303180d0330dd92c254ef3f42
│   │   │   ā”œā”€ā”€ 3606f0b3fdc40a97e715b721ce0d1e7db9b514
│   │   │   ā”œā”€ā”€ ac074f39be13f332e07fafb96684fc2b6917b0
│   │   │   ā”œā”€ā”€ b38010ac2553a1e019f6120cc2e32f8cf149c6
│   │   │   ā”œā”€ā”€ c17caa1faab545c58130ca17ee8ffab8e46a5d
│   │   │   └── ce8ce27baf7d0d7eeba989e56fbbf9339225c8
│   │   ā”œā”€ā”€ d9
│   │   │   ā”œā”€ā”€ 00ecad086afb541d22c93192c1d61e062bb0d0
│   │   │   ā”œā”€ā”€ 24e80cb6a2c57dc2dba1461b30551ad63c2e64
│   │   │   ā”œā”€ā”€ 33be670dd1d99a3e53b132175a1c6ec41a6471
│   │   │   ā”œā”€ā”€ 765bb51f6da3149dcdce32de53f675e1764814
│   │   │   ā”œā”€ā”€ 81933c3b4bbf91d6b8ba476139233f02b1c5fd
│   │   │   ā”œā”€ā”€ 9b5a338aaa148ea6ce66ae15bc1606e354bb40
│   │   │   ā”œā”€ā”€ d9c7ae3be4096dd57100ff04e4e0c713b5863f
│   │   │   ā”œā”€ā”€ deb70be92814a06be7d9deb93da23a05fe4580
│   │   │   └── fa4befd0e3378b0299ff3c189131612793cd74
│   │   ā”œā”€ā”€ da
│   │   │   ā”œā”€ā”€ 00ed6f4bc6f50be82f5901601d4db93d9a2180
│   │   │   ā”œā”€ā”€ 0a6137a5a002c313083caaa8da01ae682e80f4
│   │   │   ā”œā”€ā”€ 136fccc0489926cbf889f2434050aa697e47d0
│   │   │   ā”œā”€ā”€ 55b8c4d9945287133bff541e15946993d5b8c8
│   │   │   ā”œā”€ā”€ 7be2a35fd2606d8abf6f98647661b695f41ec1
│   │   │   ā”œā”€ā”€ 896344b6acd3775f26e934252ad16f85cc6d7c
│   │   │   ā”œā”€ā”€ 979148dde2c77de63ea79876d339f803e8a8aa
│   │   │   ā”œā”€ā”€ bcade1d7d8dd8512c41b6e8b4a5a3b0aa031fa
│   │   │   ā”œā”€ā”€ bda37d759cef3c5e242a6cd9ac594c0f8e15b6
│   │   │   └── cdee64ae85851ee15e3bbebe1ea48f6d8b5f6a
│   │   ā”œā”€ā”€ db
│   │   │   ā”œā”€ā”€ 0f20dc005df730128021ad24a2629d4ab9545f
│   │   │   ā”œā”€ā”€ 19638b4a402660e9f30f62d32bc3318b16076f
│   │   │   ā”œā”€ā”€ 5775e586edd87d7c65e46217d9cd63d6976fee
│   │   │   ā”œā”€ā”€ 7dd8b46b5f6905948092db921e5e9182d180a5
│   │   │   ā”œā”€ā”€ 8aade5fe63c120b51dcb314fdc11a349784e93
│   │   │   ā”œā”€ā”€ 99d7c719814ffd4923c887cfd64de4a132fd7c
│   │   │   ā”œā”€ā”€ aac5f99cb5eaf011692c3616ad62e6c9d5b9d7
│   │   │   └── ebd1dede4e318636e9431b300f30e0ac3eb9a2
│   │   ā”œā”€ā”€ dc
│   │   │   ā”œā”€ā”€ 2e8aace736e65e54a7d2961736120bac6c7b82
│   │   │   ā”œā”€ā”€ 3ad43d0f6c6e144d23c0c89546e13f26d72452
│   │   │   ā”œā”€ā”€ 43224123689d9ffb24c74e5d35c6041532ccbc
│   │   │   ā”œā”€ā”€ 64fe99a7d9bde003016f70bff6339a34e4f3bf
│   │   │   ā”œā”€ā”€ 67b4a80ff681bdeb96c905670e092a695e2dae
│   │   │   ā”œā”€ā”€ 9c72df7650581375318998dcd8869131dca6d2
│   │   │   ā”œā”€ā”€ d9f51b58d792a1e806c8f569c7e297f64605ac
│   │   │   ā”œā”€ā”€ ed8f3c57037778b094ca9aad115e5660347904
│   │   │   ā”œā”€ā”€ f41367e203836a4753c2299da23d30cd70fcbc
│   │   │   └── fecb36a7798dbf66981fed7593c5ae1aeab59b
│   │   ā”œā”€ā”€ dd
│   │   │   ā”œā”€ā”€ 00314cab0f1ff5bea59e3e4293e3f8ac831887
│   │   │   ā”œā”€ā”€ 2164eb9d2830de4a8aeaf74f8cc4fbc51449e0
│   │   │   ā”œā”€ā”€ 2b863aebeb05ea3ff126becac545caab774ee6
│   │   │   ā”œā”€ā”€ 36f8a00fe45e4623d064a0f9076ed427875a11
│   │   │   ā”œā”€ā”€ 4b1b3251eaf30e966e5c432d20f1aa7600fbf6
│   │   │   ā”œā”€ā”€ 611665b583dde8da62b2c28fff176c200c6e6d
│   │   │   ā”œā”€ā”€ 69df646515ad14cd1c3eb6fc6b50fd7232880b
│   │   │   ā”œā”€ā”€ b315c8cbde9dfb9a6e836f1fa6306de76df846
│   │   │   ā”œā”€ā”€ b32267ec7545d09b49595cf3978be8aff6a397
│   │   │   └── b53503e3c2cbf5b7d19376d2d5144f9c50e43e
│   │   ā”œā”€ā”€ de
│   │   │   ā”œā”€ā”€ 03f638ead57abb90831f6b8d0a1aa7a2578210
│   │   │   ā”œā”€ā”€ 166c8a755eff3946a70c9adc561a2d9e1e6da1
│   │   │   ā”œā”€ā”€ 2e5dbd5126eeabb8f4c58730bec1fa207e7958
│   │   │   ā”œā”€ā”€ 4a0ad49b557b917c3e4bb66959f6927b3b2ca0
│   │   │   ā”œā”€ā”€ 5a0a691afa807912100d725523e3a4b4ff6cf8
│   │   │   ā”œā”€ā”€ 76c15bd81cb0a0607729b843031336b5a19a7a
│   │   │   ā”œā”€ā”€ d907ead0522a901e21fc1d26af899abc324eab
│   │   │   └── ff707ff924e0e7779aec63b1c33b6bad1f4200
│   │   ā”œā”€ā”€ df
│   │   │   ā”œā”€ā”€ 2fe11c793b8b3fdf939c7817827eb4a5a0023c
│   │   │   ā”œā”€ā”€ 77d29ca24ed0c96f050fbfc934aba6d76e4ed9
│   │   │   ā”œā”€ā”€ 7e66ef475134790fc933f5e94899d5c869ded1
│   │   │   ā”œā”€ā”€ b9d468a501759299d4ba4dc27c31b8c7f8cf7b
│   │   │   ā”œā”€ā”€ d7fe7c644e6dfbcdbe4e4ee41893739dc312a6
│   │   │   └── eb70e2b75627df53f3916bb570a774cb992973
│   │   ā”œā”€ā”€ e0
│   │   │   ā”œā”€ā”€ 0f9c63cfe690232dbc4198105cd8a3c622edf6
│   │   │   ā”œā”€ā”€ 5c1700915bd51b00b72bb13d3632f4d8f24e8d
│   │   │   ā”œā”€ā”€ 5ef59004659b512b4b1f1e5a3a387ae64fd9f2
│   │   │   ā”œā”€ā”€ 921e78d43856268cfe1d3027a297abf59ee23d
│   │   │   ā”œā”€ā”€ ab737e209756d0b7814a4984e0cbbc971a6e57
│   │   │   ā”œā”€ā”€ d57f44601031fcf15022831cbfc0e36c686c54
│   │   │   ā”œā”€ā”€ dd4c59711ca76cb85a55095959f080546a1733
│   │   │   ā”œā”€ā”€ dfb77348c9c83ccf169a79d347f7e049f33c29
│   │   │   └── f25c4a7ef42bebc994801332ae210c6fb9f582
│   │   ā”œā”€ā”€ e1
│   │   │   ā”œā”€ā”€ 297490b38c810a52a47edea863c94cfabd897e
│   │   │   ā”œā”€ā”€ 2f6731e187f9461c6f31c0a9144664b213cae8
│   │   │   ā”œā”€ā”€ 73ca599cfb06a91dbac625a2e31a98b05c5468
│   │   │   ā”œā”€ā”€ 74fd2606e7fbb775f287e704009977f409ffc0
│   │   │   ā”œā”€ā”€ 987e334c9356fc11e98561a6dcb4765b77c3b0
│   │   │   ā”œā”€ā”€ aa96b2b1be37ade926fc2c23ed8f86f5e84a83
│   │   │   ā”œā”€ā”€ c281eebbe1db02828848dfdc0bbbfc29ec3bb9
│   │   │   └── db0c21256f096497073a72bd427c60f0cd6dec
│   │   ā”œā”€ā”€ e2
│   │   │   ā”œā”€ā”€ 4cd7b2fbf9832b8bf4b09b3f4137d46ead7e82
│   │   │   ā”œā”€ā”€ 5e872a1b8675a46635649c8c151fc77f6eb8f9
│   │   │   ā”œā”€ā”€ 8ac7889414e110392e9c377880cd4f00bbfc93
│   │   │   ā”œā”€ā”€ 942d73e1b61e57ad84bb05ecf2dc7e6b9c137f
│   │   │   ā”œā”€ā”€ 95097357054450a0cb4d152e90598d1d84d7bc
│   │   │   ā”œā”€ā”€ 9a32dc6f7ac7d4b66201af93d6114b82e25cd1
│   │   │   └── cf73a8db43279296768689770e7897b070a380
│   │   ā”œā”€ā”€ e3
│   │   │   ā”œā”€ā”€ 20dfa43236ea4f847af4339fe84448a7de81ed
│   │   │   ā”œā”€ā”€ 26137448fc956f312c8cde0adeb50c1559d2ba
│   │   │   ā”œā”€ā”€ 41efe3d565271bd85bdb6905932a6cb733eba6
│   │   │   ā”œā”€ā”€ 820c5a302328643264e89a842bd46d09ce0a22
│   │   │   ā”œā”€ā”€ b17584f38c61b4f3a0445b181f671e4426d9db
│   │   │   ā”œā”€ā”€ b9a584eb704c3cbd810b899474896387b82835
│   │   │   ā”œā”€ā”€ bb9912d51147ee9ad9f36608ef73d00b373b92
│   │   │   └── c02dab95a1b6374a3b4cd3ad790367c766a26e
│   │   ā”œā”€ā”€ e4
│   │   │   ā”œā”€ā”€ 3053a07283b6e96771e794dacd59440489904b
│   │   │   ā”œā”€ā”€ 3aaaa071a5c7eaffa8d8fb6926ded649d6cbd6
│   │   │   ā”œā”€ā”€ 441293032554979d73c0d5be72dd594c5520f6
│   │   │   ā”œā”€ā”€ 44451df90bc33b034d74c9c98baca541828fe5
│   │   │   ā”œā”€ā”€ d4ba6d2d34eb0ba782dac265b5a8c2136262c1
│   │   │   └── e31aa8e2e58a73dda96e0ca24743f58dd03e92
│   │   ā”œā”€ā”€ e5
│   │   │   ā”œā”€ā”€ 0518fede473743e6ed0cfc2a14f82fd7163d97
│   │   │   ā”œā”€ā”€ 0b1d357eccc7129edbca8f2d4cc2078d9725e0
│   │   │   ā”œā”€ā”€ 0bf1ce7a5e51e8c2b09efab4b4e0b4f17cded9
│   │   │   ā”œā”€ā”€ 27c676cbc702cfed63ed18628cc1e25a0933ee
│   │   │   ā”œā”€ā”€ 3ded8376508febb0afe1f9310e9d179d8a6d6f
│   │   │   ā”œā”€ā”€ 3e42e9991a4cccd87f48eb70f3ec2f9a5b6540
│   │   │   ā”œā”€ā”€ 80e86a69901556fa94137d4f843cd04b4000b0
│   │   │   ā”œā”€ā”€ 94023559b8316ff752929d255642b9f4795706
│   │   │   ā”œā”€ā”€ 9690f968734c314ed1b7c499d75767cce529c5
│   │   │   ā”œā”€ā”€ c21947b7ebdb0a385d191dc3047e66e7a0fa96
│   │   │   ā”œā”€ā”€ ea3ef87e857495c0f5edfb34dda289ef10c661
│   │   │   └── f518a20eea75928dc08db7d4edf4d00fb2f1d7
│   │   ā”œā”€ā”€ e6
│   │   │   ā”œā”€ā”€ 3153f371a0ca8a7878d04e8533375cb95a87d6
│   │   │   ā”œā”€ā”€ 593a937ddf2f0c99503f714b2f21dce695f49e
│   │   │   ā”œā”€ā”€ 635db3bc1451379d4b26a3242a736d41573ae8
│   │   │   ā”œā”€ā”€ 81f8c516620467e2f32ee43334e7a6646a3316
│   │   │   ā”œā”€ā”€ 8265d236d6135110a612851ef0183df000f413
│   │   │   ā”œā”€ā”€ 82d31e641183157dd3506bca1ccde4bfc34526
│   │   │   ā”œā”€ā”€ 90e203065e3b966a70626a61ee701488a4e9bb
│   │   │   ā”œā”€ā”€ 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│   │   │   └── ac7767ccd5ce2e19a2b8d552311d79f5113eec
│   │   ā”œā”€ā”€ e7
│   │   │   ā”œā”€ā”€ 03c2e67874188c9405afafef0d7628cef5b75d
│   │   │   ā”œā”€ā”€ 0d4fc69409190937ebb4d40f062af9206399e8
│   │   │   ā”œā”€ā”€ 50ea90fd5ea692546ebbdb28bc4f97df602946
│   │   │   ā”œā”€ā”€ 56d8778e829c9680a535afb762b991d0cd9cf1
│   │   │   ā”œā”€ā”€ 75a5083c7d404ba7ea1c71f1236c8bb1d0c9e7
│   │   │   ā”œā”€ā”€ 78bff312866acfa2f6a55ae4b4308e8f21cc64
│   │   │   └── 8a2252552bf6b8a8d832614f37f47741e0c8ec
│   │   ā”œā”€ā”€ e8
│   │   │   ā”œā”€ā”€ 24d1ab219e88642cfa57d09e3f19950652e2a2
│   │   │   ā”œā”€ā”€ 34b984bce82dfa30fdf18c1033e1d1648c7378
│   │   │   ā”œā”€ā”€ 48ee0a053b6d03a79a5bc52b5d8ecb0c3cf3e1
│   │   │   ā”œā”€ā”€ 7959d02d008fec2cf04deb3855218e47224d00
│   │   │   └── a344690c86db751c4ce440cdb9d293de6fc033
│   │   ā”œā”€ā”€ e9
│   │   │   ā”œā”€ā”€ 091b5ec8c33f5028c87ec97a5ab2a50b06f950
│   │   │   ā”œā”€ā”€ 235f1d247f7dff5438a3e74cc61dd4c60b7def
│   │   │   ā”œā”€ā”€ 46793ad32ab746d46a5567064f18474f7d07a3
│   │   │   ā”œā”€ā”€ 583c28bc0bbc39d8eebf8af2f9abdd4ba0086f
│   │   │   ā”œā”€ā”€ 8b15bd945f971be6639aa40ff22561200c63bf
│   │   │   ā”œā”€ā”€ bacae2d1927b23f4de0a6fd0bc34bab2677b35
│   │   │   ā”œā”€ā”€ c7ec70a49f7b0004a9fd57b71542f8e2347450
│   │   │   └── fa44a41cf033a30628d49dcd614e0498640691
│   │   ā”œā”€ā”€ ea
│   │   │   ā”œā”€ā”€ 2f4d3e1b5ecff610291b42331ad407eb3ab16c
│   │   │   ā”œā”€ā”€ 41523d4501b2f6abafa7bb372257320eab411c
│   │   │   ā”œā”€ā”€ 706625875f0d10ae3f2c61c3d84ad6b439b442
│   │   │   ā”œā”€ā”€ 816d5ea191c7402997f2c0bf5519872d6e7679
│   │   │   ā”œā”€ā”€ 8b0039eb649308156d14d85b2fb618e980b681
│   │   │   ā”œā”€ā”€ 9a254c2d5a1950186e6b7ac7e07a75d6a76e63
│   │   │   ā”œā”€ā”€ 9c18428a14505a203657abdef0f2fdbc378425
│   │   │   ā”œā”€ā”€ a2f02e972d6a372c49b9b25e12365436e1fe4f
│   │   │   ā”œā”€ā”€ a8be3d5fb8d8f0f68df07c84f92ea6c60da01a
│   │   │   ā”œā”€ā”€ a981f298d7c25ba8c8061ee53f61ca4b2b62a2
│   │   │   ā”œā”€ā”€ d2bd0a359835307cf04d1b3a0f8d0c15992ed4
│   │   │   └── ee55192c67dd7678558b22359c9fe8beeccec9
│   │   ā”œā”€ā”€ eb
│   │   │   ā”œā”€ā”€ 03369dca589c079464c512b4a793d0489fb225
│   │   │   ā”œā”€ā”€ 213b2b8788bd6873f227968c1c06b2e6986bc4
│   │   │   ā”œā”€ā”€ adae4d25391e427ca2a94e70a218c8f69186ca
│   │   │   └── cef8eb529afca7be22c7b02a68cfecb53b4b4a
│   │   ā”œā”€ā”€ ec
│   │   │   ā”œā”€ā”€ 3c5d9ef08005c23a2b157e499bccacd033e0ec
│   │   │   ā”œā”€ā”€ 3daa0bb25ae9085f775c792a7f6c25865e0018
│   │   │   ā”œā”€ā”€ 43ff04ac51885017b1f27e4f0faf08e7ee3a81
│   │   │   ā”œā”€ā”€ 68fbb548de971da494701dfb157077996f9db8
│   │   │   ā”œā”€ā”€ 6f26a972b096708b6540043e42baa930cef290
│   │   │   ā”œā”€ā”€ a23f271c91826b204a22622b167b4e70247d21
│   │   │   ā”œā”€ā”€ c03f1ebb9118c6f944281ee7c6a4da972344f8
│   │   │   ā”œā”€ā”€ ce447e6fb5dc109ef524bc6f41afaf575dd691
│   │   │   └── d6b703e76412410222bc3f15c3b1f75f3fb7e0
│   │   ā”œā”€ā”€ ed
│   │   │   ā”œā”€ā”€ 10b25af2cf13e92b23242ed0d9d9ef73e522d4
│   │   │   ā”œā”€ā”€ 12dc826e967a5fab790463edfd676c2b6c3223
│   │   │   ā”œā”€ā”€ 2a3fad31a1b2947b88307500f50e2bbf749de8
│   │   │   ā”œā”€ā”€ 5f0cd22934925dcd53c0c5b454c9b49bf2538c
│   │   │   ā”œā”€ā”€ 6abf0305a1aea2e76f8881338f666a23d602ff
│   │   │   ā”œā”€ā”€ 79366c6b34a62bc37dc41e4ba396a894a55740
│   │   │   ā”œā”€ā”€ 9a5d22222202074dd3fa6070075fa3dbec18df
│   │   │   ā”œā”€ā”€ b61e1c2288b39bb97a77469d4a85fc44f18ac5
│   │   │   ā”œā”€ā”€ ba3bfd3f006eb378ed06d94205b0bc6495a0dc
│   │   │   └── bfe31c62561fcf7a4b04dd1fe27be4444085a2
│   │   ā”œā”€ā”€ ee
│   │   │   ā”œā”€ā”€ 005f799763595b1ce664abe4309bd3c692de63
│   │   │   ā”œā”€ā”€ 03f4fc9383774de2a9847bbc66e350a098796c
│   │   │   ā”œā”€ā”€ 08a29c56c6a5b18d7721f7f427d9249e60698b
│   │   │   ā”œā”€ā”€ 7675b4c253a5ad30ee595550c4162c01302b60
│   │   │   ā”œā”€ā”€ 76e497a8978956a3101f7f22e5711c448bad79
│   │   │   ā”œā”€ā”€ a3750ecce9e073774cbab18f199011aebd900e
│   │   │   ā”œā”€ā”€ a443911eeb211d04cff0039b3d5919fc8c445a
│   │   │   └── e2ff782ec6a6a3dc8edee26b389fd817cb46c3
│   │   ā”œā”€ā”€ ef
│   │   │   ā”œā”€ā”€ 5d1e958eda2fde1c45feb0ec1f1c85484bb209
│   │   │   ā”œā”€ā”€ 6e14466dcbc558890bffc059ccbe6891d6f4e8
│   │   │   ā”œā”€ā”€ 749366634fee16d2a0df2f121230cecb8312cc
│   │   │   ā”œā”€ā”€ 9abcff8dbeffae3cf6fe28a90c92a45b34694d
│   │   │   ā”œā”€ā”€ b288e029a34ef6661225b501beade8301e8047
│   │   │   └── b55c4c6023c608fd5a2220a79d1dc881e404ce
│   │   ā”œā”€ā”€ f0
│   │   │   ā”œā”€ā”€ 0b9a849e272aa6146f7bca22904613f69cf198
│   │   │   ā”œā”€ā”€ 240b54476fc4b5aae1efe7d21f58e93d531ab7
│   │   │   ā”œā”€ā”€ 2c5fd4e6c43ce27500a1d8b328e0bfa9d12b8b
│   │   │   ā”œā”€ā”€ 35eb8f3eba9a984f18c431112b9e2543fe9aba
│   │   │   ā”œā”€ā”€ 4e56c1442d227a64d725afa539786474739af5
│   │   │   ā”œā”€ā”€ 8d2358be8bd86895e9d79f9de006aa233fec81
│   │   │   └── ce093d18d6c530cb83959e5156d0160d2ad83f
│   │   ā”œā”€ā”€ f1
│   │   │   ā”œā”€ā”€ 36716ee36d75cf696c2c83653bc67fbea836bc
│   │   │   ā”œā”€ā”€ 7f8f3c96a874fcd34002378ca32f7c19fba865
│   │   │   ā”œā”€ā”€ c3a58ae375e9b23c564cd5b6f7f5b06ece9a1d
│   │   │   ā”œā”€ā”€ e18cb9d17ab26d564ae47fefbf4239150f9920
│   │   │   ā”œā”€ā”€ e2ebd7a1fa82e4d0947597e18f274bcb1f0818
│   │   │   ā”œā”€ā”€ e8820ffa3b2f43929f23146829b570d944b10d
│   │   │   └── ffcfa4b97005a3957701a579172fa63505c8c5
│   │   ā”œā”€ā”€ f2
│   │   │   ā”œā”€ā”€ 21d3a442475203a72300a58dd7964f7ae0669b
│   │   │   ā”œā”€ā”€ bb738a4d783e85fee814f1532773af456be89b
│   │   │   └── c2d228e34ee1b33290e30a47404553415bbb8f
│   │   ā”œā”€ā”€ f3
│   │   │   ā”œā”€ā”€ 19c9c4919b3c3ebe8ce61175547719538a003a
│   │   │   ā”œā”€ā”€ 5b2993c3a0079920353d534b5b4090ce0c790e
│   │   │   ā”œā”€ā”€ d4dc6d0bd81d9e2d7795094cf96ea520d53757
│   │   │   └── ec77975d64c7c5ee4ccfe47cc64922dbb6d3a9
│   │   ā”œā”€ā”€ f4
│   │   │   ā”œā”€ā”€ 03f619f96b5db2f4336c47c195f947e5a7201e
│   │   │   ā”œā”€ā”€ 71466ece297eb1d5ef807d092c3027c0618794
│   │   │   ā”œā”€ā”€ 8de3c8c9ff3f50170c76d5f1b6e90b23765ffe
│   │   │   ā”œā”€ā”€ 9e20de875be01ecee9d448382d11284da524c6
│   │   │   ā”œā”€ā”€ bdd0bb994ad1660f70d7918eb5a1300889e759
│   │   │   ā”œā”€ā”€ d386a4f9fd4e092f88dd2a0ac14feb2cf6a65b
│   │   │   ā”œā”€ā”€ ec35503c2b103c952da0289c4e5ba70bd770a5
│   │   │   └── f3470d95ffa03f70cc9a62dafc14103953e4e5
│   │   ā”œā”€ā”€ f5
│   │   │   ā”œā”€ā”€ 0212b914fdd9b5906b57c5a39a4fa0a17d0b71
│   │   │   ā”œā”€ā”€ 1e829483f2c87d2ce581dded83919230b216c4
│   │   │   ā”œā”€ā”€ 2d6d04b8405df5405e118509cc051839d85add
│   │   │   ā”œā”€ā”€ 81082b9e3964f36a2d7cf2ab481cd7122c3f1e
│   │   │   ā”œā”€ā”€ 864c628a3533d883851d377351f9d63c5266fb
│   │   │   ā”œā”€ā”€ b3f37c85d5b04858a29707fe7ec9d5297a2772
│   │   │   └── e1ef95330c2ba810b4f0b2289bfcaa65c6a423
│   │   ā”œā”€ā”€ f6
│   │   │   ā”œā”€ā”€ 0d5e9605c7cfff89940366f38cb52fa511be13
│   │   │   ā”œā”€ā”€ 2d3dfdf469a3a2f665b5fda0f247e67294ed1a
│   │   │   ā”œā”€ā”€ 31c06bb2c82e9be7a976598ae5dcf724e67141
│   │   │   ā”œā”€ā”€ 35a2c1f7d68b23ff4e9d273e8547f73e1ca966
│   │   │   ā”œā”€ā”€ 539b99c2a9bbfad6284ec8bfd0ffc8bfc2099b
│   │   │   ā”œā”€ā”€ 7501c19c189dc3413867d621e0daf2b702cfbb
│   │   │   ā”œā”€ā”€ 7c5703e80e7f771639110f63904b643b4ac5c0
│   │   │   ā”œā”€ā”€ 8036a95dca7667bd1486030a34f5cc823969fc
│   │   │   ā”œā”€ā”€ 84cd287b816dfcbd9f1c684574f711edc26399
│   │   │   ā”œā”€ā”€ 9b9068c2c6368df4f76d83cbb65af080a1eb88
│   │   │   ā”œā”€ā”€ c01cb4410d90b86b4119346d39cdf1d4374c3c
│   │   │   ā”œā”€ā”€ dda6957863a03963d1279fd00289cb4620f5a1
│   │   │   └── e9dbb4baf653d50ec3bf9eac47d48646546b5c
│   │   ā”œā”€ā”€ f7
│   │   │   ā”œā”€ā”€ 34cc089c44345a2d1b5b042cb70d312289fc6e
│   │   │   ā”œā”€ā”€ 4ae762919c1f6a0448da50ba929a6b74cf7b28
│   │   │   ā”œā”€ā”€ 516900f0bd3bcab02fa594bd69c5eab7210870
│   │   │   ā”œā”€ā”€ 57dea51ba742a05fe11ab9a46d46e62f7fcb6d
│   │   │   ā”œā”€ā”€ 5fe45a13257475d6c46274d77d9858932b11e1
│   │   │   ā”œā”€ā”€ 6dc6dcb27f09ce6afa5a1f276bcf8f5af0bbd2
│   │   │   ā”œā”€ā”€ a95810d3337bca520af45aca21506de4eb69e7
│   │   │   └── f3321bd1fb84eedcbf024334999726f6319452
│   │   ā”œā”€ā”€ f8
│   │   │   ā”œā”€ā”€ 41c80bfd43035646222ce1d57ca7f5f5f9fe0a
│   │   │   ā”œā”€ā”€ 5ce9187348b36d09f3f0d99f7848ef7f34a1ee
│   │   │   ā”œā”€ā”€ 786dab7b63862bb6f3638c6c3c568e007fb62d
│   │   │   ā”œā”€ā”€ 911259bbf38ba2ef94ae3565d47d1c81dd8706
│   │   │   ā”œā”€ā”€ 9e7f7e96f05cc52ad502a6aa71aed0d4f804d6
│   │   │   ā”œā”€ā”€ e8ee669c34ba37aba14e156ada6785943def73
│   │   │   └── f048b6b991521860d855a3c54e1121fa56d39a
│   │   ā”œā”€ā”€ f9
│   │   │   ā”œā”€ā”€ 11dc4215a1fdc4e0ed0dfb5fa03415b3221f0c
│   │   │   ā”œā”€ā”€ 194012d833a774f1021f90abf406d1c8bb1675
│   │   │   ā”œā”€ā”€ 25bbb71258c592b7aece5359af2c795bf68db9
│   │   │   ā”œā”€ā”€ 3aff2940fbb18367718449e365c2293188833b
│   │   │   ā”œā”€ā”€ 3ebdb877460ba40b4a32b604a965833d2f7f0f
│   │   │   ā”œā”€ā”€ 4ea7c6bc8964bf151335ec24e7ee8ded47d92e
│   │   │   ā”œā”€ā”€ 59b0daf29adcdbcd196abd618e721a4b840765
│   │   │   ā”œā”€ā”€ c64fae47d6cc836476462fe5096fac3c2cff2d
│   │   │   ā”œā”€ā”€ dd46a1d8903928d2b4d8a4db0cb49315e4d596
│   │   │   └── e6d46349c8d7fd29bc74d44805f7902ca4924d
│   │   ā”œā”€ā”€ fa
│   │   │   ā”œā”€ā”€ 069dd265b5c40fcc9f89f5a5c95d68a59381f3
│   │   │   ā”œā”€ā”€ 22675206136c15eea069099825eb72fc00c814
│   │   │   ā”œā”€ā”€ 6803952379d6eec5a88c7e1d8df8bde8505c67
│   │   │   ā”œā”€ā”€ 8f2444047dcacbb12c2cbc976f3e7420a2d086
│   │   │   ā”œā”€ā”€ cc2bc469c7b7fa5e191777dd0e224a6e8c1a0c
│   │   │   ā”œā”€ā”€ dcdb2395287727b363b6f1071eba8c404d1141
│   │   │   ā”œā”€ā”€ e7860ab6e619b723eee0bdfdbb2f35ed9490df
│   │   │   ā”œā”€ā”€ f7d8a8342402c96d7ec59afbe08aa8673354e7
│   │   │   └── fe0cc66db711fcca55216a1c238ab051310459
│   │   ā”œā”€ā”€ fb
│   │   │   ā”œā”€ā”€ 3ab3b74d78fc038ba62e986a3d6614fe8135d1
│   │   │   ā”œā”€ā”€ 3c14819242ae376ba30805314541d4c2c262cd
│   │   │   ā”œā”€ā”€ 4c48c68775773524aeb2972ce2ae0746442aee
│   │   │   ā”œā”€ā”€ 6409c67eb728c7fc50bd406ba936606b54e5d1
│   │   │   ā”œā”€ā”€ b988d6629ade4d77aed80eaaf4466a6b28603d
│   │   │   └── ce8f1a0d5bda41d4e4dbf5f2f04eb109caa4c6
│   │   ā”œā”€ā”€ fc
│   │   │   ā”œā”€ā”€ 130066c87ac306bcb30fd5b10bb2bdc5aacc8c
│   │   │   ā”œā”€ā”€ 2006b9bc9ecdf2ddf8ef4e430add599e6f1923
│   │   │   ā”œā”€ā”€ 47c0aa27db8a0c672edd72278a7b5ee60de8c0
│   │   │   ā”œā”€ā”€ 720e8d2098d5be101db19478560eb3b27c6b3c
│   │   │   └── 858e633359bff293c98ef6a7009183195ad473
│   │   ā”œā”€ā”€ fd
│   │   │   ā”œā”€ā”€ 09553dc6f40421bbcc613465dc96cd1979f6b1
│   │   │   ā”œā”€ā”€ 7e4ea3dffc136a2401246636ed5e529338b5f4
│   │   │   ā”œā”€ā”€ 7f9cf771c7a33b3f742e4b0ad7d1099fb349ce
│   │   │   ā”œā”€ā”€ 8653f891223fab655113ba7b44a580cff0f418
│   │   │   ā”œā”€ā”€ a41164c9785302d069e2fa699aa537910bda8b
│   │   │   └── a7d6efe2f617873cb9893754be43c22c6186cc
│   │   ā”œā”€ā”€ fe
│   │   │   ā”œā”€ā”€ 296ac782e428a4d60130c6d40f9f9356603d47
│   │   │   ā”œā”€ā”€ 88e1a25f077d00e6f003374085d3a1dcc32d74
│   │   │   ā”œā”€ā”€ aac810900b2217e00d5fc7c777831fe3eb368c
│   │   │   ā”œā”€ā”€ c7e1b2ba1938eab18c1e6c3c3d7d1cf65e1a50
│   │   │   ā”œā”€ā”€ dbf804e4541b89d628027a55b64b55e2028595
│   │   │   ā”œā”€ā”€ e5abc25dd0bb1995537749aee6dfc3940c4130
│   │   │   └── ec5dd029de802d3c20d17cbac917dc7f02e274
│   │   ā”œā”€ā”€ ff
│   │   │   ā”œā”€ā”€ 0e75d057e5be973d0ee42968137f58833b87a9
│   │   │   ā”œā”€ā”€ 137fabaa44df3944c10874579b69c352ff7373
│   │   │   ā”œā”€ā”€ 4c198a77d4d081c2f02bae6b978a19a1ac5873
│   │   │   ā”œā”€ā”€ 6a7e7a579ca558a2f62dd15a72ce71b0cf6cdc
│   │   │   ā”œā”€ā”€ 78820e636e7c6dab939e161a5a1a6ee3e52c81
│   │   │   ā”œā”€ā”€ 7c31c4e0dbf43c9d0b875e256de10bf668bad5
│   │   │   ā”œā”€ā”€ a3ce4bcd088544b82f24e995e5eae80db3e0a4
│   │   │   ā”œā”€ā”€ c64f330518305bc0dafb18c9dc7ec8888d9089
│   │   │   ā”œā”€ā”€ f24732283b888617978a1419fb398082b8b631
│   │   │   └── f8b1c3b846b7692b9595b88d29411891d815f1
│   │   ā”œā”€ā”€ info
│   │   └── pack
│   └── refs
│       ā”œā”€ā”€ heads
│       │   └── main
│       ā”œā”€ā”€ remotes
│       │   └── origin
│       │       └── main
│       └── tags
ā”œā”€ā”€ .github
│   └── workflows
│       ā”œā”€ā”€ build-and-deploy.yml
│       ā”œā”€ā”€ ci.yml
│       └── deploy.yml
ā”œā”€ā”€ .gitignore
ā”œā”€ā”€ .nojekyll
ā”œā”€ā”€ .playwright-mcp
│   ā”œā”€ā”€ after-scroll.png
│   ā”œā”€ā”€ autonomous-systems-card-closed.png
│   ā”œā”€ā”€ autonomous-systems-card-current.png
│   ā”œā”€ā”€ autonomous-systems-card-expanded.png
│   ā”œā”€ā”€ autonomous-systems-card-fixed.png
│   ā”œā”€ā”€ autonomous-systems-card-visible.png
│   ā”œā”€ā”€ before-click-desktop.png
│   ā”œā”€ā”€ broken-cards-layout.png
│   ā”œā”€ā”€ cards-after-color-updates.png
│   ā”œā”€ā”€ cards-before-standardization.png
│   ā”œā”€ā”€ current-broken-layout.png
│   ā”œā”€ā”€ current-button-state.png
│   ā”œā”€ā”€ current-homepage-full.png
│   ā”œā”€ā”€ current-homepage.png
│   ā”œā”€ā”€ current-neural-banner-state.png
│   ā”œā”€ā”€ current-site-screenshot.png
│   ā”œā”€ā”€ discovery-section-final.png
│   ā”œā”€ā”€ discovery-section.png
│   ā”œā”€ā”€ expanded-enterprise-card.png
│   ā”œā”€ā”€ expanded-startup-card.png
│   ā”œā”€ā”€ expanded-startup-modal.png
│   ā”œā”€ā”€ final-animation-test.png
│   ā”œā”€ā”€ final-layout-fixed.png
│   ā”œā”€ā”€ final-service-visuals-fixed.png
│   ā”œā”€ā”€ final-services-state.png
│   ā”œā”€ā”€ final-standardized-cards.png
│   ā”œā”€ā”€ fixed-cards-layout.png
│   ā”œā”€ā”€ fixed-service-visuals.png
│   ā”œā”€ā”€ galaxy-animation-positioning.png
│   ā”œā”€ā”€ galaxy-enhancement-complete.png
│   ā”œā”€ā”€ homepage-after-fixes.png
│   ā”œā”€ā”€ homepage-card-layout-verification.png
│   ā”œā”€ā”€ homepage-initial-state.png
│   ā”œā”€ā”€ homepage-proven-paths-issue.png
│   ā”œā”€ā”€ homepage-top-section.png
│   ā”œā”€ā”€ initial-page.png
│   ā”œā”€ā”€ initial-state.png
│   ā”œā”€ā”€ layout-after-fix.png
│   ā”œā”€ā”€ layout-before-fix.png
│   ā”œā”€ā”€ layout-fixed.png
│   ā”œā”€ā”€ mobile-article-cards-final.png
│   ā”œā”€ā”€ mobile-article-cards-fixed-height.png
│   ā”œā”€ā”€ mobile-article-cards-improved.png
│   ā”œā”€ā”€ mobile-article-cards-test.png
│   ā”œā”€ā”€ mobile-article-cards-updated.png
│   ā”œā”€ā”€ mobile-date-inline-fix.png
│   ā”œā”€ā”€ mobile-modal-test.png
│   ā”œā”€ā”€ modal-autonomous-systems-test.png
│   ā”œā”€ā”€ modal-with-fixed-image.png
│   ā”œā”€ā”€ neural-banner-fixed.png
│   ā”œā”€ā”€ neural-network-after-zoom-reduction.png
│   ā”œā”€ā”€ neural-network-before-scroll.png
│   ā”œā”€ā”€ page-2025-08-28T19-22-59-078Z.png
│   ā”œā”€ā”€ page-2025-08-28T19-25-26-866Z.png
│   ā”œā”€ā”€ page-2025-08-28T19-25-39-839Z.png
│   ā”œā”€ā”€ page-2025-08-28T19-25-53-932Z.png
│   ā”œā”€ā”€ page-2025-08-28T19-27-31-502Z.png
│   ā”œā”€ā”€ page-2025-08-28T20-27-12-580Z.png
│   ā”œā”€ā”€ products-page-toc-after.png
│   ā”œā”€ā”€ products-page-toc-before.png
│   ā”œā”€ā”€ products-page-toc-desktop-final.png
│   ā”œā”€ā”€ products-page-toc-mobile.png
│   ā”œā”€ā”€ products-page-viewport.png
│   ā”œā”€ā”€ proven-paths-section-only.png
│   ā”œā”€ā”€ service-cards-after-gradient-fix.png
│   ā”œā”€ā”€ service-cards-current-state.png
│   ā”œā”€ā”€ service-cards-current.png
│   ā”œā”€ā”€ service-cards-fixed.png
│   ā”œā”€ā”€ service-cards-improved.png
│   ā”œā”€ā”€ service-cards-text-issue.png
│   ā”œā”€ā”€ service-cards-verification.png
│   ā”œā”€ā”€ service-visual-debug.png
│   ā”œā”€ā”€ service-visual-sections.png
│   ā”œā”€ā”€ service-visuals-current-state.png
│   ā”œā”€ā”€ service-visuals-fixed.png
│   ā”œā”€ā”€ services-cards-current-state.png
│   ā”œā”€ā”€ services-cards-detailed.png
│   ā”œā”€ā”€ services-grid-final-verification-1200px.png
│   ā”œā”€ā”€ services-grid-mobile-480px.png
│   ā”œā”€ā”€ services-grid-tablet-768px.png
│   ā”œā”€ā”€ services-section-after-fix.png
│   ā”œā”€ā”€ services-section-before-fix.png
│   ā”œā”€ā”€ services-section-comprehensive.png
│   ā”œā”€ā”€ services-section-final.png
│   ā”œā”€ā”€ services-section-focused.png
│   ā”œā”€ā”€ services-section-initial.png
│   ā”œā”€ā”€ services-section-scrolled.png
│   ā”œā”€ā”€ sibylline-final-visual-improvements.png
│   ā”œā”€ā”€ sibylline-homepage-top.png
│   ā”œā”€ā”€ sibylline-service-cards-improved.png
│   ā”œā”€ā”€ simplified-homepage.png
│   ā”œā”€ā”€ solar-system-animation-working.png
│   ā”œā”€ā”€ solar-system-positioning.png
│   ā”œā”€ā”€ solar-system-test.png
│   ā”œā”€ā”€ startup-card-expanded.png
│   ā”œā”€ā”€ toc-all-collapsed-state.png
│   ā”œā”€ā”€ toc-current-state.png
│   ā”œā”€ā”€ toc-fixed-borders.png
│   ā”œā”€ā”€ toc-fixed-screenshot.png
│   ā”œā”€ā”€ toc-infrastructure-expanded.png
│   ā”œā”€ā”€ toc-initial-state.png
│   ā”œā”€ā”€ toc-research-expanded.png
│   ā”œā”€ā”€ toc-top-of-page.png
│   ā”œā”€ā”€ toc-wide-viewport.png
│   ā”œā”€ā”€ trust-me-section-working.png
│   └── viewport-screenshot.png
ā”œā”€ā”€ .scribeignore
ā”œā”€ā”€ .serena
│   ā”œā”€ā”€ cache
│   │   └── typescript
│   │       └── document_symbols_cache_v23-06-25.pkl
│   ā”œā”€ā”€ memories
│   │   ā”œā”€ā”€ code_style_conventions.md
│   │   ā”œā”€ā”€ project_overview.md
│   │   ā”œā”€ā”€ suggested_commands.md
│   │   └── task_completion_workflow.md
│   └── project.yml
ā”œā”€ā”€ CNAME
ā”œā”€ā”€ LICENSE
ā”œā”€ā”€ README.md
ā”œā”€ā”€ _site
│   ā”œā”€ā”€ .nojekyll
│   ā”œā”€ā”€ 404.html
│   ā”œā”€ā”€ CNAME
│   ā”œā”€ā”€ _redirects
│   ā”œā”€ā”€ about
│   │   └── index.html
│   ā”œā”€ā”€ articles
│   │   ā”œā”€ā”€ 2025-08-17-process-intelligence-automation-bottleneck
│   │   │   └── index.html
│   │   ā”œā”€ā”€ 2025-08-21-foo
│   │   │   └── index.html
│   │   ā”œā”€ā”€ 2025-08-21-if-llms-were-people
│   │   │   └── index.html
│   │   ā”œā”€ā”€ 2025-08-21-llms-as-programming-language-runtimes
│   │   │   └── index.html
│   │   ā”œā”€ā”€ 2025-08-21-llms-as-programming-language-runtimes copy
│   │   │   └── index.html
│   │   ā”œā”€ā”€ bar
│   │   │   └── index.html
│   │   ā”œā”€ā”€ foo
│   │   │   └── index.html
│   │   └── index.html
│   ā”œā”€ā”€ components
│   │   ā”œā”€ā”€ README
│   │   │   └── index.html
│   │   ā”œā”€ā”€ button
│   │   │   └── index.html
│   │   ā”œā”€ā”€ button-primary
│   │   │   └── index.html
│   │   ā”œā”€ā”€ button-secondary
│   │   │   └── index.html
│   │   ā”œā”€ā”€ card-container
│   │   │   └── index.html
│   │   ā”œā”€ā”€ cta-section
│   │   │   └── index.html
│   │   ā”œā”€ā”€ discovery-option
│   │   │   └── index.html
│   │   ā”œā”€ā”€ expandable-service-card
│   │   │   └── index.html
│   │   ā”œā”€ā”€ hero-section
│   │   │   └── index.html
│   │   ā”œā”€ā”€ icon-component
│   │   │   └── index.html
│   │   ā”œā”€ā”€ loading-spinner
│   │   │   └── index.html
│   │   ā”œā”€ā”€ modal-template
│   │   │   └── index.html
│   │   ā”œā”€ā”€ service-card
│   │   │   └── index.html
│   │   └── services-grid
│   │       └── index.html
│   ā”œā”€ā”€ domains
│   │   └── index.html
│   ā”œā”€ā”€ img
│   │   ā”œā”€ā”€ claude.png
│   │   ā”œā”€ā”€ deepseek.png
│   │   ā”œā”€ā”€ default-avatar.png
│   │   ā”œā”€ā”€ eric-possum.png
│   │   ā”œā”€ā”€ gemini.png
│   │   ā”œā”€ā”€ github.svg
│   │   ā”œā”€ā”€ gpt4o.png
│   │   ā”œā”€ā”€ gpt5.png
│   │   ā”œā”€ā”€ grok.png
│   │   ā”œā”€ā”€ lethe.png
│   │   ā”œā”€ā”€ logo copy.svg
│   │   ā”œā”€ā”€ logo.png
│   │   ā”œā”€ā”€ logo.svg
│   │   ā”œā”€ā”€ logos
│   │   │   ā”œā”€ā”€ markdown.svg
│   │   │   ā”œā”€ā”€ sass.svg
│   │   │   └── webc.png
│   │   ā”œā”€ā”€ mascots
│   │   │   ā”œā”€ā”€ cat.jpg
│   │   │   ā”œā”€ā”€ david.svg
│   │   │   ā”œā”€ā”€ geri.png
│   │   │   ā”œā”€ā”€ lynn-fisher.png
│   │   │   ā”œā”€ā”€ phineas-ben-facemask--v46-edited_FINAL-1.webp
│   │   │   ā”œā”€ā”€ phineas.png
│   │   │   └── possum.jpg
│   │   ā”œā”€ā”€ optimized
│   │   │   ā”œā”€ā”€ article-llm-programming-runtime.webp
│   │   │   ā”œā”€ā”€ article-process-intelligence.webp
│   │   │   ā”œā”€ā”€ domain-drone.webp
│   │   │   ā”œā”€ā”€ domain-industrial.webp
│   │   │   ā”œā”€ā”€ domain-lab-medical.webp
│   │   │   ā”œā”€ā”€ domain-library.webp
│   │   │   ā”œā”€ā”€ domain-startup-workspace.webp
│   │   │   ā”œā”€ā”€ modal-analytics-dashboard.webp
│   │   │   ā”œā”€ā”€ modal-building-architecture.webp
│   │   │   ā”œā”€ā”€ modal-computer-code.webp
│   │   │   ā”œā”€ā”€ modal-data-visualization.webp
│   │   │   ā”œā”€ā”€ modal-office-meeting.webp
│   │   │   ā”œā”€ā”€ modal-team-meeting.webp
│   │   │   ā”œā”€ā”€ product-agentzoo.webp
│   │   │   ā”œā”€ā”€ product-bookworm.webp
│   │   │   ā”œā”€ā”€ product-darwin.webp
│   │   │   ā”œā”€ā”€ product-ideoscope.webp
│   │   │   ā”œā”€ā”€ product-mimir.webp
│   │   │   ā”œā”€ā”€ product-mindlink-temp.jpg
│   │   │   ā”œā”€ā”€ product-mindlink.webp
│   │   │   ā”œā”€ā”€ product-rave.webp
│   │   │   ā”œā”€ā”€ product-scramblebench.webp
│   │   │   ā”œā”€ā”€ research-bem.webp
│   │   │   ā”œā”€ā”€ research-lethe.webp
│   │   │   ā”œā”€ā”€ research-matrix.webp
│   │   │   ā”œā”€ā”€ temp-agentzoo.jpg
│   │   │   ā”œā”€ā”€ temp-mimir.jpg
│   │   │   ā”œā”€ā”€ temp-mindlink.jpg
│   │   │   └── temp-rave.jpg
│   │   ā”œā”€ā”€ orgs
│   │   │   ā”œā”€ā”€ cern.png
│   │   │   ā”œā”€ā”€ css-tricks.png
│   │   │   ā”œā”€ā”€ google.svg
│   │   │   └── netlify.png
│   │   ā”œā”€ā”€ photo.png
│   │   ā”œā”€ā”€ plugins
│   │   │   └── image
│   │   │       ā”œā”€ā”€ 6dfd7ac6-300.jpeg
│   │   │       └── 6dfd7ac6-300.webp
│   │   ā”œā”€ā”€ possum-balloon-original-sm.png
│   │   ā”œā”€ā”€ possum-balloon-original.png
│   │   ā”œā”€ā”€ possum-balloon-original.webp
│   │   ā”œā”€ā”€ possum-balloon.svg
│   │   ā”œā”€ā”€ possum-geri.png
│   │   ā”œā”€ā”€ possum-sm.png
│   │   ā”œā”€ā”€ possum.jpg
│   │   ā”œā”€ā”€ possum.png
│   │   ā”œā”€ā”€ svg
│   │   │   └── galaxy.svg
│   │   └── twitter.svg
│   ā”œā”€ā”€ index.html
│   ā”œā”€ā”€ js
│   │   ā”œā”€ā”€ animations.js
│   │   ā”œā”€ā”€ modals.js
│   │   ā”œā”€ā”€ neural-network.js
│   │   ā”œā”€ā”€ secure-contact.js
│   │   ā”œā”€ā”€ toc-scrollspy.js
│   │   └── ui-interactions.js
│   ā”œā”€ā”€ products
│   │   └── index.html
│   ā”œā”€ā”€ research
│   │   └── index.html
│   └── styles
│       ā”œā”€ā”€ animations.css
│       ā”œā”€ā”€ buttons.css
│       ā”œā”€ā”€ cards.css
│       ā”œā”€ā”€ forms.css
│       ā”œā”€ā”€ hero.css
│       ā”œā”€ā”€ toc.css
│       ā”œā”€ā”€ unified-button.css
│       └── utilities.css
ā”œā”€ā”€ backup
│   ā”œā”€ā”€ .eleventy.js
│   ā”œā”€ā”€ package.json
│   └── src
│       ā”œā”€ā”€ _data
│       │   └── site.js
│       ā”œā”€ā”€ _includes
│       ā”œā”€ā”€ _layouts
│       │   └── base.njk
│       ā”œā”€ā”€ about.md
│       ā”œā”€ā”€ assets
│       ā”œā”€ā”€ css
│       │   └── style.css
│       ā”œā”€ā”€ index.md
│       └── js
│           └── main.js
ā”œā”€ā”€ cloudflare-email-setup.cjs
ā”œā”€ā”€ config
│   ā”œā”€ā”€ activity.js
│   ā”œā”€ā”€ addedin.js
│   ā”œā”€ā”€ cleanAuthorName.js
│   ā”œā”€ā”€ feedPlugin.js
│   ā”œā”€ā”€ getAuthorsFromSites.js
│   ā”œā”€ā”€ markdownPlugin.js
│   ā”œā”€ā”€ minification.js
│   ā”œā”€ā”€ object-has.js
│   └── sidebarPlugin.js
ā”œā”€ā”€ coverage
│   ā”œā”€ā”€ base.css
│   ā”œā”€ā”€ block-navigation.js
│   ā”œā”€ā”€ favicon.png
│   ā”œā”€ā”€ index.html
│   ā”œā”€ā”€ lcov-report
│   │   ā”œā”€ā”€ base.css
│   │   ā”œā”€ā”€ block-navigation.js
│   │   ā”œā”€ā”€ favicon.png
│   │   ā”œā”€ā”€ index.html
│   │   ā”œā”€ā”€ prettify.css
│   │   ā”œā”€ā”€ prettify.js
│   │   ā”œā”€ā”€ sibyllinesoft.github.io
│   │   │   ā”œā”€ā”€ eleventy.config.js.html
│   │   │   ā”œā”€ā”€ index.html
│   │   │   ā”œā”€ā”€ scripts
│   │   │   │   ā”œā”€ā”€ fetch-community-data.js.html
│   │   │   │   └── index.html
│   │   │   └── src
│   │   │       └── _eleventy
│   │   │           ā”œā”€ā”€ collections.js.html
│   │   │           ā”œā”€ā”€ filters.js.html
│   │   │           ā”œā”€ā”€ index.html
│   │   │           └── passthrough.js.html
│   │   ā”œā”€ā”€ sort-arrow-sprite.png
│   │   └── sorter.js
│   ā”œā”€ā”€ lcov.info
│   ā”œā”€ā”€ prettify.css
│   ā”œā”€ā”€ prettify.js
│   ā”œā”€ā”€ sibyllinesoft.github.io
│   │   ā”œā”€ā”€ eleventy.config.js.html
│   │   ā”œā”€ā”€ index.html
│   │   ā”œā”€ā”€ scripts
│   │   │   ā”œā”€ā”€ fetch-community-data.js.html
│   │   │   └── index.html
│   │   └── src
│   │       └── _eleventy
│   │           ā”œā”€ā”€ collections.js.html
│   │           ā”œā”€ā”€ filters.js.html
│   │           ā”œā”€ā”€ index.html
│   │           └── passthrough.js.html
│   ā”œā”€ā”€ sort-arrow-sprite.png
│   └── sorter.js
ā”œā”€ā”€ eleventy.config.js
ā”œā”€ā”€ eslint.config.js
ā”œā”€ā”€ netlify.toml
ā”œā”€ā”€ node_modules
│   ā”œā”€ā”€ .bin
│   │   ā”œā”€ā”€ acorn -> ../acorn/bin/acorn
│   │   ā”œā”€ā”€ csv2json -> ../d3-dsv/bin/dsv2json.js
│   │   ā”œā”€ā”€ csv2tsv -> ../d3-dsv/bin/dsv2dsv.js
│   │   ā”œā”€ā”€ degit -> ../degit/degit
│   │   ā”œā”€ā”€ dsv2dsv -> ../d3-dsv/bin/dsv2dsv.js
│   │   ā”œā”€ā”€ dsv2json -> ../d3-dsv/bin/dsv2json.js
│   │   ā”œā”€ā”€ eleventy -> ../@11ty/eleventy/cmd.cjs
│   │   ā”œā”€ā”€ eleventy-dev-server -> ../@11ty/eleventy-dev-server/cmd.cjs
│   │   ā”œā”€ā”€ eleventy-import -> ../@11ty/import/cli.js
│   │   ā”œā”€ā”€ errno -> ../errno/cli.js
│   │   ā”œā”€ā”€ esbuild -> ../esbuild/bin/esbuild
│   │   ā”œā”€ā”€ eslint -> ../eslint/bin/eslint.js
│   │   ā”œā”€ā”€ fxparser -> ../fast-xml-parser/src/cli/cli.js
│   │   ā”œā”€ā”€ glob -> ../glob/dist/esm/bin.mjs
│   │   ā”œā”€ā”€ he -> ../he/bin/he
│   │   ā”œā”€ā”€ image-size -> ../image-size/bin/image-size.js
│   │   ā”œā”€ā”€ installServerIntoExtension -> ../vscode-languageserver/bin/installServerIntoExtension
│   │   ā”œā”€ā”€ js-yaml -> ../js-yaml/bin/js-yaml.js
│   │   ā”œā”€ā”€ json2csv -> ../d3-dsv/bin/json2dsv.js
│   │   ā”œā”€ā”€ json2dsv -> ../d3-dsv/bin/json2dsv.js
│   │   ā”œā”€ā”€ json2tsv -> ../d3-dsv/bin/json2dsv.js
│   │   ā”œā”€ā”€ katex -> ../katex/cli.js
│   │   ā”œā”€ā”€ lint-staged -> ../lint-staged/bin/lint-staged.js
│   │   ā”œā”€ā”€ liquid -> ../liquidjs/bin/liquid.js
│   │   ā”œā”€ā”€ liquidjs -> ../liquidjs/bin/liquid.js
│   │   ā”œā”€ā”€ markdown-it -> ../markdown-it/bin/markdown-it.mjs
│   │   ā”œā”€ā”€ marked -> ../marked/bin/marked.js
│   │   ā”œā”€ā”€ mime -> ../mime/bin/cli.js
│   │   ā”œā”€ā”€ miniflare -> ../miniflare/bootstrap.js
│   │   ā”œā”€ā”€ namecheap -> ../namecheap-cli/bin/namecheap-cli.js
│   │   ā”œā”€ā”€ nanoid -> ../nanoid/bin/nanoid.js
│   │   ā”œā”€ā”€ node-which -> ../which/bin/node-which
│   │   ā”œā”€ā”€ nunjucks-precompile -> ../nunjucks/bin/precompile
│   │   ā”œā”€ā”€ pagefind -> ../pagefind/lib/runner/bin.cjs
│   │   ā”œā”€ā”€ parser -> ../@babel/parser/bin/babel-parser.js
│   │   ā”œā”€ā”€ pidtree -> ../pidtree/bin/pidtree.js
│   │   ā”œā”€ā”€ playwright -> ../playwright/cli.js
│   │   ā”œā”€ā”€ playwright-core -> ../playwright-core/cli.js
│   │   ā”œā”€ā”€ prettier -> ../prettier/bin/prettier.cjs
│   │   ā”œā”€ā”€ rollup -> ../rollup/dist/bin/rollup
│   │   ā”œā”€ā”€ semver -> ../semver/bin/semver.js
│   │   ā”œā”€ā”€ terser -> ../terser/bin/terser
│   │   ā”œā”€ā”€ tsv2csv -> ../d3-dsv/bin/dsv2dsv.js
│   │   ā”œā”€ā”€ tsv2json -> ../d3-dsv/bin/dsv2json.js
│   │   ā”œā”€ā”€ uuid -> ../uuid/dist/esm/bin/uuid
│   │   ā”œā”€ā”€ vite -> ../vite/bin/vite.js
│   │   ā”œā”€ā”€ vite-node -> ../vite-node/vite-node.mjs
│   │   ā”œā”€ā”€ vitest -> ../vitest/vitest.mjs
│   │   ā”œā”€ā”€ why-is-node-running -> ../why-is-node-running/cli.js
│   │   ā”œā”€ā”€ workerd -> ../workerd/bin/workerd
│   │   ā”œā”€ā”€ wrangler -> ../wrangler/bin/wrangler.js
│   │   ā”œā”€ā”€ wrangler2 -> ../wrangler/bin/wrangler.js
│   │   └── yaml -> ../yaml/bin.mjs
│   ā”œā”€ā”€ .package-lock.json
│   ā”œā”€ā”€ .vite
│   │   └── vitest
│   │       └── da39a3ee5e6b4b0d3255bfef95601890afd80709
│   │           └── results.json
│   ā”œā”€ā”€ .vite-temp
│   ā”œā”€ā”€ @11ty
│   │   ā”œā”€ā”€ client
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ eleventy.core.js
│   │   │   │   ā”œā”€ā”€ eleventy.js
│   │   │   │   ā”œā”€ā”€ formats
│   │   │   │   │   ā”œā”€ā”€ eleventy-liquid.js
│   │   │   │   │   ā”œā”€ā”€ eleventy-markdown.js
│   │   │   │   │   └── eleventy-nunjucks.js
│   │   │   │   └── plugins
│   │   │   │       └── eleventy-plugin-i18n.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ dependency-tree
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ main.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ dependency-tree-esm
│   │   │   ā”œā”€ā”€ .github
│   │   │   │   └── workflows
│   │   │   │       ā”œā”€ā”€ ci.yml
│   │   │   │       └── release.yml
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ main.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── test
│   │   │       ā”œā”€ā”€ stubs
│   │   │       │   ā”œā”€ā”€ circular-child.js
│   │   │       │   ā”œā”€ā”€ circular-parent.js
│   │   │       │   ā”œā”€ā”€ circular-self.js
│   │   │       │   ā”œā”€ā”€ empty.js
│   │   │       │   ā”œā”€ā”€ file.js
│   │   │       │   ā”œā”€ā”€ import-attributes.js
│   │   │       │   ā”œā”€ā”€ imported-secondary.js
│   │   │       │   ā”œā”€ā”€ imported.js
│   │   │       │   ā”œā”€ā”€ imported.json
│   │   │       │   ā”œā”€ā”€ nested-grandchild.js
│   │   │       │   └── nested.js
│   │   │       └── test.js
│   │   ā”œā”€ā”€ eleventy
│   │   │   ā”œā”€ā”€ CODE_OF_CONDUCT.md
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ SECURITY.md
│   │   │   ā”œā”€ā”€ cmd.cjs
│   │   │   ā”œā”€ā”€ node_modules
│   │   │   │   ā”œā”€ā”€ chokidar
│   │   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   │   ā”œā”€ā”€ esm
│   │   │   │   │   │   ā”œā”€ā”€ handler.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ handler.js
│   │   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   │   └── package.json
│   │   │   │   │   ā”œā”€ā”€ handler.d.ts
│   │   │   │   │   ā”œā”€ā”€ handler.js
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   └── package.json
│   │   │   │   └── readdirp
│   │   │   │       ā”œā”€ā”€ LICENSE
│   │   │   │       ā”œā”€ā”€ README.md
│   │   │   │       ā”œā”€ā”€ esm
│   │   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │   │       │   ā”œā”€ā”€ index.js
│   │   │   │       │   └── package.json
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       └── package.json
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ scripts
│   │   │   │   ā”œā”€ā”€ release-dryrun.sh
│   │   │   │   └── release.sh
│   │   │   ā”œā”€ā”€ src
│   │   │   │   ā”œā”€ā”€ Adapters
│   │   │   │   │   ā”œā”€ā”€ Engines
│   │   │   │   │   │   ā”œā”€ā”€ Liquid.core.js
│   │   │   │   │   │   ā”œā”€ā”€ Liquid.js
│   │   │   │   │   │   ā”œā”€ā”€ Markdown.core.js
│   │   │   │   │   │   ā”œā”€ā”€ Markdown.js
│   │   │   │   │   │   ā”œā”€ā”€ Nunjucks.core.js
│   │   │   │   │   │   └── Nunjucks.js
│   │   │   │   │   ā”œā”€ā”€ Packages
│   │   │   │   │   │   ā”œā”€ā”€ chalk.client.js
│   │   │   │   │   │   ā”œā”€ā”€ chalk.js
│   │   │   │   │   │   ā”œā”€ā”€ inspect.core.js
│   │   │   │   │   │   ā”œā”€ā”€ inspect.js
│   │   │   │   │   │   ā”œā”€ā”€ semver.client.js
│   │   │   │   │   │   ā”œā”€ā”€ semver.js
│   │   │   │   │   │   ā”œā”€ā”€ url.core.js
│   │   │   │   │   │   └── url.js
│   │   │   │   │   ā”œā”€ā”€ getDefaultConfig.core.js
│   │   │   │   │   └── getDefaultConfig.js
│   │   │   │   ā”œā”€ā”€ Benchmark
│   │   │   │   │   ā”œā”€ā”€ Benchmark.js
│   │   │   │   │   ā”œā”€ā”€ BenchmarkGroup.js
│   │   │   │   │   └── BenchmarkManager.js
│   │   │   │   ā”œā”€ā”€ Core.js
│   │   │   │   ā”œā”€ā”€ CoreMinimal.js
│   │   │   │   ā”œā”€ā”€ Data
│   │   │   │   │   ā”œā”€ā”€ ComputedData.js
│   │   │   │   │   ā”œā”€ā”€ ComputedDataProxy.js
│   │   │   │   │   ā”œā”€ā”€ ComputedDataQueue.js
│   │   │   │   │   ā”œā”€ā”€ ComputedDataTemplateString.js
│   │   │   │   │   ā”œā”€ā”€ TemplateData.js
│   │   │   │   │   └── TemplateDataInitialGlobalData.js
│   │   │   │   ā”œā”€ā”€ Eleventy.js
│   │   │   │   ā”œā”€ā”€ EleventyCommonJs.cjs
│   │   │   │   ā”œā”€ā”€ EleventyExtensionMap.js
│   │   │   │   ā”œā”€ā”€ EleventyFiles.js
│   │   │   │   ā”œā”€ā”€ EleventyServe.js
│   │   │   │   ā”œā”€ā”€ Engines
│   │   │   │   │   ā”œā”€ā”€ Custom.js
│   │   │   │   │   ā”œā”€ā”€ FrontMatter
│   │   │   │   │   │   └── JavaScript.js
│   │   │   │   │   ā”œā”€ā”€ Html.js
│   │   │   │   │   ā”œā”€ā”€ JavaScript.js
│   │   │   │   │   ā”œā”€ā”€ Liquid.js
│   │   │   │   │   ā”œā”€ā”€ Markdown.js
│   │   │   │   │   ā”œā”€ā”€ Nunjucks.js
│   │   │   │   │   ā”œā”€ā”€ TemplateEngine.js
│   │   │   │   │   ā”œā”€ā”€ TemplateEngineManager.js
│   │   │   │   │   └── Util
│   │   │   │   │       └── ContextAugmenter.js
│   │   │   │   ā”œā”€ā”€ Errors
│   │   │   │   │   ā”œā”€ā”€ DuplicatePermalinkOutputError.js
│   │   │   │   │   ā”œā”€ā”€ EleventyBaseError.js
│   │   │   │   │   ā”œā”€ā”€ EleventyErrorHandler.js
│   │   │   │   │   ā”œā”€ā”€ EleventyErrorUtil.js
│   │   │   │   │   ā”œā”€ā”€ TemplateContentPrematureUseError.js
│   │   │   │   │   ā”œā”€ā”€ TemplateContentUnrenderedTemplateError.js
│   │   │   │   │   └── UsingCircularTemplateContentReferenceError.js
│   │   │   │   ā”œā”€ā”€ EventBus.js
│   │   │   │   ā”œā”€ā”€ FileSystemSearch.js
│   │   │   │   ā”œā”€ā”€ Filters
│   │   │   │   │   ā”œā”€ā”€ GetCollectionItem.js
│   │   │   │   │   ā”œā”€ā”€ GetCollectionItemIndex.js
│   │   │   │   │   ā”œā”€ā”€ GetLocaleCollectionItem.js
│   │   │   │   │   └── Url.js
│   │   │   │   ā”œā”€ā”€ GlobalDependencyMap.js
│   │   │   │   ā”œā”€ā”€ LayoutCache.js
│   │   │   │   ā”œā”€ā”€ Plugins
│   │   │   │   │   ā”œā”€ā”€ HtmlBasePlugin.js
│   │   │   │   │   ā”œā”€ā”€ HtmlRelativeCopyPlugin.js
│   │   │   │   │   ā”œā”€ā”€ I18nPlugin.js
│   │   │   │   │   ā”œā”€ā”€ IdAttributePlugin.js
│   │   │   │   │   ā”œā”€ā”€ InputPathToUrl.js
│   │   │   │   │   ā”œā”€ā”€ Pagination.js
│   │   │   │   │   └── RenderPlugin.js
│   │   │   │   ā”œā”€ā”€ Template.js
│   │   │   │   ā”œā”€ā”€ TemplateBehavior.js
│   │   │   │   ā”œā”€ā”€ TemplateCollection.js
│   │   │   │   ā”œā”€ā”€ TemplateConfig.js
│   │   │   │   ā”œā”€ā”€ TemplateContent.js
│   │   │   │   ā”œā”€ā”€ TemplateFileSlug.js
│   │   │   │   ā”œā”€ā”€ TemplateGlob.js
│   │   │   │   ā”œā”€ā”€ TemplateLayout.js
│   │   │   │   ā”œā”€ā”€ TemplateLayoutPathResolver.js
│   │   │   │   ā”œā”€ā”€ TemplateMap.js
│   │   │   │   ā”œā”€ā”€ TemplatePassthrough.js
│   │   │   │   ā”œā”€ā”€ TemplatePassthroughManager.js
│   │   │   │   ā”œā”€ā”€ TemplatePermalink.js
│   │   │   │   ā”œā”€ā”€ TemplateRender.js
│   │   │   │   ā”œā”€ā”€ TemplateWriter.js
│   │   │   │   ā”œā”€ā”€ UserConfig.js
│   │   │   │   ā”œā”€ā”€ Util
│   │   │   │   │   ā”œā”€ā”€ ArrayUtil.js
│   │   │   │   │   ā”œā”€ā”€ AsyncEventEmitter.js
│   │   │   │   │   ā”œā”€ā”€ Compatibility.js
│   │   │   │   │   ā”œā”€ā”€ ConsoleLogger.js
│   │   │   │   │   ā”œā”€ā”€ DateGitFirstAdded.js
│   │   │   │   │   ā”œā”€ā”€ DateGitLastUpdated.js
│   │   │   │   │   ā”œā”€ā”€ DateParse.js
│   │   │   │   │   ā”œā”€ā”€ DirContains.js
│   │   │   │   │   ā”œā”€ā”€ EsmResolver.js
│   │   │   │   │   ā”œā”€ā”€ EsmResolverPortAdapter.core.js
│   │   │   │   │   ā”œā”€ā”€ EsmResolverPortAdapter.js
│   │   │   │   │   ā”œā”€ā”€ EventBusUtil.js
│   │   │   │   │   ā”œā”€ā”€ ExistsCache.js
│   │   │   │   │   ā”œā”€ā”€ FilePathUtil.js
│   │   │   │   │   ā”œā”€ā”€ FileSize.js
│   │   │   │   │   ā”œā”€ā”€ FileSystemManager.js
│   │   │   │   │   ā”œā”€ā”€ GetJavaScriptData.js
│   │   │   │   │   ā”œā”€ā”€ GlobMatcher.client.js
│   │   │   │   │   ā”œā”€ā”€ GlobMatcher.js
│   │   │   │   │   ā”œā”€ā”€ GlobRemap.js
│   │   │   │   │   ā”œā”€ā”€ GlobStripper.js
│   │   │   │   │   ā”œā”€ā”€ HtmlRelativeCopy.js
│   │   │   │   │   ā”œā”€ā”€ HtmlTransformer.js
│   │   │   │   │   ā”œā”€ā”€ ImportJsonSync.js
│   │   │   │   │   ā”œā”€ā”€ IsAsyncFunction.js
│   │   │   │   │   ā”œā”€ā”€ JavaScriptDependencies.core.js
│   │   │   │   │   ā”œā”€ā”€ JavaScriptDependencies.js
│   │   │   │   │   ā”œā”€ā”€ MemoizeFunction.js
│   │   │   │   │   ā”œā”€ā”€ NewLineAdapter.core.js
│   │   │   │   │   ā”œā”€ā”€ NewLineAdapter.js
│   │   │   │   │   ā”œā”€ā”€ Objects
│   │   │   │   │   │   ā”œā”€ā”€ DeepFreeze.js
│   │   │   │   │   │   ā”œā”€ā”€ ObjectFilter.js
│   │   │   │   │   │   ā”œā”€ā”€ ProxyWrap.js
│   │   │   │   │   │   ā”œā”€ā”€ SampleModule.mjs
│   │   │   │   │   │   ā”œā”€ā”€ Sortable.js
│   │   │   │   │   │   └── Unique.js
│   │   │   │   │   ā”œā”€ā”€ PassthroughCopyBehaviorCheck.js
│   │   │   │   │   ā”œā”€ā”€ PathNormalizer.js
│   │   │   │   │   ā”œā”€ā”€ PathPrefixer.js
│   │   │   │   │   ā”œā”€ā”€ Pluralize.js
│   │   │   │   │   ā”œā”€ā”€ ProjectDirectories.js
│   │   │   │   │   ā”œā”€ā”€ ProjectTemplateFormats.js
│   │   │   │   │   ā”œā”€ā”€ PromiseUtil.js
│   │   │   │   │   ā”œā”€ā”€ Require.js
│   │   │   │   │   ā”œā”€ā”€ RequireUtils.core.js
│   │   │   │   │   ā”œā”€ā”€ RequireUtils.js
│   │   │   │   │   ā”œā”€ā”€ ReservedData.js
│   │   │   │   │   ā”œā”€ā”€ ResolvePlugin.client.js
│   │   │   │   │   ā”œā”€ā”€ ResolvePlugin.js
│   │   │   │   │   ā”œā”€ā”€ RetrieveGlobals.client.js
│   │   │   │   │   ā”œā”€ā”€ RetrieveGlobals.core.js
│   │   │   │   │   ā”œā”€ā”€ RetrieveGlobals.js
│   │   │   │   │   ā”œā”€ā”€ SemverCoerce.js
│   │   │   │   │   ā”œā”€ā”€ SetUnion.js
│   │   │   │   │   ā”œā”€ā”€ TemplateDepGraph.js
│   │   │   │   │   ā”œā”€ā”€ TransformsUtil.js
│   │   │   │   │   ā”œā”€ā”€ ValidUrl.js
│   │   │   │   │   ā”œā”€ā”€ importer.client.js
│   │   │   │   │   ā”œā”€ā”€ importer.core.js
│   │   │   │   │   ā”œā”€ā”€ importer.js
│   │   │   │   │   ā”œā”€ā”€ spawn.core.js
│   │   │   │   │   └── spawn.js
│   │   │   │   ā”œā”€ā”€ Watch.js
│   │   │   │   ā”œā”€ā”€ WatchQueue.js
│   │   │   │   ā”œā”€ā”€ WatchTargets.js
│   │   │   │   ā”œā”€ā”€ defaultConfig.js
│   │   │   │   ā”œā”€ā”€ defaultConfigExtended.client.js
│   │   │   │   └── defaultConfigExtended.js
│   │   │   └── tsconfig.json
│   │   ā”œā”€ā”€ eleventy-activity-feed
│   │   │   ā”œā”€ā”€ ActivityFeed.js
│   │   │   ā”œā”€ā”€ CHANGELOG.md
│   │   │   ā”œā”€ā”€ README.md
│   │   │   └── package.json
│   │   ā”œā”€ā”€ eleventy-dev-server
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ cli.js
│   │   │   ā”œā”€ā”€ client
│   │   │   │   └── reload-client.js
│   │   │   ā”œā”€ā”€ cmd.cjs
│   │   │   ā”œā”€ā”€ node_modules
│   │   │   │   ā”œā”€ā”€ chokidar
│   │   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   │   ā”œā”€ā”€ esm
│   │   │   │   │   │   ā”œā”€ā”€ handler.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ handler.js
│   │   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   │   └── package.json
│   │   │   │   │   ā”œā”€ā”€ handler.d.ts
│   │   │   │   │   ā”œā”€ā”€ handler.js
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   └── package.json
│   │   │   │   └── readdirp
│   │   │   │       ā”œā”€ā”€ LICENSE
│   │   │   │       ā”œā”€ā”€ README.md
│   │   │   │       ā”œā”€ā”€ esm
│   │   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │   │       │   ā”œā”€ā”€ index.js
│   │   │   │       │   └── package.json
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       └── package.json
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ server
│   │   │   │   ā”œā”€ā”€ ipAddress.js
│   │   │   │   └── wrapResponse.js
│   │   │   └── server.js
│   │   ā”œā”€ā”€ eleventy-fetch
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ eleventy-fetch.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ AssetCache.js
│   │   │       ā”œā”€ā”€ DirectoryManager.js
│   │   │       ā”œā”€ā”€ ExistsCache.js
│   │   │       ā”œā”€ā”€ FileCache.js
│   │   │       ā”œā”€ā”€ RemoteAssetCache.js
│   │   │       └── Sources.js
│   │   ā”œā”€ā”€ eleventy-img
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ eleventy-image.webc
│   │   │   ā”œā”€ā”€ eslint.config.mjs
│   │   │   ā”œā”€ā”€ img.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ adapters
│   │   │       │   ā”œā”€ā”€ brotli-size.browser.js
│   │   │       │   ā”œā”€ā”€ brotli-size.js
│   │   │       │   ā”œā”€ā”€ sharp.browser.js
│   │   │       │   └── sharp.js
│   │   │       ā”œā”€ā”€ build-logger.js
│   │   │       ā”œā”€ā”€ caches.js
│   │   │       ā”œā”€ā”€ defer-counter.js
│   │   │       ā”œā”€ā”€ directory-manager.js
│   │   │       ā”œā”€ā”€ disk-cache.js
│   │   │       ā”œā”€ā”€ exists-cache.js
│   │   │       ā”œā”€ā”€ format-hooks
│   │   │       │   └── svg.js
│   │   │       ā”œā”€ā”€ generate-html.js
│   │   │       ā”œā”€ā”€ global-options.js
│   │   │       ā”œā”€ā”€ image-attrs-to-posthtml-node.js
│   │   │       ā”œā”€ā”€ image-path.js
│   │   │       ā”œā”€ā”€ image.js
│   │   │       ā”œā”€ā”€ memory-cache.js
│   │   │       ā”œā”€ā”€ on-request-during-serve-plugin.js
│   │   │       ā”œā”€ā”€ transform-plugin.js
│   │   │       ā”œā”€ā”€ util.js
│   │   │       └── webc-options-plugin.js
│   │   ā”œā”€ā”€ eleventy-navigation
│   │   │   ā”œā”€ā”€ .eleventy.js
│   │   │   ā”œā”€ā”€ .github
│   │   │   │   └── workflows
│   │   │   │       ā”œā”€ā”€ ci.yml
│   │   │   │       └── release.yml
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ eleventy-navigation.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ sample
│   │   │   │   ā”œā”€ā”€ .eleventy.js
│   │   │   │   ā”œā”€ā”€ bats.md
│   │   │   │   ā”œā”€ā”€ humans.md
│   │   │   │   ā”œā”€ā”€ liquid
│   │   │   │   │   └── index.liquid
│   │   │   │   ā”œā”€ā”€ mammals.md
│   │   │   │   ā”œā”€ā”€ no-key.md
│   │   │   │   ā”œā”€ā”€ no-nav.md
│   │   │   │   └── nunjucks
│   │   │   │       └── index.njk
│   │   │   └── test
│   │   │       └── navigationTest.js
│   │   ā”œā”€ā”€ eleventy-plugin-bundle
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ eleventy.bundle.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ BundleFileOutput.js
│   │   │       ā”œā”€ā”€ CodeManager.js
│   │   │       ā”œā”€ā”€ OutOfOrderRender.js
│   │   │       ā”œā”€ā”€ bundlePlucker.js
│   │   │       ā”œā”€ā”€ eleventy.bundleManagers.js
│   │   │       ā”œā”€ā”€ eleventy.pruneEmptyBundles.js
│   │   │       └── eleventy.shortcodes.js
│   │   ā”œā”€ā”€ eleventy-plugin-rss
│   │   │   ā”œā”€ā”€ .eleventy.js
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ absoluteUrl.js
│   │   │       ā”œā”€ā”€ dateRfc3339.js
│   │   │       ā”œā”€ā”€ dateRfc822.js
│   │   │       ā”œā”€ā”€ getNewestCollectionItemDate.js
│   │   │       ā”œā”€ā”€ htmlToAbsoluteUrls.js
│   │   │       ā”œā”€ā”€ rssPlugin.js
│   │   │       └── virtualTemplate.js
│   │   ā”œā”€ā”€ eleventy-plugin-syntaxhighlight
│   │   │   ā”œā”€ā”€ .editorconfig
│   │   │   ā”œā”€ā”€ .eleventy.js
│   │   │   ā”œā”€ā”€ .eleventyignore
│   │   │   ā”œā”€ā”€ .eslintrc.js
│   │   │   ā”œā”€ā”€ .gitattributes
│   │   │   ā”œā”€ā”€ .github
│   │   │   │   └── workflows
│   │   │   │       ā”œā”€ā”€ ci.yml
│   │   │   │       └── release.yml
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ demo
│   │   │   │   ā”œā”€ā”€ eleventy-config.js
│   │   │   │   ā”œā”€ā”€ prism-theme.css
│   │   │   │   ā”œā”€ā”€ test-liquid.liquid
│   │   │   │   ā”œā”€ā”€ test-markdown.md
│   │   │   │   ā”œā”€ā”€ test-nunjucks.njk
│   │   │   │   └── test.css
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ src
│   │   │   │   ā”œā”€ā”€ HighlightLines.js
│   │   │   │   ā”œā”€ā”€ HighlightLinesGroup.js
│   │   │   │   ā”œā”€ā”€ HighlightPairedShortcode.js
│   │   │   │   ā”œā”€ā”€ LiquidHighlightTag.js
│   │   │   │   ā”œā”€ā”€ PrismLoader.js
│   │   │   │   ā”œā”€ā”€ PrismNormalizeAlias.js
│   │   │   │   ā”œā”€ā”€ getAttributes.js
│   │   │   │   ā”œā”€ā”€ hasTemplateFormat.js
│   │   │   │   └── markdownSyntaxHighlightOptions.js
│   │   │   ā”œā”€ā”€ syntax-highlight.webc
│   │   │   └── test
│   │   │       ā”œā”€ā”€ 11tyjs-diff
│   │   │       │   ā”œā”€ā”€ .eleventy.js
│   │   │       │   └── test.11ty.js
│   │   │       ā”œā”€ā”€ 11tyjs-test
│   │   │       │   ā”œā”€ā”€ .eleventy.js
│   │   │       │   └── test.11ty.js
│   │   │       ā”œā”€ā”€ EleventyTest.mjs
│   │   │       ā”œā”€ā”€ GetAttributesTest.js
│   │   │       ā”œā”€ā”€ HasTemplateFormatTest.js
│   │   │       ā”œā”€ā”€ HighlightLinesGroupTest.js
│   │   │       ā”œā”€ā”€ HighlightLinesTest.js
│   │   │       ā”œā”€ā”€ HighlightPairedShortcodeTest.js
│   │   │       ā”œā”€ā”€ JavaScriptFunctionTest.mjs
│   │   │       ā”œā”€ā”€ LiquidHighlightTagTest.js
│   │   │       ā”œā”€ā”€ MarkdownHighlightTest.js
│   │   │       ā”œā”€ā”€ issue-75
│   │   │       │   ā”œā”€ā”€ .eleventy.js
│   │   │       │   └── index.njk
│   │   │       └── issue-80
│   │   │           ā”œā”€ā”€ .eleventy.js
│   │   │           └── index.md
│   │   ā”œā”€ā”€ eleventy-plugin-webc
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ eleventyWebcPlugin.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ eleventyWebcTemplate.js
│   │   │       └── eleventyWebcTransform.js
│   │   ā”œā”€ā”€ eleventy-utils
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ Buffer.js
│   │   │       ā”œā”€ā”€ CreateHash.js
│   │   │       ā”œā”€ā”€ DateCompare.js
│   │   │       ā”œā”€ā”€ HashTypes.js
│   │   │       ā”œā”€ā”€ IsPlainObject.js
│   │   │       ā”œā”€ā”€ Merge.js
│   │   │       ā”œā”€ā”€ TemplatePath.js
│   │   │       ā”œā”€ā”€ Url.js
│   │   │       └── lib-sha256.js
│   │   ā”œā”€ā”€ font-awesome
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ plugin.js
│   │   │   └── src
│   │   │       ā”œā”€ā”€ get-prefixes.js
│   │   │       ā”œā”€ā”€ icon-to-html.js
│   │   │       ā”œā”€ā”€ prefixes.js
│   │   │       └── transform.js
│   │   ā”œā”€ā”€ gray-matter
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ gray-matter.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   ā”œā”€ā”€ defaults.js
│   │   │   │   ā”œā”€ā”€ engine.js
│   │   │   │   ā”œā”€ā”€ engines.js
│   │   │   │   ā”œā”€ā”€ excerpt.js
│   │   │   │   ā”œā”€ā”€ parse.js
│   │   │   │   ā”œā”€ā”€ stringify.js
│   │   │   │   ā”œā”€ā”€ to-file.js
│   │   │   │   └── utils.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ image-color
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ image-color.js
│   │   │   ā”œā”€ā”€ node_modules
│   │   │   │   ā”œā”€ā”€ eventemitter3
│   │   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   │   ā”œā”€ā”€ eventemitter3.esm.js
│   │   │   │   │   │   ā”œā”€ā”€ eventemitter3.esm.min.js
│   │   │   │   │   │   ā”œā”€ā”€ eventemitter3.esm.min.js.map
│   │   │   │   │   │   ā”œā”€ā”€ eventemitter3.umd.js
│   │   │   │   │   │   ā”œā”€ā”€ eventemitter3.umd.min.js
│   │   │   │   │   │   └── eventemitter3.umd.min.js.map
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   │   └── package.json
│   │   │   │   ā”œā”€ā”€ p-queue
│   │   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   │   ā”œā”€ā”€ lower-bound.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ lower-bound.js
│   │   │   │   │   │   ā”œā”€ā”€ options.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ options.js
│   │   │   │   │   │   ā”œā”€ā”€ priority-queue.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ priority-queue.js
│   │   │   │   │   │   ā”œā”€ā”€ queue.d.ts
│   │   │   │   │   │   └── queue.js
│   │   │   │   │   ā”œā”€ā”€ license
│   │   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   │   └── readme.md
│   │   │   │   └── p-timeout
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ license
│   │   │   │       ā”œā”€ā”€ package.json
│   │   │   │       └── readme.md
│   │   │   └── package.json
│   │   ā”œā”€ā”€ import
│   │   │   ā”œā”€ā”€ .husky
│   │   │   │   └── pre-commit
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ cli.js
│   │   │   ā”œā”€ā”€ node_modules
│   │   │   │   └── entities
│   │   │   │       ā”œā”€ā”€ LICENSE
│   │   │   │       ā”œā”€ā”€ dist
│   │   │   │       │   ā”œā”€ā”€ commonjs
│   │   │   │       │   │   ā”œā”€ā”€ decode-codepoint.d.ts
│   │   │   │       │   │   ā”œā”€ā”€ decode-codepoint.d.ts.map
│   │   │   │       │   │   ā”œā”€ā”€ decode-codepoint.js
│   │   │   │       │   │   ā”œā”€ā”€ decode-codepoint.js.map
│   │   │   │       │   │   ā”œā”€ā”€ decode.d.ts
│   │   │   │       │   │   ā”œā”€ā”€ decode.d.ts.map
│   │   │   │       │   │   ā”œā”€ā”€ decode.js
│   │   │   │       │   │   ā”œā”€ā”€ decode.js.map
│   │   │   │       │   │   ā”œā”€ā”€ encode.d.ts
│   │   │   │       │   │   ā”œā”€ā”€ encode.d.ts.map
│   │   │   │       │   │   ā”œā”€ā”€ encode.js
│   │   │   │       │   │   ā”œā”€ā”€ encode.js.map
│   │   │   │       │   │   ā”œā”€ā”€ escape.d.ts
│   │   │   │       │   │   ā”œā”€ā”€ escape.d.ts.map
│   │   │   │       │   │   ā”œā”€ā”€ escape.js
│   │   │   │       │   │   ā”œā”€ā”€ escape.js.map
│   │   │   │       │   │   ā”œā”€ā”€ generated
│   │   │   │       │   │   │   ā”œā”€ā”€ decode-data-html.d.ts
│   │   │   │       │   │   │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │   │   │       │   │   │   ā”œā”€ā”€ decode-data-html.js
│   │   │   │       │   │   │   ā”œā”€ā”€ decode-data-html.js.map
│   │   │   │       │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │   │   │       │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │   │   │       │   │   │   ā”œā”€ā”€ decode-data-xml.js
│   │   │   │       │   │   │   ā”œā”€ā”€ decode-data-xml.js.map
│   │   │   │       │   │   │   ā”œā”€ā”€ encode-html.d.ts
│   │   │   │       │   │   │   ā”œā”€ā”€ encode-html.d.ts.map
│   │   │   │       │   │   │   ā”œā”€ā”€ encode-html.js
│   │   │   │       │   │   │   └── encode-html.js.map
│   │   │   │       │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │       │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │       │   │   ā”œā”€ā”€ index.js
│   │   │   │       │   │   ā”œā”€ā”€ index.js.map
│   │   │   │       │   │   └── package.json
│   │   │   │       │   └── esm
│   │   │   │       │       ā”œā”€ā”€ decode-codepoint.d.ts
│   │   │   │       │       ā”œā”€ā”€ decode-codepoint.d.ts.map
│   │   │   │       │       ā”œā”€ā”€ decode-codepoint.js
│   │   │   │       │       ā”œā”€ā”€ decode-codepoint.js.map
│   │   │   │       │       ā”œā”€ā”€ decode.d.ts
│   │   │   │       │       ā”œā”€ā”€ decode.d.ts.map
│   │   │   │       │       ā”œā”€ā”€ decode.js
│   │   │   │       │       ā”œā”€ā”€ decode.js.map
│   │   │   │       │       ā”œā”€ā”€ encode.d.ts
│   │   │   │       │       ā”œā”€ā”€ encode.d.ts.map
│   │   │   │       │       ā”œā”€ā”€ encode.js
│   │   │   │       │       ā”œā”€ā”€ encode.js.map
│   │   │   │       │       ā”œā”€ā”€ escape.d.ts
│   │   │   │       │       ā”œā”€ā”€ escape.d.ts.map
│   │   │   │       │       ā”œā”€ā”€ escape.js
│   │   │   │       │       ā”œā”€ā”€ escape.js.map
│   │   │   │       │       ā”œā”€ā”€ generated
│   │   │   │       │       │   ā”œā”€ā”€ decode-data-html.d.ts
│   │   │   │       │       │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │   │   │       │       │   ā”œā”€ā”€ decode-data-html.js
│   │   │   │       │       │   ā”œā”€ā”€ decode-data-html.js.map
│   │   │   │       │       │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │   │   │       │       │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │   │   │       │       │   ā”œā”€ā”€ decode-data-xml.js
│   │   │   │       │       │   ā”œā”€ā”€ decode-data-xml.js.map
│   │   │   │       │       │   ā”œā”€ā”€ encode-html.d.ts
│   │   │   │       │       │   ā”œā”€ā”€ encode-html.d.ts.map
│   │   │   │       │       │   ā”œā”€ā”€ encode-html.js
│   │   │   │       │       │   └── encode-html.js.map
│   │   │   │       │       ā”œā”€ā”€ index.d.ts
│   │   │   │       │       ā”œā”€ā”€ index.d.ts.map
│   │   │   │       │       ā”œā”€ā”€ index.js
│   │   │   │       │       ā”œā”€ā”€ index.js.map
│   │   │   │       │       └── package.json
│   │   │   │       ā”œā”€ā”€ package.json
│   │   │   │       ā”œā”€ā”€ readme.md
│   │   │   │       └── src
│   │   │   │           ā”œā”€ā”€ decode-codepoint.ts
│   │   │   │           ā”œā”€ā”€ decode.spec.ts
│   │   │   │           ā”œā”€ā”€ decode.ts
│   │   │   │           ā”œā”€ā”€ encode.spec.ts
│   │   │   │           ā”œā”€ā”€ encode.ts
│   │   │   │           ā”œā”€ā”€ escape.spec.ts
│   │   │   │           ā”œā”€ā”€ escape.ts
│   │   │   │           ā”œā”€ā”€ generated
│   │   │   │           │   ā”œā”€ā”€ .eslintrc.json
│   │   │   │           │   ā”œā”€ā”€ decode-data-html.ts
│   │   │   │           │   ā”œā”€ā”€ decode-data-xml.ts
│   │   │   │           │   └── encode-html.ts
│   │   │   │           ā”œā”€ā”€ index.spec.ts
│   │   │   │           └── index.ts
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ DataSource
│   │   │       │   ā”œā”€ā”€ Atom.js
│   │   │       │   ā”œā”€ā”€ BlueskyUser.js
│   │   │       │   ā”œā”€ā”€ FediverseUser.js
│   │   │       │   ā”œā”€ā”€ HostedWordPressApi.js
│   │   │       │   ā”œā”€ā”€ Rss.js
│   │   │       │   ā”œā”€ā”€ WordPressApi.js
│   │   │       │   └── YouTubeUser.js
│   │   │       ā”œā”€ā”€ DataSource.js
│   │   │       ā”œā”€ā”€ DirectoryManager.js
│   │   │       ā”œā”€ā”€ Fetcher.js
│   │   │       ā”œā”€ā”€ HtmlTransformer.js
│   │   │       ā”œā”€ā”€ Importer.js
│   │   │       ā”œā”€ā”€ Logger.js
│   │   │       ā”œā”€ā”€ MarkdownToHtml.js
│   │   │       ā”œā”€ā”€ Persist.js
│   │   │       └── Utils.js
│   │   ā”œā”€ā”€ is-land
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   └── is-land.min.js
│   │   │   ā”œā”€ā”€ is-land.js
│   │   │   ā”œā”€ā”€ is-land.webc
│   │   │   └── package.json
│   │   ā”œā”€ā”€ lodash-custom
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ lodash.custom.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ logo
│   │   │   ā”œā”€ā”€ .eleventy.js
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ assets
│   │   │   │   ā”œā”€ā”€ logo-bg.svg
│   │   │   │   └── open-graph.jpg
│   │   │   ā”œā”€ā”€ img
│   │   │   │   ā”œā”€ā”€ logo-1569x2186.png
│   │   │   │   ā”œā”€ā”€ logo-200x200.png
│   │   │   │   ā”œā”€ā”€ logo-300x418.png
│   │   │   │   ā”œā”€ā”€ logo-400x400.png
│   │   │   │   ā”œā”€ā”€ logo-784x1093.png
│   │   │   │   ā”œā”€ā”€ logo-800x800.png
│   │   │   │   ā”œā”€ā”€ logo-96x96.png
│   │   │   │   └── logo.svg
│   │   │   ā”œā”€ā”€ logo.njk
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       └── image.js
│   │   ā”œā”€ā”€ parse-date-strings
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── parse.js
│   │   ā”œā”€ā”€ posthtml-urls
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   ā”œā”€ā”€ defaultOptions.js
│   │   │   │   └── index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ recursive-copy
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   └── copy.js
│   │   │   └── package.json
│   │   └── webc
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ node_modules
│   │       │   ā”œā”€ā”€ .bin
│   │       │   │   └── nanoid -> ../nanoid/bin/nanoid.js
│   │       │   ā”œā”€ā”€ @11ty
│   │       │   │   └── eleventy-utils
│   │       │   │       ā”œā”€ā”€ LICENSE
│   │       │   │       ā”œā”€ā”€ README.md
│   │       │   │       ā”œā”€ā”€ index.js
│   │       │   │       ā”œā”€ā”€ package.json
│   │       │   │       └── src
│   │       │   │           ā”œā”€ā”€ IsPlainObject.js
│   │       │   │           ā”œā”€ā”€ Merge.js
│   │       │   │           └── TemplatePath.js
│   │       │   ā”œā”€ā”€ dependency-graph
│   │       │   │   ā”œā”€ā”€ CHANGELOG.md
│   │       │   │   ā”œā”€ā”€ LICENSE
│   │       │   │   ā”œā”€ā”€ README.md
│   │       │   │   ā”œā”€ā”€ lib
│   │       │   │   │   ā”œā”€ā”€ dep_graph.js
│   │       │   │   │   └── index.d.ts
│   │       │   │   ā”œā”€ā”€ package.json
│   │       │   │   └── specs
│   │       │   │       └── dep_graph_spec.js
│   │       │   ā”œā”€ā”€ entities
│   │       │   │   ā”œā”€ā”€ LICENSE
│   │       │   │   ā”œā”€ā”€ lib
│   │       │   │   │   ā”œā”€ā”€ decode.d.ts
│   │       │   │   │   ā”œā”€ā”€ decode.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ decode.js
│   │       │   │   │   ā”œā”€ā”€ decode.js.map
│   │       │   │   │   ā”œā”€ā”€ decode_codepoint.d.ts
│   │       │   │   │   ā”œā”€ā”€ decode_codepoint.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ decode_codepoint.js
│   │       │   │   │   ā”œā”€ā”€ decode_codepoint.js.map
│   │       │   │   │   ā”œā”€ā”€ encode.d.ts
│   │       │   │   │   ā”œā”€ā”€ encode.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ encode.js
│   │       │   │   │   ā”œā”€ā”€ encode.js.map
│   │       │   │   │   ā”œā”€ā”€ escape.d.ts
│   │       │   │   │   ā”œā”€ā”€ escape.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ escape.js
│   │       │   │   │   ā”œā”€ā”€ escape.js.map
│   │       │   │   │   ā”œā”€ā”€ esm
│   │       │   │   │   │   ā”œā”€ā”€ decode.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ decode.d.ts.map
│   │       │   │   │   │   ā”œā”€ā”€ decode.js
│   │       │   │   │   │   ā”œā”€ā”€ decode.js.map
│   │       │   │   │   │   ā”œā”€ā”€ decode_codepoint.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ decode_codepoint.d.ts.map
│   │       │   │   │   │   ā”œā”€ā”€ decode_codepoint.js
│   │       │   │   │   │   ā”œā”€ā”€ decode_codepoint.js.map
│   │       │   │   │   │   ā”œā”€ā”€ encode.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ encode.d.ts.map
│   │       │   │   │   │   ā”œā”€ā”€ encode.js
│   │       │   │   │   │   ā”œā”€ā”€ encode.js.map
│   │       │   │   │   │   ā”œā”€ā”€ escape.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ escape.d.ts.map
│   │       │   │   │   │   ā”œā”€ā”€ escape.js
│   │       │   │   │   │   ā”œā”€ā”€ escape.js.map
│   │       │   │   │   │   ā”œā”€ā”€ generated
│   │       │   │   │   │   │   ā”œā”€ā”€ decode-data-html.d.ts
│   │       │   │   │   │   │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │       │   │   │   │   │   ā”œā”€ā”€ decode-data-html.js
│   │       │   │   │   │   │   ā”œā”€ā”€ decode-data-html.js.map
│   │       │   │   │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │       │   │   │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │       │   │   │   │   │   ā”œā”€ā”€ decode-data-xml.js
│   │       │   │   │   │   │   ā”œā”€ā”€ decode-data-xml.js.map
│   │       │   │   │   │   │   ā”œā”€ā”€ encode-html.d.ts
│   │       │   │   │   │   │   ā”œā”€ā”€ encode-html.d.ts.map
│   │       │   │   │   │   │   ā”œā”€ā”€ encode-html.js
│   │       │   │   │   │   │   └── encode-html.js.map
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │       │   │   │   │   ā”œā”€ā”€ index.js
│   │       │   │   │   │   ā”œā”€ā”€ index.js.map
│   │       │   │   │   │   └── package.json
│   │       │   │   │   ā”œā”€ā”€ generated
│   │       │   │   │   │   ā”œā”€ā”€ decode-data-html.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │       │   │   │   │   ā”œā”€ā”€ decode-data-html.js
│   │       │   │   │   │   ā”œā”€ā”€ decode-data-html.js.map
│   │       │   │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │       │   │   │   │   ā”œā”€ā”€ decode-data-xml.js
│   │       │   │   │   │   ā”œā”€ā”€ decode-data-xml.js.map
│   │       │   │   │   │   ā”œā”€ā”€ encode-html.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ encode-html.d.ts.map
│   │       │   │   │   │   ā”œā”€ā”€ encode-html.js
│   │       │   │   │   │   └── encode-html.js.map
│   │       │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ index.js
│   │       │   │   │   └── index.js.map
│   │       │   │   ā”œā”€ā”€ package.json
│   │       │   │   └── readme.md
│   │       │   ā”œā”€ā”€ nanoid
│   │       │   │   ā”œā”€ā”€ LICENSE
│   │       │   │   ā”œā”€ā”€ README.md
│   │       │   │   ā”œā”€ā”€ async
│   │       │   │   │   ā”œā”€ā”€ index.browser.js
│   │       │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   ā”œā”€ā”€ index.js
│   │       │   │   │   └── index.native.js
│   │       │   │   ā”œā”€ā”€ bin
│   │       │   │   │   └── nanoid.js
│   │       │   │   ā”œā”€ā”€ index.browser.js
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ nanoid.js
│   │       │   │   ā”œā”€ā”€ non-secure
│   │       │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   └── index.js
│   │       │   │   ā”œā”€ā”€ package.json
│   │       │   │   └── url-alphabet
│   │       │   │       └── index.js
│   │       │   └── node-retrieve-globals
│   │       │       ā”œā”€ā”€ .github
│   │       │       │   └── workflows
│   │       │       │       └── ci.yml
│   │       │       ā”œā”€ā”€ LICENSE
│   │       │       ā”œā”€ā”€ README.md
│   │       │       ā”œā”€ā”€ package.json
│   │       │       ā”œā”€ā”€ retrieveGlobals.cjs
│   │       │       └── test
│   │       │           └── test.js
│   │       ā”œā”€ā”€ package.json
│   │       ā”œā”€ā”€ src
│   │       │   ā”œā”€ā”€ assetManager.js
│   │       │   ā”œā”€ā”€ ast.js
│   │       │   ā”œā”€ā”€ astCache.js
│   │       │   ā”œā”€ā”€ astModify.js
│   │       │   ā”œā”€ā”€ astQuery.js
│   │       │   ā”œā”€ā”€ attributeSerializer.js
│   │       │   ā”œā”€ā”€ componentManager.js
│   │       │   ā”œā”€ā”€ css.js
│   │       │   ā”œā”€ā”€ dataCascade.js
│   │       │   ā”œā”€ā”€ fasterVmContext.cjs
│   │       │   ā”œā”€ā”€ fsCache.js
│   │       │   ā”œā”€ā”€ looping.js
│   │       │   ā”œā”€ā”€ moduleResolution.js
│   │       │   ā”œā”€ā”€ moduleScript.cjs
│   │       │   ā”œā”€ā”€ path.js
│   │       │   ā”œā”€ā”€ proxyData.cjs
│   │       │   ā”œā”€ā”€ streams.js
│   │       │   └── util.js
│   │       └── webc.js
│   ā”œā”€ā”€ @ampproject
│   │   └── remapping
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ remapping.mjs
│   │       │   ā”œā”€ā”€ remapping.mjs.map
│   │       │   ā”œā”€ā”€ remapping.umd.js
│   │       │   ā”œā”€ā”€ remapping.umd.js.map
│   │       │   └── types
│   │       │       ā”œā”€ā”€ build-source-map-tree.d.ts
│   │       │       ā”œā”€ā”€ remapping.d.ts
│   │       │       ā”œā”€ā”€ source-map-tree.d.ts
│   │       │       ā”œā”€ā”€ source-map.d.ts
│   │       │       └── types.d.ts
│   │       └── package.json
│   ā”œā”€ā”€ @antfu
│   │   ā”œā”€ā”€ install-pkg
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ node_modules
│   │   │   │   └── tinyexec
│   │   │   │       ā”œā”€ā”€ LICENSE
│   │   │   │       ā”œā”€ā”€ README.md
│   │   │   │       ā”œā”€ā”€ dist
│   │   │   │       │   ā”œā”€ā”€ main.d.ts
│   │   │   │       │   └── main.js
│   │   │   │       └── package.json
│   │   │   └── package.json
│   │   └── utils
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ index.cjs
│   │       │   ā”œā”€ā”€ index.d.cts
│   │       │   ā”œā”€ā”€ index.d.mts
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   └── index.mjs
│   │       └── package.json
│   ā”œā”€ā”€ @babel
│   │   ā”œā”€ā”€ helper-string-parser
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── index.js.map
│   │   │   └── package.json
│   │   ā”œā”€ā”€ helper-validator-identifier
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   ā”œā”€ā”€ identifier.js
│   │   │   │   ā”œā”€ā”€ identifier.js.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ keyword.js
│   │   │   │   └── keyword.js.map
│   │   │   └── package.json
│   │   ā”œā”€ā”€ parser
│   │   │   ā”œā”€ā”€ CHANGELOG.md
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ bin
│   │   │   │   └── babel-parser.js
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── index.js.map
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── typings
│   │   │       └── babel-parser.d.ts
│   │   └── types
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ lib
│   │       │   ā”œā”€ā”€ asserts
│   │       │   │   ā”œā”€ā”€ assertNode.js
│   │       │   │   ā”œā”€ā”€ assertNode.js.map
│   │       │   │   └── generated
│   │       │   │       ā”œā”€ā”€ index.js
│   │       │   │       └── index.js.map
│   │       │   ā”œā”€ā”€ ast-types
│   │       │   │   └── generated
│   │       │   │       ā”œā”€ā”€ index.js
│   │       │   │       └── index.js.map
│   │       │   ā”œā”€ā”€ builders
│   │       │   │   ā”œā”€ā”€ flow
│   │       │   │   │   ā”œā”€ā”€ createFlowUnionType.js
│   │       │   │   │   ā”œā”€ā”€ createFlowUnionType.js.map
│   │       │   │   │   ā”œā”€ā”€ createTypeAnnotationBasedOnTypeof.js
│   │       │   │   │   └── createTypeAnnotationBasedOnTypeof.js.map
│   │       │   │   ā”œā”€ā”€ generated
│   │       │   │   │   ā”œā”€ā”€ index.js
│   │       │   │   │   ā”œā”€ā”€ index.js.map
│   │       │   │   │   ā”œā”€ā”€ lowercase.js
│   │       │   │   │   ā”œā”€ā”€ lowercase.js.map
│   │       │   │   │   ā”œā”€ā”€ uppercase.js
│   │       │   │   │   └── uppercase.js.map
│   │       │   │   ā”œā”€ā”€ productions.js
│   │       │   │   ā”œā”€ā”€ productions.js.map
│   │       │   │   ā”œā”€ā”€ react
│   │       │   │   │   ā”œā”€ā”€ buildChildren.js
│   │       │   │   │   └── buildChildren.js.map
│   │       │   │   ā”œā”€ā”€ typescript
│   │       │   │   │   ā”œā”€ā”€ createTSUnionType.js
│   │       │   │   │   └── createTSUnionType.js.map
│   │       │   │   ā”œā”€ā”€ validateNode.js
│   │       │   │   └── validateNode.js.map
│   │       │   ā”œā”€ā”€ clone
│   │       │   │   ā”œā”€ā”€ clone.js
│   │       │   │   ā”œā”€ā”€ clone.js.map
│   │       │   │   ā”œā”€ā”€ cloneDeep.js
│   │       │   │   ā”œā”€ā”€ cloneDeep.js.map
│   │       │   │   ā”œā”€ā”€ cloneDeepWithoutLoc.js
│   │       │   │   ā”œā”€ā”€ cloneDeepWithoutLoc.js.map
│   │       │   │   ā”œā”€ā”€ cloneNode.js
│   │       │   │   ā”œā”€ā”€ cloneNode.js.map
│   │       │   │   ā”œā”€ā”€ cloneWithoutLoc.js
│   │       │   │   └── cloneWithoutLoc.js.map
│   │       │   ā”œā”€ā”€ comments
│   │       │   │   ā”œā”€ā”€ addComment.js
│   │       │   │   ā”œā”€ā”€ addComment.js.map
│   │       │   │   ā”œā”€ā”€ addComments.js
│   │       │   │   ā”œā”€ā”€ addComments.js.map
│   │       │   │   ā”œā”€ā”€ inheritInnerComments.js
│   │       │   │   ā”œā”€ā”€ inheritInnerComments.js.map
│   │       │   │   ā”œā”€ā”€ inheritLeadingComments.js
│   │       │   │   ā”œā”€ā”€ inheritLeadingComments.js.map
│   │       │   │   ā”œā”€ā”€ inheritTrailingComments.js
│   │       │   │   ā”œā”€ā”€ inheritTrailingComments.js.map
│   │       │   │   ā”œā”€ā”€ inheritsComments.js
│   │       │   │   ā”œā”€ā”€ inheritsComments.js.map
│   │       │   │   ā”œā”€ā”€ removeComments.js
│   │       │   │   └── removeComments.js.map
│   │       │   ā”œā”€ā”€ constants
│   │       │   │   ā”œā”€ā”€ generated
│   │       │   │   │   ā”œā”€ā”€ index.js
│   │       │   │   │   └── index.js.map
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   └── index.js.map
│   │       │   ā”œā”€ā”€ converters
│   │       │   │   ā”œā”€ā”€ ensureBlock.js
│   │       │   │   ā”œā”€ā”€ ensureBlock.js.map
│   │       │   │   ā”œā”€ā”€ gatherSequenceExpressions.js
│   │       │   │   ā”œā”€ā”€ gatherSequenceExpressions.js.map
│   │       │   │   ā”œā”€ā”€ toBindingIdentifierName.js
│   │       │   │   ā”œā”€ā”€ toBindingIdentifierName.js.map
│   │       │   │   ā”œā”€ā”€ toBlock.js
│   │       │   │   ā”œā”€ā”€ toBlock.js.map
│   │       │   │   ā”œā”€ā”€ toComputedKey.js
│   │       │   │   ā”œā”€ā”€ toComputedKey.js.map
│   │       │   │   ā”œā”€ā”€ toExpression.js
│   │       │   │   ā”œā”€ā”€ toExpression.js.map
│   │       │   │   ā”œā”€ā”€ toIdentifier.js
│   │       │   │   ā”œā”€ā”€ toIdentifier.js.map
│   │       │   │   ā”œā”€ā”€ toKeyAlias.js
│   │       │   │   ā”œā”€ā”€ toKeyAlias.js.map
│   │       │   │   ā”œā”€ā”€ toSequenceExpression.js
│   │       │   │   ā”œā”€ā”€ toSequenceExpression.js.map
│   │       │   │   ā”œā”€ā”€ toStatement.js
│   │       │   │   ā”œā”€ā”€ toStatement.js.map
│   │       │   │   ā”œā”€ā”€ valueToNode.js
│   │       │   │   └── valueToNode.js.map
│   │       │   ā”œā”€ā”€ definitions
│   │       │   │   ā”œā”€ā”€ core.js
│   │       │   │   ā”œā”€ā”€ core.js.map
│   │       │   │   ā”œā”€ā”€ deprecated-aliases.js
│   │       │   │   ā”œā”€ā”€ deprecated-aliases.js.map
│   │       │   │   ā”œā”€ā”€ experimental.js
│   │       │   │   ā”œā”€ā”€ experimental.js.map
│   │       │   │   ā”œā”€ā”€ flow.js
│   │       │   │   ā”œā”€ā”€ flow.js.map
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ index.js.map
│   │       │   │   ā”œā”€ā”€ jsx.js
│   │       │   │   ā”œā”€ā”€ jsx.js.map
│   │       │   │   ā”œā”€ā”€ misc.js
│   │       │   │   ā”œā”€ā”€ misc.js.map
│   │       │   │   ā”œā”€ā”€ placeholders.js
│   │       │   │   ā”œā”€ā”€ placeholders.js.map
│   │       │   │   ā”œā”€ā”€ typescript.js
│   │       │   │   ā”œā”€ā”€ typescript.js.map
│   │       │   │   ā”œā”€ā”€ utils.js
│   │       │   │   └── utils.js.map
│   │       │   ā”œā”€ā”€ index-legacy.d.ts
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ index.js.flow
│   │       │   ā”œā”€ā”€ index.js.map
│   │       │   ā”œā”€ā”€ modifications
│   │       │   │   ā”œā”€ā”€ appendToMemberExpression.js
│   │       │   │   ā”œā”€ā”€ appendToMemberExpression.js.map
│   │       │   │   ā”œā”€ā”€ flow
│   │       │   │   │   ā”œā”€ā”€ removeTypeDuplicates.js
│   │       │   │   │   └── removeTypeDuplicates.js.map
│   │       │   │   ā”œā”€ā”€ inherits.js
│   │       │   │   ā”œā”€ā”€ inherits.js.map
│   │       │   │   ā”œā”€ā”€ prependToMemberExpression.js
│   │       │   │   ā”œā”€ā”€ prependToMemberExpression.js.map
│   │       │   │   ā”œā”€ā”€ removeProperties.js
│   │       │   │   ā”œā”€ā”€ removeProperties.js.map
│   │       │   │   ā”œā”€ā”€ removePropertiesDeep.js
│   │       │   │   ā”œā”€ā”€ removePropertiesDeep.js.map
│   │       │   │   └── typescript
│   │       │   │       ā”œā”€ā”€ removeTypeDuplicates.js
│   │       │   │       └── removeTypeDuplicates.js.map
│   │       │   ā”œā”€ā”€ retrievers
│   │       │   │   ā”œā”€ā”€ getAssignmentIdentifiers.js
│   │       │   │   ā”œā”€ā”€ getAssignmentIdentifiers.js.map
│   │       │   │   ā”œā”€ā”€ getBindingIdentifiers.js
│   │       │   │   ā”œā”€ā”€ getBindingIdentifiers.js.map
│   │       │   │   ā”œā”€ā”€ getFunctionName.js
│   │       │   │   ā”œā”€ā”€ getFunctionName.js.map
│   │       │   │   ā”œā”€ā”€ getOuterBindingIdentifiers.js
│   │       │   │   └── getOuterBindingIdentifiers.js.map
│   │       │   ā”œā”€ā”€ traverse
│   │       │   │   ā”œā”€ā”€ traverse.js
│   │       │   │   ā”œā”€ā”€ traverse.js.map
│   │       │   │   ā”œā”€ā”€ traverseFast.js
│   │       │   │   └── traverseFast.js.map
│   │       │   ā”œā”€ā”€ utils
│   │       │   │   ā”œā”€ā”€ deprecationWarning.js
│   │       │   │   ā”œā”€ā”€ deprecationWarning.js.map
│   │       │   │   ā”œā”€ā”€ inherit.js
│   │       │   │   ā”œā”€ā”€ inherit.js.map
│   │       │   │   ā”œā”€ā”€ react
│   │       │   │   │   ā”œā”€ā”€ cleanJSXElementLiteralChild.js
│   │       │   │   │   └── cleanJSXElementLiteralChild.js.map
│   │       │   │   ā”œā”€ā”€ shallowEqual.js
│   │       │   │   └── shallowEqual.js.map
│   │       │   └── validators
│   │       │       ā”œā”€ā”€ buildMatchMemberExpression.js
│   │       │       ā”œā”€ā”€ buildMatchMemberExpression.js.map
│   │       │       ā”œā”€ā”€ generated
│   │       │       │   ā”œā”€ā”€ index.js
│   │       │       │   └── index.js.map
│   │       │       ā”œā”€ā”€ is.js
│   │       │       ā”œā”€ā”€ is.js.map
│   │       │       ā”œā”€ā”€ isBinding.js
│   │       │       ā”œā”€ā”€ isBinding.js.map
│   │       │       ā”œā”€ā”€ isBlockScoped.js
│   │       │       ā”œā”€ā”€ isBlockScoped.js.map
│   │       │       ā”œā”€ā”€ isImmutable.js
│   │       │       ā”œā”€ā”€ isImmutable.js.map
│   │       │       ā”œā”€ā”€ isLet.js
│   │       │       ā”œā”€ā”€ isLet.js.map
│   │       │       ā”œā”€ā”€ isNode.js
│   │       │       ā”œā”€ā”€ isNode.js.map
│   │       │       ā”œā”€ā”€ isNodesEquivalent.js
│   │       │       ā”œā”€ā”€ isNodesEquivalent.js.map
│   │       │       ā”œā”€ā”€ isPlaceholderType.js
│   │       │       ā”œā”€ā”€ isPlaceholderType.js.map
│   │       │       ā”œā”€ā”€ isReferenced.js
│   │       │       ā”œā”€ā”€ isReferenced.js.map
│   │       │       ā”œā”€ā”€ isScope.js
│   │       │       ā”œā”€ā”€ isScope.js.map
│   │       │       ā”œā”€ā”€ isSpecifierDefault.js
│   │       │       ā”œā”€ā”€ isSpecifierDefault.js.map
│   │       │       ā”œā”€ā”€ isType.js
│   │       │       ā”œā”€ā”€ isType.js.map
│   │       │       ā”œā”€ā”€ isValidES3Identifier.js
│   │       │       ā”œā”€ā”€ isValidES3Identifier.js.map
│   │       │       ā”œā”€ā”€ isValidIdentifier.js
│   │       │       ā”œā”€ā”€ isValidIdentifier.js.map
│   │       │       ā”œā”€ā”€ isVar.js
│   │       │       ā”œā”€ā”€ isVar.js.map
│   │       │       ā”œā”€ā”€ matchesPattern.js
│   │       │       ā”œā”€ā”€ matchesPattern.js.map
│   │       │       ā”œā”€ā”€ react
│   │       │       │   ā”œā”€ā”€ isCompatTag.js
│   │       │       │   ā”œā”€ā”€ isCompatTag.js.map
│   │       │       │   ā”œā”€ā”€ isReactComponent.js
│   │       │       │   └── isReactComponent.js.map
│   │       │       ā”œā”€ā”€ validate.js
│   │       │       └── validate.js.map
│   │       └── package.json
│   ā”œā”€ā”€ @bcoe
│   │   └── v8-coverage
│   │       ā”œā”€ā”€ LICENSE.md
│   │       ā”œā”€ā”€ LICENSE.txt
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ package.json
│   │       └── src
│   │           └── lib
│   │               ā”œā”€ā”€ ascii.js
│   │               ā”œā”€ā”€ clone.js
│   │               ā”œā”€ā”€ compare.js
│   │               ā”œā”€ā”€ index.js
│   │               ā”œā”€ā”€ merge.js
│   │               ā”œā”€ā”€ normalize.js
│   │               └── range-tree.js
│   ā”œā”€ā”€ @braintree
│   │   └── sanitize-url
│   │       ā”œā”€ā”€ .eslintignore
│   │       ā”œā”€ā”€ .eslintrc
│   │       ā”œā”€ā”€ .github
│   │       │   ā”œā”€ā”€ CODEOWNERS
│   │       │   └── workflows
│   │       │       └── ci.yml
│   │       ā”œā”€ā”€ .nvmrc
│   │       ā”œā”€ā”€ .prettierignore
│   │       ā”œā”€ā”€ CHANGELOG.md
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ constants.d.ts
│   │       │   ā”œā”€ā”€ constants.js
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   └── index.js
│   │       ā”œā”€ā”€ package.json
│   │       ā”œā”€ā”€ src
│   │       │   ā”œā”€ā”€ __tests__
│   │       │   │   └── index.test.ts
│   │       │   ā”œā”€ā”€ constants.ts
│   │       │   └── index.ts
│   │       ā”œā”€ā”€ tsconfig.json
│   │       └── vitest.config.ts
│   ā”œā”€ā”€ @chevrotain
│   │   ā”œā”€ā”€ cst-dts-gen
│   │   │   ā”œā”€ā”€ LICENSE.txt
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ api.d.ts
│   │   │   │       ā”œā”€ā”€ api.js
│   │   │   │       ā”œā”€ā”€ api.js.map
│   │   │   │       ā”œā”€ā”€ generate.d.ts
│   │   │   │       ā”œā”€ā”€ generate.js
│   │   │   │       ā”œā”€ā”€ generate.js.map
│   │   │   │       ā”œā”€ā”€ model.d.ts
│   │   │   │       ā”œā”€ā”€ model.js
│   │   │   │       └── model.js.map
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ api.ts
│   │   │       ā”œā”€ā”€ generate.ts
│   │   │       └── model.ts
│   │   ā”œā”€ā”€ gast
│   │   │   ā”œā”€ā”€ LICENSE.txt
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ api.d.ts
│   │   │   │       ā”œā”€ā”€ api.js
│   │   │   │       ā”œā”€ā”€ api.js.map
│   │   │   │       ā”œā”€ā”€ helpers.d.ts
│   │   │   │       ā”œā”€ā”€ helpers.js
│   │   │   │       ā”œā”€ā”€ helpers.js.map
│   │   │   │       ā”œā”€ā”€ model.d.ts
│   │   │   │       ā”œā”€ā”€ model.js
│   │   │   │       ā”œā”€ā”€ model.js.map
│   │   │   │       ā”œā”€ā”€ visitor.d.ts
│   │   │   │       ā”œā”€ā”€ visitor.js
│   │   │   │       └── visitor.js.map
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ api.ts
│   │   │       ā”œā”€ā”€ helpers.ts
│   │   │       ā”œā”€ā”€ model.ts
│   │   │       └── visitor.ts
│   │   ā”œā”€ā”€ regexp-to-ast
│   │   │   ā”œā”€ā”€ LICENSE.txt
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ api.js
│   │   │   │       ā”œā”€ā”€ api.js.map
│   │   │   │       ā”œā”€ā”€ base-regexp-visitor.js
│   │   │   │       ā”œā”€ā”€ base-regexp-visitor.js.map
│   │   │   │       ā”œā”€ā”€ character-classes.js
│   │   │   │       ā”œā”€ā”€ character-classes.js.map
│   │   │   │       ā”œā”€ā”€ regexp-parser.js
│   │   │   │       ā”œā”€ā”€ regexp-parser.js.map
│   │   │   │       ā”œā”€ā”€ utils.js
│   │   │   │       └── utils.js.map
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ src
│   │   │   │   ā”œā”€ā”€ api.ts
│   │   │   │   ā”œā”€ā”€ base-regexp-visitor.ts
│   │   │   │   ā”œā”€ā”€ character-classes.ts
│   │   │   │   ā”œā”€ā”€ regexp-parser.ts
│   │   │   │   └── utils.ts
│   │   │   └── types.d.ts
│   │   ā”œā”€ā”€ types
│   │   │   ā”œā”€ā”€ LICENSE.txt
│   │   │   ā”œā”€ā”€ api.d.ts
│   │   │   └── package.json
│   │   └── utils
│   │       ā”œā”€ā”€ LICENSE.txt
│   │       ā”œā”€ā”€ lib
│   │       │   └── src
│   │       │       ā”œā”€ā”€ api.d.ts
│   │       │       ā”œā”€ā”€ api.js
│   │       │       ā”œā”€ā”€ api.js.map
│   │       │       ā”œā”€ā”€ print.d.ts
│   │       │       ā”œā”€ā”€ print.js
│   │       │       ā”œā”€ā”€ print.js.map
│   │       │       ā”œā”€ā”€ timer.d.ts
│   │       │       ā”œā”€ā”€ timer.js
│   │       │       ā”œā”€ā”€ timer.js.map
│   │       │       ā”œā”€ā”€ to-fast-properties.d.ts
│   │       │       ā”œā”€ā”€ to-fast-properties.js
│   │       │       └── to-fast-properties.js.map
│   │       ā”œā”€ā”€ package.json
│   │       └── src
│   │           ā”œā”€ā”€ api.ts
│   │           ā”œā”€ā”€ print.ts
│   │           ā”œā”€ā”€ timer.ts
│   │           └── to-fast-properties.ts
│   ā”œā”€ā”€ @cloudflare
│   │   ā”œā”€ā”€ kv-asset-handler
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ mocks.d.ts
│   │   │   │   ā”œā”€ā”€ mocks.js
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   └── types.js
│   │   │   ā”œā”€ā”€ node_modules
│   │   │   │   ā”œā”€ā”€ .bin
│   │   │   │   │   └── mime -> ../mime/cli.js
│   │   │   │   └── mime
│   │   │   │       ā”œā”€ā”€ CHANGELOG.md
│   │   │   │       ā”œā”€ā”€ LICENSE
│   │   │   │       ā”œā”€ā”€ Mime.js
│   │   │   │       ā”œā”€ā”€ README.md
│   │   │   │       ā”œā”€ā”€ cli.js
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ lite.js
│   │   │   │       ā”œā”€ā”€ package.json
│   │   │   │       └── types
│   │   │   │           ā”œā”€ā”€ other.js
│   │   │   │           └── standard.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ index.ts
│   │   │       ā”œā”€ā”€ mocks.ts
│   │   │       └── types.ts
│   │   ā”œā”€ā”€ unenv-preset
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   └── runtime
│   │   │   │       ā”œā”€ā”€ node
│   │   │   │       │   ā”œā”€ā”€ console.d.ts
│   │   │   │       │   ā”œā”€ā”€ console.mjs
│   │   │   │       │   ā”œā”€ā”€ crypto.d.ts
│   │   │   │       │   ā”œā”€ā”€ crypto.mjs
│   │   │   │       │   ā”œā”€ā”€ http.d.ts
│   │   │   │       │   ā”œā”€ā”€ http.mjs
│   │   │   │       │   ā”œā”€ā”€ https.d.ts
│   │   │   │       │   ā”œā”€ā”€ https.mjs
│   │   │   │       │   ā”œā”€ā”€ module.d.ts
│   │   │   │       │   ā”œā”€ā”€ module.mjs
│   │   │   │       │   ā”œā”€ā”€ process.d.ts
│   │   │   │       │   ā”œā”€ā”€ process.mjs
│   │   │   │       │   ā”œā”€ā”€ tls.d.ts
│   │   │   │       │   ā”œā”€ā”€ tls.mjs
│   │   │   │       │   ā”œā”€ā”€ util.d.ts
│   │   │   │       │   └── util.mjs
│   │   │   │       ā”œā”€ā”€ npm
│   │   │   │       │   ā”œā”€ā”€ debug.d.mts
│   │   │   │       │   ā”œā”€ā”€ debug.d.ts
│   │   │   │       │   └── debug.mjs
│   │   │   │       └── polyfill
│   │   │   │           ā”œā”€ā”€ package.json
│   │   │   │           ā”œā”€ā”€ performance.d.ts
│   │   │   │           └── performance.mjs
│   │   │   └── package.json
│   │   └── workerd-linux-64
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ bin
│   │       │   └── workerd
│   │       └── package.json
│   ā”œā”€ā”€ @cspotcode
│   │   └── source-map-support
│   │       ā”œā”€ā”€ LICENSE.md
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ browser-source-map-support.js
│   │       ā”œā”€ā”€ node_modules
│   │       │   └── @jridgewell
│   │       │       └── trace-mapping
│   │       │           ā”œā”€ā”€ LICENSE
│   │       │           ā”œā”€ā”€ README.md
│   │       │           ā”œā”€ā”€ dist
│   │       │           │   ā”œā”€ā”€ trace-mapping.mjs
│   │       │           │   ā”œā”€ā”€ trace-mapping.mjs.map
│   │       │           │   ā”œā”€ā”€ trace-mapping.umd.js
│   │       │           │   ā”œā”€ā”€ trace-mapping.umd.js.map
│   │       │           │   └── types
│   │       │           │       ā”œā”€ā”€ any-map.d.ts
│   │       │           │       ā”œā”€ā”€ binary-search.d.ts
│   │       │           │       ā”œā”€ā”€ by-source.d.ts
│   │       │           │       ā”œā”€ā”€ resolve.d.ts
│   │       │           │       ā”œā”€ā”€ sort.d.ts
│   │       │           │       ā”œā”€ā”€ sourcemap-segment.d.ts
│   │       │           │       ā”œā”€ā”€ strip-filename.d.ts
│   │       │           │       ā”œā”€ā”€ trace-mapping.d.ts
│   │       │           │       └── types.d.ts
│   │       │           └── package.json
│   │       ā”œā”€ā”€ package.json
│   │       ā”œā”€ā”€ register-hook-require.d.ts
│   │       ā”œā”€ā”€ register-hook-require.js
│   │       ā”œā”€ā”€ register.d.ts
│   │       ā”œā”€ā”€ register.js
│   │       ā”œā”€ā”€ source-map-support.d.ts
│   │       └── source-map-support.js
│   ā”œā”€ā”€ @emnapi
│   ā”œā”€ā”€ @esbuild
│   │   └── linux-x64
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ bin
│   │       │   └── esbuild
│   │       └── package.json
│   ā”œā”€ā”€ @eslint
│   │   ā”œā”€ā”€ config-array
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ cjs
│   │   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   │   │   ā”œā”€ā”€ std__path
│   │   │   │   │   │   ā”œā”€ā”€ posix.cjs
│   │   │   │   │   │   └── windows.cjs
│   │   │   │   │   └── types.ts
│   │   │   │   └── esm
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ std__path
│   │   │   │       │   ā”œā”€ā”€ posix.js
│   │   │   │       │   └── windows.js
│   │   │   │       ā”œā”€ā”€ types.d.ts
│   │   │   │       └── types.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ config-helpers
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ cjs
│   │   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   │   │   └── types.cts
│   │   │   │   └── esm
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ types.d.ts
│   │   │   │       └── types.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ core
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ cjs
│   │   │   │   │   └── types.d.cts
│   │   │   │   └── esm
│   │   │   │       └── types.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ eslintrc
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ conf
│   │   │   │   ā”œā”€ā”€ config-schema.js
│   │   │   │   └── environments.js
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ eslintrc-universal.cjs
│   │   │   │   ā”œā”€ā”€ eslintrc-universal.cjs.map
│   │   │   │   ā”œā”€ā”€ eslintrc.cjs
│   │   │   │   ā”œā”€ā”€ eslintrc.cjs.map
│   │   │   │   └── eslintrc.d.cts
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   ā”œā”€ā”€ cascading-config-array-factory.js
│   │   │   │   ā”œā”€ā”€ config-array
│   │   │   │   │   ā”œā”€ā”€ config-array.js
│   │   │   │   │   ā”œā”€ā”€ config-dependency.js
│   │   │   │   │   ā”œā”€ā”€ extracted-config.js
│   │   │   │   │   ā”œā”€ā”€ ignore-pattern.js
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   └── override-tester.js
│   │   │   │   ā”œā”€ā”€ config-array-factory.js
│   │   │   │   ā”œā”€ā”€ flat-compat.js
│   │   │   │   ā”œā”€ā”€ index-universal.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ shared
│   │   │   │   │   ā”œā”€ā”€ ajv.js
│   │   │   │   │   ā”œā”€ā”€ config-ops.js
│   │   │   │   │   ā”œā”€ā”€ config-validator.js
│   │   │   │   │   ā”œā”€ā”€ deep-merge-arrays.js
│   │   │   │   │   ā”œā”€ā”€ deprecation-warnings.js
│   │   │   │   │   ā”œā”€ā”€ naming.js
│   │   │   │   │   ā”œā”€ā”€ relative-module-resolver.js
│   │   │   │   │   └── types.js
│   │   │   │   └── types
│   │   │   │       └── index.d.ts
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── universal.js
│   │   ā”œā”€ā”€ js
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ src
│   │   │   │   ā”œā”€ā”€ configs
│   │   │   │   │   ā”œā”€ā”€ eslint-all.js
│   │   │   │   │   └── eslint-recommended.js
│   │   │   │   └── index.js
│   │   │   └── types
│   │   │       └── index.d.ts
│   │   ā”œā”€ā”€ object-schema
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ cjs
│   │   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   │   │   └── types.ts
│   │   │   │   └── esm
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ types.d.ts
│   │   │   │       └── types.ts
│   │   │   └── package.json
│   │   └── plugin-kit
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ cjs
│   │       │   │   ā”œā”€ā”€ index.cjs
│   │       │   │   ā”œā”€ā”€ index.d.cts
│   │       │   │   └── types.cts
│   │       │   └── esm
│   │       │       ā”œā”€ā”€ index.d.ts
│   │       │       ā”œā”€ā”€ index.js
│   │       │       ā”œā”€ā”€ types.d.ts
│   │       │       └── types.ts
│   │       └── package.json
│   ā”œā”€ā”€ @eslint-community
│   │   ā”œā”€ā”€ eslint-utils
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ index.js.map
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ index.mjs.map
│   │   │   ā”œā”€ā”€ node_modules
│   │   │   │   └── eslint-visitor-keys
│   │   │   │       ā”œā”€ā”€ LICENSE
│   │   │   │       ā”œā”€ā”€ README.md
│   │   │   │       ā”œā”€ā”€ dist
│   │   │   │       │   ā”œā”€ā”€ eslint-visitor-keys.cjs
│   │   │   │       │   ā”œā”€ā”€ eslint-visitor-keys.d.cts
│   │   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │   │       │   └── visitor-keys.d.ts
│   │   │   │       ā”œā”€ā”€ lib
│   │   │   │       │   ā”œā”€ā”€ index.js
│   │   │   │       │   └── visitor-keys.js
│   │   │   │       └── package.json
│   │   │   └── package.json
│   │   └── regexpp
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ index.js.map
│   │       ā”œā”€ā”€ index.mjs
│   │       ā”œā”€ā”€ index.mjs.map
│   │       └── package.json
│   ā”œā”€ā”€ @fortawesome
│   │   ā”œā”€ā”€ fontawesome-common-types
│   │   │   ā”œā”€ā”€ LICENSE.txt
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ fontawesome-svg-core
│   │   │   ā”œā”€ā”€ LICENSE.txt
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ import.macro.d.ts
│   │   │   ā”œā”€ā”€ import.macro.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ plugins.mjs
│   │   │   └── styles.css
│   │   ā”œā”€ā”€ free-brands-svg-icons
│   │   │   ā”œā”€ā”€ LICENSE.txt
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ fa42Group.d.ts
│   │   │   ā”œā”€ā”€ fa42Group.js
│   │   │   ā”œā”€ā”€ fa500px.d.ts
│   │   │   ā”œā”€ā”€ fa500px.js
│   │   │   ā”œā”€ā”€ faAccessibleIcon.d.ts
│   │   │   ā”œā”€ā”€ faAccessibleIcon.js
│   │   │   ā”œā”€ā”€ faAccusoft.d.ts
│   │   │   ā”œā”€ā”€ faAccusoft.js
│   │   │   ā”œā”€ā”€ faAdn.d.ts
│   │   │   ā”œā”€ā”€ faAdn.js
│   │   │   ā”œā”€ā”€ faAdversal.d.ts
│   │   │   ā”œā”€ā”€ faAdversal.js
│   │   │   ā”œā”€ā”€ faAffiliatetheme.d.ts
│   │   │   ā”œā”€ā”€ faAffiliatetheme.js
│   │   │   ā”œā”€ā”€ faAirbnb.d.ts
│   │   │   ā”œā”€ā”€ faAirbnb.js
│   │   │   ā”œā”€ā”€ faAlgolia.d.ts
│   │   │   ā”œā”€ā”€ faAlgolia.js
│   │   │   ā”œā”€ā”€ faAlipay.d.ts
│   │   │   ā”œā”€ā”€ faAlipay.js
│   │   │   ā”œā”€ā”€ faAmazon.d.ts
│   │   │   ā”œā”€ā”€ faAmazon.js
│   │   │   ā”œā”€ā”€ faAmazonPay.d.ts
│   │   │   ā”œā”€ā”€ faAmazonPay.js
│   │   │   ā”œā”€ā”€ faAmilia.d.ts
│   │   │   ā”œā”€ā”€ faAmilia.js
│   │   │   ā”œā”€ā”€ faAndroid.d.ts
│   │   │   ā”œā”€ā”€ faAndroid.js
│   │   │   ā”œā”€ā”€ faAngellist.d.ts
│   │   │   ā”œā”€ā”€ faAngellist.js
│   │   │   ā”œā”€ā”€ faAngrycreative.d.ts
│   │   │   ā”œā”€ā”€ faAngrycreative.js
│   │   │   ā”œā”€ā”€ faAngular.d.ts
│   │   │   ā”œā”€ā”€ faAngular.js
│   │   │   ā”œā”€ā”€ faAppStore.d.ts
│   │   │   ā”œā”€ā”€ faAppStore.js
│   │   │   ā”œā”€ā”€ faAppStoreIos.d.ts
│   │   │   ā”œā”€ā”€ faAppStoreIos.js
│   │   │   ā”œā”€ā”€ faApper.d.ts
│   │   │   ā”œā”€ā”€ faApper.js
│   │   │   ā”œā”€ā”€ faApple.d.ts
│   │   │   ā”œā”€ā”€ faApple.js
│   │   │   ā”œā”€ā”€ faApplePay.d.ts
│   │   │   ā”œā”€ā”€ faApplePay.js
│   │   │   ā”œā”€ā”€ faArtstation.d.ts
│   │   │   ā”œā”€ā”€ faArtstation.js
│   │   │   ā”œā”€ā”€ faAsymmetrik.d.ts
│   │   │   ā”œā”€ā”€ faAsymmetrik.js
│   │   │   ā”œā”€ā”€ faAtlassian.d.ts
│   │   │   ā”œā”€ā”€ faAtlassian.js
│   │   │   ā”œā”€ā”€ faAudible.d.ts
│   │   │   ā”œā”€ā”€ faAudible.js
│   │   │   ā”œā”€ā”€ faAutoprefixer.d.ts
│   │   │   ā”œā”€ā”€ faAutoprefixer.js
│   │   │   ā”œā”€ā”€ faAvianex.d.ts
│   │   │   ā”œā”€ā”€ faAvianex.js
│   │   │   ā”œā”€ā”€ faAviato.d.ts
│   │   │   ā”œā”€ā”€ faAviato.js
│   │   │   ā”œā”€ā”€ faAws.d.ts
│   │   │   ā”œā”€ā”€ faAws.js
│   │   │   ā”œā”€ā”€ faBandcamp.d.ts
│   │   │   ā”œā”€ā”€ faBandcamp.js
│   │   │   ā”œā”€ā”€ faBattleNet.d.ts
│   │   │   ā”œā”€ā”€ faBattleNet.js
│   │   │   ā”œā”€ā”€ faBehance.d.ts
│   │   │   ā”œā”€ā”€ faBehance.js
│   │   │   ā”œā”€ā”€ faBehanceSquare.d.ts
│   │   │   ā”œā”€ā”€ faBehanceSquare.js
│   │   │   ā”œā”€ā”€ faBilibili.d.ts
│   │   │   ā”œā”€ā”€ faBilibili.js
│   │   │   ā”œā”€ā”€ faBimobject.d.ts
│   │   │   ā”œā”€ā”€ faBimobject.js
│   │   │   ā”œā”€ā”€ faBitbucket.d.ts
│   │   │   ā”œā”€ā”€ faBitbucket.js
│   │   │   ā”œā”€ā”€ faBitcoin.d.ts
│   │   │   ā”œā”€ā”€ faBitcoin.js
│   │   │   ā”œā”€ā”€ faBity.d.ts
│   │   │   ā”œā”€ā”€ faBity.js
│   │   │   ā”œā”€ā”€ faBlackTie.d.ts
│   │   │   ā”œā”€ā”€ faBlackTie.js
│   │   │   ā”œā”€ā”€ faBlackberry.d.ts
│   │   │   ā”œā”€ā”€ faBlackberry.js
│   │   │   ā”œā”€ā”€ faBlogger.d.ts
│   │   │   ā”œā”€ā”€ faBlogger.js
│   │   │   ā”œā”€ā”€ faBloggerB.d.ts
│   │   │   ā”œā”€ā”€ faBloggerB.js
│   │   │   ā”œā”€ā”€ faBluesky.d.ts
│   │   │   ā”œā”€ā”€ faBluesky.js
│   │   │   ā”œā”€ā”€ faBluetooth.d.ts
│   │   │   ā”œā”€ā”€ faBluetooth.js
│   │   │   ā”œā”€ā”€ faBluetoothB.d.ts
│   │   │   ā”œā”€ā”€ faBluetoothB.js
│   │   │   ā”œā”€ā”€ faBootstrap.d.ts
│   │   │   ā”œā”€ā”€ faBootstrap.js
│   │   │   ā”œā”€ā”€ faBots.d.ts
│   │   │   ā”œā”€ā”€ faBots.js
│   │   │   ā”œā”€ā”€ faBrave.d.ts
│   │   │   ā”œā”€ā”€ faBrave.js
│   │   │   ā”œā”€ā”€ faBraveReverse.d.ts
│   │   │   ā”œā”€ā”€ faBraveReverse.js
│   │   │   ā”œā”€ā”€ faBtc.d.ts
│   │   │   ā”œā”€ā”€ faBtc.js
│   │   │   ā”œā”€ā”€ faBuffer.d.ts
│   │   │   ā”œā”€ā”€ faBuffer.js
│   │   │   ā”œā”€ā”€ faBuromobelexperte.d.ts
│   │   │   ā”œā”€ā”€ faBuromobelexperte.js
│   │   │   ā”œā”€ā”€ faBuyNLarge.d.ts
│   │   │   ā”œā”€ā”€ faBuyNLarge.js
│   │   │   ā”œā”€ā”€ faBuysellads.d.ts
│   │   │   ā”œā”€ā”€ faBuysellads.js
│   │   │   ā”œā”€ā”€ faCanadianMapleLeaf.d.ts
│   │   │   ā”œā”€ā”€ faCanadianMapleLeaf.js
│   │   │   ā”œā”€ā”€ faCcAmazonPay.d.ts
│   │   │   ā”œā”€ā”€ faCcAmazonPay.js
│   │   │   ā”œā”€ā”€ faCcAmex.d.ts
│   │   │   ā”œā”€ā”€ faCcAmex.js
│   │   │   ā”œā”€ā”€ faCcApplePay.d.ts
│   │   │   ā”œā”€ā”€ faCcApplePay.js
│   │   │   ā”œā”€ā”€ faCcDinersClub.d.ts
│   │   │   ā”œā”€ā”€ faCcDinersClub.js
│   │   │   ā”œā”€ā”€ faCcDiscover.d.ts
│   │   │   ā”œā”€ā”€ faCcDiscover.js
│   │   │   ā”œā”€ā”€ faCcJcb.d.ts
│   │   │   ā”œā”€ā”€ faCcJcb.js
│   │   │   ā”œā”€ā”€ faCcMastercard.d.ts
│   │   │   ā”œā”€ā”€ faCcMastercard.js
│   │   │   ā”œā”€ā”€ faCcPaypal.d.ts
│   │   │   ā”œā”€ā”€ faCcPaypal.js
│   │   │   ā”œā”€ā”€ faCcStripe.d.ts
│   │   │   ā”œā”€ā”€ faCcStripe.js
│   │   │   ā”œā”€ā”€ faCcVisa.d.ts
│   │   │   ā”œā”€ā”€ faCcVisa.js
│   │   │   ā”œā”€ā”€ faCentercode.d.ts
│   │   │   ā”œā”€ā”€ faCentercode.js
│   │   │   ā”œā”€ā”€ faCentos.d.ts
│   │   │   ā”œā”€ā”€ faCentos.js
│   │   │   ā”œā”€ā”€ faChrome.d.ts
│   │   │   ā”œā”€ā”€ faChrome.js
│   │   │   ā”œā”€ā”€ faChromecast.d.ts
│   │   │   ā”œā”€ā”€ faChromecast.js
│   │   │   ā”œā”€ā”€ faCloudflare.d.ts
│   │   │   ā”œā”€ā”€ faCloudflare.js
│   │   │   ā”œā”€ā”€ faCloudscale.d.ts
│   │   │   ā”œā”€ā”€ faCloudscale.js
│   │   │   ā”œā”€ā”€ faCloudsmith.d.ts
│   │   │   ā”œā”€ā”€ faCloudsmith.js
│   │   │   ā”œā”€ā”€ faCloudversify.d.ts
│   │   │   ā”œā”€ā”€ faCloudversify.js
│   │   │   ā”œā”€ā”€ faCmplid.d.ts
│   │   │   ā”œā”€ā”€ faCmplid.js
│   │   │   ā”œā”€ā”€ faCodepen.d.ts
│   │   │   ā”œā”€ā”€ faCodepen.js
│   │   │   ā”œā”€ā”€ faCodiepie.d.ts
│   │   │   ā”œā”€ā”€ faCodiepie.js
│   │   │   ā”œā”€ā”€ faConfluence.d.ts
│   │   │   ā”œā”€ā”€ faConfluence.js
│   │   │   ā”œā”€ā”€ faConnectdevelop.d.ts
│   │   │   ā”œā”€ā”€ faConnectdevelop.js
│   │   │   ā”œā”€ā”€ faContao.d.ts
│   │   │   ā”œā”€ā”€ faContao.js
│   │   │   ā”œā”€ā”€ faCottonBureau.d.ts
│   │   │   ā”œā”€ā”€ faCottonBureau.js
│   │   │   ā”œā”€ā”€ faCpanel.d.ts
│   │   │   ā”œā”€ā”€ faCpanel.js
│   │   │   ā”œā”€ā”€ faCreativeCommons.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommons.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsBy.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsBy.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsNc.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsNc.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsNcEu.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsNcEu.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsNcJp.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsNcJp.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsNd.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsNd.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsPd.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsPd.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsPdAlt.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsPdAlt.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsRemix.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsRemix.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsSa.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsSa.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsSampling.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsSampling.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsSamplingPlus.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsSamplingPlus.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsShare.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsShare.js
│   │   │   ā”œā”€ā”€ faCreativeCommonsZero.d.ts
│   │   │   ā”œā”€ā”€ faCreativeCommonsZero.js
│   │   │   ā”œā”€ā”€ faCriticalRole.d.ts
│   │   │   ā”œā”€ā”€ faCriticalRole.js
│   │   │   ā”œā”€ā”€ faCss.d.ts
│   │   │   ā”œā”€ā”€ faCss.js
│   │   │   ā”œā”€ā”€ faCss3.d.ts
│   │   │   ā”œā”€ā”€ faCss3.js
│   │   │   ā”œā”€ā”€ faCss3Alt.d.ts
│   │   │   ā”œā”€ā”€ faCss3Alt.js
│   │   │   ā”œā”€ā”€ faCuttlefish.d.ts
│   │   │   ā”œā”€ā”€ faCuttlefish.js
│   │   │   ā”œā”€ā”€ faDAndD.d.ts
│   │   │   ā”œā”€ā”€ faDAndD.js
│   │   │   ā”œā”€ā”€ faDAndDBeyond.d.ts
│   │   │   ā”œā”€ā”€ faDAndDBeyond.js
│   │   │   ā”œā”€ā”€ faDailymotion.d.ts
│   │   │   ā”œā”€ā”€ faDailymotion.js
│   │   │   ā”œā”€ā”€ faDartLang.d.ts
│   │   │   ā”œā”€ā”€ faDartLang.js
│   │   │   ā”œā”€ā”€ faDashcube.d.ts
│   │   │   ā”œā”€ā”€ faDashcube.js
│   │   │   ā”œā”€ā”€ faDebian.d.ts
│   │   │   ā”œā”€ā”€ faDebian.js
│   │   │   ā”œā”€ā”€ faDeezer.d.ts
│   │   │   ā”œā”€ā”€ faDeezer.js
│   │   │   ā”œā”€ā”€ faDelicious.d.ts
│   │   │   ā”œā”€ā”€ faDelicious.js
│   │   │   ā”œā”€ā”€ faDeploydog.d.ts
│   │   │   ā”œā”€ā”€ faDeploydog.js
│   │   │   ā”œā”€ā”€ faDeskpro.d.ts
│   │   │   ā”œā”€ā”€ faDeskpro.js
│   │   │   ā”œā”€ā”€ faDev.d.ts
│   │   │   ā”œā”€ā”€ faDev.js
│   │   │   ā”œā”€ā”€ faDeviantart.d.ts
│   │   │   ā”œā”€ā”€ faDeviantart.js
│   │   │   ā”œā”€ā”€ faDhl.d.ts
│   │   │   ā”œā”€ā”€ faDhl.js
│   │   │   ā”œā”€ā”€ faDiaspora.d.ts
│   │   │   ā”œā”€ā”€ faDiaspora.js
│   │   │   ā”œā”€ā”€ faDigg.d.ts
│   │   │   ā”œā”€ā”€ faDigg.js
│   │   │   ā”œā”€ā”€ faDigitalOcean.d.ts
│   │   │   ā”œā”€ā”€ faDigitalOcean.js
│   │   │   ā”œā”€ā”€ faDiscord.d.ts
│   │   │   ā”œā”€ā”€ faDiscord.js
│   │   │   ā”œā”€ā”€ faDiscourse.d.ts
│   │   │   ā”œā”€ā”€ faDiscourse.js
│   │   │   ā”œā”€ā”€ faDochub.d.ts
│   │   │   ā”œā”€ā”€ faDochub.js
│   │   │   ā”œā”€ā”€ faDocker.d.ts
│   │   │   ā”œā”€ā”€ faDocker.js
│   │   │   ā”œā”€ā”€ faDraft2digital.d.ts
│   │   │   ā”œā”€ā”€ faDraft2digital.js
│   │   │   ā”œā”€ā”€ faDribbble.d.ts
│   │   │   ā”œā”€ā”€ faDribbble.js
│   │   │   ā”œā”€ā”€ faDribbbleSquare.d.ts
│   │   │   ā”œā”€ā”€ faDribbbleSquare.js
│   │   │   ā”œā”€ā”€ faDropbox.d.ts
│   │   │   ā”œā”€ā”€ faDropbox.js
│   │   │   ā”œā”€ā”€ faDrupal.d.ts
│   │   │   ā”œā”€ā”€ faDrupal.js
│   │   │   ā”œā”€ā”€ faDyalog.d.ts
│   │   │   ā”œā”€ā”€ faDyalog.js
│   │   │   ā”œā”€ā”€ faEarlybirds.d.ts
│   │   │   ā”œā”€ā”€ faEarlybirds.js
│   │   │   ā”œā”€ā”€ faEbay.d.ts
│   │   │   ā”œā”€ā”€ faEbay.js
│   │   │   ā”œā”€ā”€ faEdge.d.ts
│   │   │   ā”œā”€ā”€ faEdge.js
│   │   │   ā”œā”€ā”€ faEdgeLegacy.d.ts
│   │   │   ā”œā”€ā”€ faEdgeLegacy.js
│   │   │   ā”œā”€ā”€ faElementor.d.ts
│   │   │   ā”œā”€ā”€ faElementor.js
│   │   │   ā”œā”€ā”€ faEllo.d.ts
│   │   │   ā”œā”€ā”€ faEllo.js
│   │   │   ā”œā”€ā”€ faEmber.d.ts
│   │   │   ā”œā”€ā”€ faEmber.js
│   │   │   ā”œā”€ā”€ faEmpire.d.ts
│   │   │   ā”œā”€ā”€ faEmpire.js
│   │   │   ā”œā”€ā”€ faEnvira.d.ts
│   │   │   ā”œā”€ā”€ faEnvira.js
│   │   │   ā”œā”€ā”€ faErlang.d.ts
│   │   │   ā”œā”€ā”€ faErlang.js
│   │   │   ā”œā”€ā”€ faEthereum.d.ts
│   │   │   ā”œā”€ā”€ faEthereum.js
│   │   │   ā”œā”€ā”€ faEtsy.d.ts
│   │   │   ā”œā”€ā”€ faEtsy.js
│   │   │   ā”œā”€ā”€ faEvernote.d.ts
│   │   │   ā”œā”€ā”€ faEvernote.js
│   │   │   ā”œā”€ā”€ faExpeditedssl.d.ts
│   │   │   ā”œā”€ā”€ faExpeditedssl.js
│   │   │   ā”œā”€ā”€ faFacebook.d.ts
│   │   │   ā”œā”€ā”€ faFacebook.js
│   │   │   ā”œā”€ā”€ faFacebookF.d.ts
│   │   │   ā”œā”€ā”€ faFacebookF.js
│   │   │   ā”œā”€ā”€ faFacebookMessenger.d.ts
│   │   │   ā”œā”€ā”€ faFacebookMessenger.js
│   │   │   ā”œā”€ā”€ faFacebookSquare.d.ts
│   │   │   ā”œā”€ā”€ faFacebookSquare.js
│   │   │   ā”œā”€ā”€ faFantasyFlightGames.d.ts
│   │   │   ā”œā”€ā”€ faFantasyFlightGames.js
│   │   │   ā”œā”€ā”€ faFedex.d.ts
│   │   │   ā”œā”€ā”€ faFedex.js
│   │   │   ā”œā”€ā”€ faFedora.d.ts
│   │   │   ā”œā”€ā”€ faFedora.js
│   │   │   ā”œā”€ā”€ faFigma.d.ts
│   │   │   ā”œā”€ā”€ faFigma.js
│   │   │   ā”œā”€ā”€ faFilesPinwheel.d.ts
│   │   │   ā”œā”€ā”€ faFilesPinwheel.js
│   │   │   ā”œā”€ā”€ faFirefox.d.ts
│   │   │   ā”œā”€ā”€ faFirefox.js
│   │   │   ā”œā”€ā”€ faFirefoxBrowser.d.ts
│   │   │   ā”œā”€ā”€ faFirefoxBrowser.js
│   │   │   ā”œā”€ā”€ faFirstOrder.d.ts
│   │   │   ā”œā”€ā”€ faFirstOrder.js
│   │   │   ā”œā”€ā”€ faFirstOrderAlt.d.ts
│   │   │   ā”œā”€ā”€ faFirstOrderAlt.js
│   │   │   ā”œā”€ā”€ faFirstdraft.d.ts
│   │   │   ā”œā”€ā”€ faFirstdraft.js
│   │   │   ā”œā”€ā”€ faFlickr.d.ts
│   │   │   ā”œā”€ā”€ faFlickr.js
│   │   │   ā”œā”€ā”€ faFlipboard.d.ts
│   │   │   ā”œā”€ā”€ faFlipboard.js
│   │   │   ā”œā”€ā”€ faFlutter.d.ts
│   │   │   ā”œā”€ā”€ faFlutter.js
│   │   │   ā”œā”€ā”€ faFly.d.ts
│   │   │   ā”œā”€ā”€ faFly.js
│   │   │   ā”œā”€ā”€ faFontAwesome.d.ts
│   │   │   ā”œā”€ā”€ faFontAwesome.js
│   │   │   ā”œā”€ā”€ faFontAwesomeAlt.d.ts
│   │   │   ā”œā”€ā”€ faFontAwesomeAlt.js
│   │   │   ā”œā”€ā”€ faFontAwesomeFlag.d.ts
│   │   │   ā”œā”€ā”€ faFontAwesomeFlag.js
│   │   │   ā”œā”€ā”€ faFontAwesomeLogoFull.d.ts
│   │   │   ā”œā”€ā”€ faFontAwesomeLogoFull.js
│   │   │   ā”œā”€ā”€ faFonticons.d.ts
│   │   │   ā”œā”€ā”€ faFonticons.js
│   │   │   ā”œā”€ā”€ faFonticonsFi.d.ts
│   │   │   ā”œā”€ā”€ faFonticonsFi.js
│   │   │   ā”œā”€ā”€ faFortAwesome.d.ts
│   │   │   ā”œā”€ā”€ faFortAwesome.js
│   │   │   ā”œā”€ā”€ faFortAwesomeAlt.d.ts
│   │   │   ā”œā”€ā”€ faFortAwesomeAlt.js
│   │   │   ā”œā”€ā”€ faForumbee.d.ts
│   │   │   ā”œā”€ā”€ faForumbee.js
│   │   │   ā”œā”€ā”€ faFoursquare.d.ts
│   │   │   ā”œā”€ā”€ faFoursquare.js
│   │   │   ā”œā”€ā”€ faFreeCodeCamp.d.ts
│   │   │   ā”œā”€ā”€ faFreeCodeCamp.js
│   │   │   ā”œā”€ā”€ faFreebsd.d.ts
│   │   │   ā”œā”€ā”€ faFreebsd.js
│   │   │   ā”œā”€ā”€ faFulcrum.d.ts
│   │   │   ā”œā”€ā”€ faFulcrum.js
│   │   │   ā”œā”€ā”€ faGalacticRepublic.d.ts
│   │   │   ā”œā”€ā”€ faGalacticRepublic.js
│   │   │   ā”œā”€ā”€ faGalacticSenate.d.ts
│   │   │   ā”œā”€ā”€ faGalacticSenate.js
│   │   │   ā”œā”€ā”€ faGetPocket.d.ts
│   │   │   ā”œā”€ā”€ faGetPocket.js
│   │   │   ā”œā”€ā”€ faGg.d.ts
│   │   │   ā”œā”€ā”€ faGg.js
│   │   │   ā”œā”€ā”€ faGgCircle.d.ts
│   │   │   ā”œā”€ā”€ faGgCircle.js
│   │   │   ā”œā”€ā”€ faGit.d.ts
│   │   │   ā”œā”€ā”€ faGit.js
│   │   │   ā”œā”€ā”€ faGitAlt.d.ts
│   │   │   ā”œā”€ā”€ faGitAlt.js
│   │   │   ā”œā”€ā”€ faGitSquare.d.ts
│   │   │   ā”œā”€ā”€ faGitSquare.js
│   │   │   ā”œā”€ā”€ faGithub.d.ts
│   │   │   ā”œā”€ā”€ faGithub.js
│   │   │   ā”œā”€ā”€ faGithubAlt.d.ts
│   │   │   ā”œā”€ā”€ faGithubAlt.js
│   │   │   ā”œā”€ā”€ faGithubSquare.d.ts
│   │   │   ā”œā”€ā”€ faGithubSquare.js
│   │   │   ā”œā”€ā”€ faGitkraken.d.ts
│   │   │   ā”œā”€ā”€ faGitkraken.js
│   │   │   ā”œā”€ā”€ faGitlab.d.ts
│   │   │   ā”œā”€ā”€ faGitlab.js
│   │   │   ā”œā”€ā”€ faGitlabSquare.d.ts
│   │   │   ā”œā”€ā”€ faGitlabSquare.js
│   │   │   ā”œā”€ā”€ faGitter.d.ts
│   │   │   ā”œā”€ā”€ faGitter.js
│   │   │   ā”œā”€ā”€ faGlide.d.ts
│   │   │   ā”œā”€ā”€ faGlide.js
│   │   │   ā”œā”€ā”€ faGlideG.d.ts
│   │   │   ā”œā”€ā”€ faGlideG.js
│   │   │   ā”œā”€ā”€ faGofore.d.ts
│   │   │   ā”œā”€ā”€ faGofore.js
│   │   │   ā”œā”€ā”€ faGolang.d.ts
│   │   │   ā”œā”€ā”€ faGolang.js
│   │   │   ā”œā”€ā”€ faGoodreads.d.ts
│   │   │   ā”œā”€ā”€ faGoodreads.js
│   │   │   ā”œā”€ā”€ faGoodreadsG.d.ts
│   │   │   ā”œā”€ā”€ faGoodreadsG.js
│   │   │   ā”œā”€ā”€ faGoogle.d.ts
│   │   │   ā”œā”€ā”€ faGoogle.js
│   │   │   ā”œā”€ā”€ faGoogleDrive.d.ts
│   │   │   ā”œā”€ā”€ faGoogleDrive.js
│   │   │   ā”œā”€ā”€ faGooglePay.d.ts
│   │   │   ā”œā”€ā”€ faGooglePay.js
│   │   │   ā”œā”€ā”€ faGooglePlay.d.ts
│   │   │   ā”œā”€ā”€ faGooglePlay.js
│   │   │   ā”œā”€ā”€ faGooglePlus.d.ts
│   │   │   ā”œā”€ā”€ faGooglePlus.js
│   │   │   ā”œā”€ā”€ faGooglePlusG.d.ts
│   │   │   ā”œā”€ā”€ faGooglePlusG.js
│   │   │   ā”œā”€ā”€ faGooglePlusSquare.d.ts
│   │   │   ā”œā”€ā”€ faGooglePlusSquare.js
│   │   │   ā”œā”€ā”€ faGoogleScholar.d.ts
│   │   │   ā”œā”€ā”€ faGoogleScholar.js
│   │   │   ā”œā”€ā”€ faGoogleWallet.d.ts
│   │   │   ā”œā”€ā”€ faGoogleWallet.js
│   │   │   ā”œā”€ā”€ faGratipay.d.ts
│   │   │   ā”œā”€ā”€ faGratipay.js
│   │   │   ā”œā”€ā”€ faGrav.d.ts
│   │   │   ā”œā”€ā”€ faGrav.js
│   │   │   ā”œā”€ā”€ faGripfire.d.ts
│   │   │   ā”œā”€ā”€ faGripfire.js
│   │   │   ā”œā”€ā”€ faGrunt.d.ts
│   │   │   ā”œā”€ā”€ faGrunt.js
│   │   │   ā”œā”€ā”€ faGuilded.d.ts
│   │   │   ā”œā”€ā”€ faGuilded.js
│   │   │   ā”œā”€ā”€ faGulp.d.ts
│   │   │   ā”œā”€ā”€ faGulp.js
│   │   │   ā”œā”€ā”€ faHackerNews.d.ts
│   │   │   ā”œā”€ā”€ faHackerNews.js
│   │   │   ā”œā”€ā”€ faHackerNewsSquare.d.ts
│   │   │   ā”œā”€ā”€ faHackerNewsSquare.js
│   │   │   ā”œā”€ā”€ faHackerrank.d.ts
│   │   │   ā”œā”€ā”€ faHackerrank.js
│   │   │   ā”œā”€ā”€ faHashnode.d.ts
│   │   │   ā”œā”€ā”€ faHashnode.js
│   │   │   ā”œā”€ā”€ faHips.d.ts
│   │   │   ā”œā”€ā”€ faHips.js
│   │   │   ā”œā”€ā”€ faHireAHelper.d.ts
│   │   │   ā”œā”€ā”€ faHireAHelper.js
│   │   │   ā”œā”€ā”€ faHive.d.ts
│   │   │   ā”œā”€ā”€ faHive.js
│   │   │   ā”œā”€ā”€ faHooli.d.ts
│   │   │   ā”œā”€ā”€ faHooli.js
│   │   │   ā”œā”€ā”€ faHornbill.d.ts
│   │   │   ā”œā”€ā”€ faHornbill.js
│   │   │   ā”œā”€ā”€ faHotjar.d.ts
│   │   │   ā”œā”€ā”€ faHotjar.js
│   │   │   ā”œā”€ā”€ faHouzz.d.ts
│   │   │   ā”œā”€ā”€ faHouzz.js
│   │   │   ā”œā”€ā”€ faHtml5.d.ts
│   │   │   ā”œā”€ā”€ faHtml5.js
│   │   │   ā”œā”€ā”€ faHubspot.d.ts
│   │   │   ā”œā”€ā”€ faHubspot.js
│   │   │   ā”œā”€ā”€ faIdeal.d.ts
│   │   │   ā”œā”€ā”€ faIdeal.js
│   │   │   ā”œā”€ā”€ faImdb.d.ts
│   │   │   ā”œā”€ā”€ faImdb.js
│   │   │   ā”œā”€ā”€ faInnosoft.d.ts
│   │   │   ā”œā”€ā”€ faInnosoft.js
│   │   │   ā”œā”€ā”€ faInstagram.d.ts
│   │   │   ā”œā”€ā”€ faInstagram.js
│   │   │   ā”œā”€ā”€ faInstagramSquare.d.ts
│   │   │   ā”œā”€ā”€ faInstagramSquare.js
│   │   │   ā”œā”€ā”€ faInstalod.d.ts
│   │   │   ā”œā”€ā”€ faInstalod.js
│   │   │   ā”œā”€ā”€ faIntercom.d.ts
│   │   │   ā”œā”€ā”€ faIntercom.js
│   │   │   ā”œā”€ā”€ faInternetExplorer.d.ts
│   │   │   ā”œā”€ā”€ faInternetExplorer.js
│   │   │   ā”œā”€ā”€ faInvision.d.ts
│   │   │   ā”œā”€ā”€ faInvision.js
│   │   │   ā”œā”€ā”€ faIoxhost.d.ts
│   │   │   ā”œā”€ā”€ faIoxhost.js
│   │   │   ā”œā”€ā”€ faItchIo.d.ts
│   │   │   ā”œā”€ā”€ faItchIo.js
│   │   │   ā”œā”€ā”€ faItunes.d.ts
│   │   │   ā”œā”€ā”€ faItunes.js
│   │   │   ā”œā”€ā”€ faItunesNote.d.ts
│   │   │   ā”œā”€ā”€ faItunesNote.js
│   │   │   ā”œā”€ā”€ faJava.d.ts
│   │   │   ā”œā”€ā”€ faJava.js
│   │   │   ā”œā”€ā”€ faJediOrder.d.ts
│   │   │   ā”œā”€ā”€ faJediOrder.js
│   │   │   ā”œā”€ā”€ faJenkins.d.ts
│   │   │   ā”œā”€ā”€ faJenkins.js
│   │   │   ā”œā”€ā”€ faJira.d.ts
│   │   │   ā”œā”€ā”€ faJira.js
│   │   │   ā”œā”€ā”€ faJoget.d.ts
│   │   │   ā”œā”€ā”€ faJoget.js
│   │   │   ā”œā”€ā”€ faJoomla.d.ts
│   │   │   ā”œā”€ā”€ faJoomla.js
│   │   │   ā”œā”€ā”€ faJs.d.ts
│   │   │   ā”œā”€ā”€ faJs.js
│   │   │   ā”œā”€ā”€ faJsSquare.d.ts
│   │   │   ā”œā”€ā”€ faJsSquare.js
│   │   │   ā”œā”€ā”€ faJsfiddle.d.ts
│   │   │   ā”œā”€ā”€ faJsfiddle.js
│   │   │   ā”œā”€ā”€ faJxl.d.ts
│   │   │   ā”œā”€ā”€ faJxl.js
│   │   │   ā”œā”€ā”€ faKaggle.d.ts
│   │   │   ā”œā”€ā”€ faKaggle.js
│   │   │   ā”œā”€ā”€ faKeybase.d.ts
│   │   │   ā”œā”€ā”€ faKeybase.js
│   │   │   ā”œā”€ā”€ faKeycdn.d.ts
│   │   │   ā”œā”€ā”€ faKeycdn.js
│   │   │   ā”œā”€ā”€ faKickstarter.d.ts
│   │   │   ā”œā”€ā”€ faKickstarter.js
│   │   │   ā”œā”€ā”€ faKickstarterK.d.ts
│   │   │   ā”œā”€ā”€ faKickstarterK.js
│   │   │   ā”œā”€ā”€ faKorvue.d.ts
│   │   │   ā”œā”€ā”€ faKorvue.js
│   │   │   ā”œā”€ā”€ faLaravel.d.ts
│   │   │   ā”œā”€ā”€ faLaravel.js
│   │   │   ā”œā”€ā”€ faLastfm.d.ts
│   │   │   ā”œā”€ā”€ faLastfm.js
│   │   │   ā”œā”€ā”€ faLastfmSquare.d.ts
│   │   │   ā”œā”€ā”€ faLastfmSquare.js
│   │   │   ā”œā”€ā”€ faLeanpub.d.ts
│   │   │   ā”œā”€ā”€ faLeanpub.js
│   │   │   ā”œā”€ā”€ faLess.d.ts
│   │   │   ā”œā”€ā”€ faLess.js
│   │   │   ā”œā”€ā”€ faLetterboxd.d.ts
│   │   │   ā”œā”€ā”€ faLetterboxd.js
│   │   │   ā”œā”€ā”€ faLine.d.ts
│   │   │   ā”œā”€ā”€ faLine.js
│   │   │   ā”œā”€ā”€ faLinkedin.d.ts
│   │   │   ā”œā”€ā”€ faLinkedin.js
│   │   │   ā”œā”€ā”€ faLinkedinIn.d.ts
│   │   │   ā”œā”€ā”€ faLinkedinIn.js
│   │   │   ā”œā”€ā”€ faLinode.d.ts
│   │   │   ā”œā”€ā”€ faLinode.js
│   │   │   ā”œā”€ā”€ faLinux.d.ts
│   │   │   ā”œā”€ā”€ faLinux.js
│   │   │   ā”œā”€ā”€ faLyft.d.ts
│   │   │   ā”œā”€ā”€ faLyft.js
│   │   │   ā”œā”€ā”€ faMagento.d.ts
│   │   │   ā”œā”€ā”€ faMagento.js
│   │   │   ā”œā”€ā”€ faMailchimp.d.ts
│   │   │   ā”œā”€ā”€ faMailchimp.js
│   │   │   ā”œā”€ā”€ faMandalorian.d.ts
│   │   │   ā”œā”€ā”€ faMandalorian.js
│   │   │   ā”œā”€ā”€ faMarkdown.d.ts
│   │   │   ā”œā”€ā”€ faMarkdown.js
│   │   │   ā”œā”€ā”€ faMastodon.d.ts
│   │   │   ā”œā”€ā”€ faMastodon.js
│   │   │   ā”œā”€ā”€ faMaxcdn.d.ts
│   │   │   ā”œā”€ā”€ faMaxcdn.js
│   │   │   ā”œā”€ā”€ faMdb.d.ts
│   │   │   ā”œā”€ā”€ faMdb.js
│   │   │   ā”œā”€ā”€ faMedapps.d.ts
│   │   │   ā”œā”€ā”€ faMedapps.js
│   │   │   ā”œā”€ā”€ faMedium.d.ts
│   │   │   ā”œā”€ā”€ faMedium.js
│   │   │   ā”œā”€ā”€ faMediumM.d.ts
│   │   │   ā”œā”€ā”€ faMediumM.js
│   │   │   ā”œā”€ā”€ faMedrt.d.ts
│   │   │   ā”œā”€ā”€ faMedrt.js
│   │   │   ā”œā”€ā”€ faMeetup.d.ts
│   │   │   ā”œā”€ā”€ faMeetup.js
│   │   │   ā”œā”€ā”€ faMegaport.d.ts
│   │   │   ā”œā”€ā”€ faMegaport.js
│   │   │   ā”œā”€ā”€ faMendeley.d.ts
│   │   │   ā”œā”€ā”€ faMendeley.js
│   │   │   ā”œā”€ā”€ faMeta.d.ts
│   │   │   ā”œā”€ā”€ faMeta.js
│   │   │   ā”œā”€ā”€ faMicroblog.d.ts
│   │   │   ā”œā”€ā”€ faMicroblog.js
│   │   │   ā”œā”€ā”€ faMicrosoft.d.ts
│   │   │   ā”œā”€ā”€ faMicrosoft.js
│   │   │   ā”œā”€ā”€ faMintbit.d.ts
│   │   │   ā”œā”€ā”€ faMintbit.js
│   │   │   ā”œā”€ā”€ faMix.d.ts
│   │   │   ā”œā”€ā”€ faMix.js
│   │   │   ā”œā”€ā”€ faMixcloud.d.ts
│   │   │   ā”œā”€ā”€ faMixcloud.js
│   │   │   ā”œā”€ā”€ faMixer.d.ts
│   │   │   ā”œā”€ā”€ faMixer.js
│   │   │   ā”œā”€ā”€ faMizuni.d.ts
│   │   │   ā”œā”€ā”€ faMizuni.js
│   │   │   ā”œā”€ā”€ faModx.d.ts
│   │   │   ā”œā”€ā”€ faModx.js
│   │   │   ā”œā”€ā”€ faMonero.d.ts
│   │   │   ā”œā”€ā”€ faMonero.js
│   │   │   ā”œā”€ā”€ faNapster.d.ts
│   │   │   ā”œā”€ā”€ faNapster.js
│   │   │   ā”œā”€ā”€ faNeos.d.ts
│   │   │   ā”œā”€ā”€ faNeos.js
│   │   │   ā”œā”€ā”€ faNfcDirectional.d.ts
│   │   │   ā”œā”€ā”€ faNfcDirectional.js
│   │   │   ā”œā”€ā”€ faNfcSymbol.d.ts
│   │   │   ā”œā”€ā”€ faNfcSymbol.js
│   │   │   ā”œā”€ā”€ faNimblr.d.ts
│   │   │   ā”œā”€ā”€ faNimblr.js
│   │   │   ā”œā”€ā”€ faNode.d.ts
│   │   │   ā”œā”€ā”€ faNode.js
│   │   │   ā”œā”€ā”€ faNodeJs.d.ts
│   │   │   ā”œā”€ā”€ faNodeJs.js
│   │   │   ā”œā”€ā”€ faNpm.d.ts
│   │   │   ā”œā”€ā”€ faNpm.js
│   │   │   ā”œā”€ā”€ faNs8.d.ts
│   │   │   ā”œā”€ā”€ faNs8.js
│   │   │   ā”œā”€ā”€ faNutritionix.d.ts
│   │   │   ā”œā”€ā”€ faNutritionix.js
│   │   │   ā”œā”€ā”€ faOctopusDeploy.d.ts
│   │   │   ā”œā”€ā”€ faOctopusDeploy.js
│   │   │   ā”œā”€ā”€ faOdnoklassniki.d.ts
│   │   │   ā”œā”€ā”€ faOdnoklassniki.js
│   │   │   ā”œā”€ā”€ faOdnoklassnikiSquare.d.ts
│   │   │   ā”œā”€ā”€ faOdnoklassnikiSquare.js
│   │   │   ā”œā”€ā”€ faOdysee.d.ts
│   │   │   ā”œā”€ā”€ faOdysee.js
│   │   │   ā”œā”€ā”€ faOldRepublic.d.ts
│   │   │   ā”œā”€ā”€ faOldRepublic.js
│   │   │   ā”œā”€ā”€ faOpencart.d.ts
│   │   │   ā”œā”€ā”€ faOpencart.js
│   │   │   ā”œā”€ā”€ faOpenid.d.ts
│   │   │   ā”œā”€ā”€ faOpenid.js
│   │   │   ā”œā”€ā”€ faOpensuse.d.ts
│   │   │   ā”œā”€ā”€ faOpensuse.js
│   │   │   ā”œā”€ā”€ faOpera.d.ts
│   │   │   ā”œā”€ā”€ faOpera.js
│   │   │   ā”œā”€ā”€ faOptinMonster.d.ts
│   │   │   ā”œā”€ā”€ faOptinMonster.js
│   │   │   ā”œā”€ā”€ faOrcid.d.ts
│   │   │   ā”œā”€ā”€ faOrcid.js
│   │   │   ā”œā”€ā”€ faOsi.d.ts
│   │   │   ā”œā”€ā”€ faOsi.js
│   │   │   ā”œā”€ā”€ faPadlet.d.ts
│   │   │   ā”œā”€ā”€ faPadlet.js
│   │   │   ā”œā”€ā”€ faPage4.d.ts
│   │   │   ā”œā”€ā”€ faPage4.js
│   │   │   ā”œā”€ā”€ faPagelines.d.ts
│   │   │   ā”œā”€ā”€ faPagelines.js
│   │   │   ā”œā”€ā”€ faPalfed.d.ts
│   │   │   ā”œā”€ā”€ faPalfed.js
│   │   │   ā”œā”€ā”€ faPatreon.d.ts
│   │   │   ā”œā”€ā”€ faPatreon.js
│   │   │   ā”œā”€ā”€ faPaypal.d.ts
│   │   │   ā”œā”€ā”€ faPaypal.js
│   │   │   ā”œā”€ā”€ faPerbyte.d.ts
│   │   │   ā”œā”€ā”€ faPerbyte.js
│   │   │   ā”œā”€ā”€ faPeriscope.d.ts
│   │   │   ā”œā”€ā”€ faPeriscope.js
│   │   │   ā”œā”€ā”€ faPhabricator.d.ts
│   │   │   ā”œā”€ā”€ faPhabricator.js
│   │   │   ā”œā”€ā”€ faPhoenixFramework.d.ts
│   │   │   ā”œā”€ā”€ faPhoenixFramework.js
│   │   │   ā”œā”€ā”€ faPhoenixSquadron.d.ts
│   │   │   ā”œā”€ā”€ faPhoenixSquadron.js
│   │   │   ā”œā”€ā”€ faPhp.d.ts
│   │   │   ā”œā”€ā”€ faPhp.js
│   │   │   ā”œā”€ā”€ faPiedPiper.d.ts
│   │   │   ā”œā”€ā”€ faPiedPiper.js
│   │   │   ā”œā”€ā”€ faPiedPiperAlt.d.ts
│   │   │   ā”œā”€ā”€ faPiedPiperAlt.js
│   │   │   ā”œā”€ā”€ faPiedPiperHat.d.ts
│   │   │   ā”œā”€ā”€ faPiedPiperHat.js
│   │   │   ā”œā”€ā”€ faPiedPiperPp.d.ts
│   │   │   ā”œā”€ā”€ faPiedPiperPp.js
│   │   │   ā”œā”€ā”€ faPiedPiperSquare.d.ts
│   │   │   ā”œā”€ā”€ faPiedPiperSquare.js
│   │   │   ā”œā”€ā”€ faPinterest.d.ts
│   │   │   ā”œā”€ā”€ faPinterest.js
│   │   │   ā”œā”€ā”€ faPinterestP.d.ts
│   │   │   ā”œā”€ā”€ faPinterestP.js
│   │   │   ā”œā”€ā”€ faPinterestSquare.d.ts
│   │   │   ā”œā”€ā”€ faPinterestSquare.js
│   │   │   ā”œā”€ā”€ faPix.d.ts
│   │   │   ā”œā”€ā”€ faPix.js
│   │   │   ā”œā”€ā”€ faPixiv.d.ts
│   │   │   ā”œā”€ā”€ faPixiv.js
│   │   │   ā”œā”€ā”€ faPlaystation.d.ts
│   │   │   ā”œā”€ā”€ faPlaystation.js
│   │   │   ā”œā”€ā”€ faProductHunt.d.ts
│   │   │   ā”œā”€ā”€ faProductHunt.js
│   │   │   ā”œā”€ā”€ faPushed.d.ts
│   │   │   ā”œā”€ā”€ faPushed.js
│   │   │   ā”œā”€ā”€ faPython.d.ts
│   │   │   ā”œā”€ā”€ faPython.js
│   │   │   ā”œā”€ā”€ faQq.d.ts
│   │   │   ā”œā”€ā”€ faQq.js
│   │   │   ā”œā”€ā”€ faQuinscape.d.ts
│   │   │   ā”œā”€ā”€ faQuinscape.js
│   │   │   ā”œā”€ā”€ faQuora.d.ts
│   │   │   ā”œā”€ā”€ faQuora.js
│   │   │   ā”œā”€ā”€ faRProject.d.ts
│   │   │   ā”œā”€ā”€ faRProject.js
│   │   │   ā”œā”€ā”€ faRaspberryPi.d.ts
│   │   │   ā”œā”€ā”€ faRaspberryPi.js
│   │   │   ā”œā”€ā”€ faRavelry.d.ts
│   │   │   ā”œā”€ā”€ faRavelry.js
│   │   │   ā”œā”€ā”€ faReact.d.ts
│   │   │   ā”œā”€ā”€ faReact.js
│   │   │   ā”œā”€ā”€ faReacteurope.d.ts
│   │   │   ā”œā”€ā”€ faReacteurope.js
│   │   │   ā”œā”€ā”€ faReadme.d.ts
│   │   │   ā”œā”€ā”€ faReadme.js
│   │   │   ā”œā”€ā”€ faRebel.d.ts
│   │   │   ā”œā”€ā”€ faRebel.js
│   │   │   ā”œā”€ā”€ faRedRiver.d.ts
│   │   │   ā”œā”€ā”€ faRedRiver.js
│   │   │   ā”œā”€ā”€ faReddit.d.ts
│   │   │   ā”œā”€ā”€ faReddit.js
│   │   │   ā”œā”€ā”€ faRedditAlien.d.ts
│   │   │   ā”œā”€ā”€ faRedditAlien.js
│   │   │   ā”œā”€ā”€ faRedditSquare.d.ts
│   │   │   ā”œā”€ā”€ faRedditSquare.js
│   │   │   ā”œā”€ā”€ faRedhat.d.ts
│   │   │   ā”œā”€ā”€ faRedhat.js
│   │   │   ā”œā”€ā”€ faRendact.d.ts
│   │   │   ā”œā”€ā”€ faRendact.js
│   │   │   ā”œā”€ā”€ faRenren.d.ts
│   │   │   ā”œā”€ā”€ faRenren.js
│   │   │   ā”œā”€ā”€ faReplyd.d.ts
│   │   │   ā”œā”€ā”€ faReplyd.js
│   │   │   ā”œā”€ā”€ faResearchgate.d.ts
│   │   │   ā”œā”€ā”€ faResearchgate.js
│   │   │   ā”œā”€ā”€ faResolving.d.ts
│   │   │   ā”œā”€ā”€ faResolving.js
│   │   │   ā”œā”€ā”€ faRev.d.ts
│   │   │   ā”œā”€ā”€ faRev.js
│   │   │   ā”œā”€ā”€ faRocketchat.d.ts
│   │   │   ā”œā”€ā”€ faRocketchat.js
│   │   │   ā”œā”€ā”€ faRockrms.d.ts
│   │   │   ā”œā”€ā”€ faRockrms.js
│   │   │   ā”œā”€ā”€ faRust.d.ts
│   │   │   ā”œā”€ā”€ faRust.js
│   │   │   ā”œā”€ā”€ faSafari.d.ts
│   │   │   ā”œā”€ā”€ faSafari.js
│   │   │   ā”œā”€ā”€ faSalesforce.d.ts
│   │   │   ā”œā”€ā”€ faSalesforce.js
│   │   │   ā”œā”€ā”€ faSass.d.ts
│   │   │   ā”œā”€ā”€ faSass.js
│   │   │   ā”œā”€ā”€ faSchlix.d.ts
│   │   │   ā”œā”€ā”€ faSchlix.js
│   │   │   ā”œā”€ā”€ faScreenpal.d.ts
│   │   │   ā”œā”€ā”€ faScreenpal.js
│   │   │   ā”œā”€ā”€ faScribd.d.ts
│   │   │   ā”œā”€ā”€ faScribd.js
│   │   │   ā”œā”€ā”€ faSearchengin.d.ts
│   │   │   ā”œā”€ā”€ faSearchengin.js
│   │   │   ā”œā”€ā”€ faSellcast.d.ts
│   │   │   ā”œā”€ā”€ faSellcast.js
│   │   │   ā”œā”€ā”€ faSellsy.d.ts
│   │   │   ā”œā”€ā”€ faSellsy.js
│   │   │   ā”œā”€ā”€ faServicestack.d.ts
│   │   │   ā”œā”€ā”€ faServicestack.js
│   │   │   ā”œā”€ā”€ faShirtsinbulk.d.ts
│   │   │   ā”œā”€ā”€ faShirtsinbulk.js
│   │   │   ā”œā”€ā”€ faShoelace.d.ts
│   │   │   ā”œā”€ā”€ faShoelace.js
│   │   │   ā”œā”€ā”€ faShopify.d.ts
│   │   │   ā”œā”€ā”€ faShopify.js
│   │   │   ā”œā”€ā”€ faShopware.d.ts
│   │   │   ā”œā”€ā”€ faShopware.js
│   │   │   ā”œā”€ā”€ faSignalMessenger.d.ts
│   │   │   ā”œā”€ā”€ faSignalMessenger.js
│   │   │   ā”œā”€ā”€ faSimplybuilt.d.ts
│   │   │   ā”œā”€ā”€ faSimplybuilt.js
│   │   │   ā”œā”€ā”€ faSistrix.d.ts
│   │   │   ā”œā”€ā”€ faSistrix.js
│   │   │   ā”œā”€ā”€ faSith.d.ts
│   │   │   ā”œā”€ā”€ faSith.js
│   │   │   ā”œā”€ā”€ faSitrox.d.ts
│   │   │   ā”œā”€ā”€ faSitrox.js
│   │   │   ā”œā”€ā”€ faSketch.d.ts
│   │   │   ā”œā”€ā”€ faSketch.js
│   │   │   ā”œā”€ā”€ faSkyatlas.d.ts
│   │   │   ā”œā”€ā”€ faSkyatlas.js
│   │   │   ā”œā”€ā”€ faSkype.d.ts
│   │   │   ā”œā”€ā”€ faSkype.js
│   │   │   ā”œā”€ā”€ faSlack.d.ts
│   │   │   ā”œā”€ā”€ faSlack.js
│   │   │   ā”œā”€ā”€ faSlackHash.d.ts
│   │   │   ā”œā”€ā”€ faSlackHash.js
│   │   │   ā”œā”€ā”€ faSlideshare.d.ts
│   │   │   ā”œā”€ā”€ faSlideshare.js
│   │   │   ā”œā”€ā”€ faSnapchat.d.ts
│   │   │   ā”œā”€ā”€ faSnapchat.js
│   │   │   ā”œā”€ā”€ faSnapchatGhost.d.ts
│   │   │   ā”œā”€ā”€ faSnapchatGhost.js
│   │   │   ā”œā”€ā”€ faSnapchatSquare.d.ts
│   │   │   ā”œā”€ā”€ faSnapchatSquare.js
│   │   │   ā”œā”€ā”€ faSoundcloud.d.ts
│   │   │   ā”œā”€ā”€ faSoundcloud.js
│   │   │   ā”œā”€ā”€ faSourcetree.d.ts
│   │   │   ā”œā”€ā”€ faSourcetree.js
│   │   │   ā”œā”€ā”€ faSpaceAwesome.d.ts
│   │   │   ā”œā”€ā”€ faSpaceAwesome.js
│   │   │   ā”œā”€ā”€ faSpeakap.d.ts
│   │   │   ā”œā”€ā”€ faSpeakap.js
│   │   │   ā”œā”€ā”€ faSpeakerDeck.d.ts
│   │   │   ā”œā”€ā”€ faSpeakerDeck.js
│   │   │   ā”œā”€ā”€ faSpotify.d.ts
│   │   │   ā”œā”€ā”€ faSpotify.js
│   │   │   ā”œā”€ā”€ faSquareBehance.d.ts
│   │   │   ā”œā”€ā”€ faSquareBehance.js
│   │   │   ā”œā”€ā”€ faSquareBluesky.d.ts
│   │   │   ā”œā”€ā”€ faSquareBluesky.js
│   │   │   ā”œā”€ā”€ faSquareDribbble.d.ts
│   │   │   ā”œā”€ā”€ faSquareDribbble.js
│   │   │   ā”œā”€ā”€ faSquareFacebook.d.ts
│   │   │   ā”œā”€ā”€ faSquareFacebook.js
│   │   │   ā”œā”€ā”€ faSquareFontAwesome.d.ts
│   │   │   ā”œā”€ā”€ faSquareFontAwesome.js
│   │   │   ā”œā”€ā”€ faSquareFontAwesomeStroke.d.ts
│   │   │   ā”œā”€ā”€ faSquareFontAwesomeStroke.js
│   │   │   ā”œā”€ā”€ faSquareGit.d.ts
│   │   │   ā”œā”€ā”€ faSquareGit.js
│   │   │   ā”œā”€ā”€ faSquareGithub.d.ts
│   │   │   ā”œā”€ā”€ faSquareGithub.js
│   │   │   ā”œā”€ā”€ faSquareGitlab.d.ts
│   │   │   ā”œā”€ā”€ faSquareGitlab.js
│   │   │   ā”œā”€ā”€ faSquareGooglePlus.d.ts
│   │   │   ā”œā”€ā”€ faSquareGooglePlus.js
│   │   │   ā”œā”€ā”€ faSquareHackerNews.d.ts
│   │   │   ā”œā”€ā”€ faSquareHackerNews.js
│   │   │   ā”œā”€ā”€ faSquareInstagram.d.ts
│   │   │   ā”œā”€ā”€ faSquareInstagram.js
│   │   │   ā”œā”€ā”€ faSquareJs.d.ts
│   │   │   ā”œā”€ā”€ faSquareJs.js
│   │   │   ā”œā”€ā”€ faSquareKickstarter.d.ts
│   │   │   ā”œā”€ā”€ faSquareKickstarter.js
│   │   │   ā”œā”€ā”€ faSquareLastfm.d.ts
│   │   │   ā”œā”€ā”€ faSquareLastfm.js
│   │   │   ā”œā”€ā”€ faSquareLetterboxd.d.ts
│   │   │   ā”œā”€ā”€ faSquareLetterboxd.js
│   │   │   ā”œā”€ā”€ faSquareOdnoklassniki.d.ts
│   │   │   ā”œā”€ā”€ faSquareOdnoklassniki.js
│   │   │   ā”œā”€ā”€ faSquarePiedPiper.d.ts
│   │   │   ā”œā”€ā”€ faSquarePiedPiper.js
│   │   │   ā”œā”€ā”€ faSquarePinterest.d.ts
│   │   │   ā”œā”€ā”€ faSquarePinterest.js
│   │   │   ā”œā”€ā”€ faSquareReddit.d.ts
│   │   │   ā”œā”€ā”€ faSquareReddit.js
│   │   │   ā”œā”€ā”€ faSquareSnapchat.d.ts
│   │   │   ā”œā”€ā”€ faSquareSnapchat.js
│   │   │   ā”œā”€ā”€ faSquareSteam.d.ts
│   │   │   ā”œā”€ā”€ faSquareSteam.js
│   │   │   ā”œā”€ā”€ faSquareThreads.d.ts
│   │   │   ā”œā”€ā”€ faSquareThreads.js
│   │   │   ā”œā”€ā”€ faSquareTumblr.d.ts
│   │   │   ā”œā”€ā”€ faSquareTumblr.js
│   │   │   ā”œā”€ā”€ faSquareTwitter.d.ts
│   │   │   ā”œā”€ā”€ faSquareTwitter.js
│   │   │   ā”œā”€ā”€ faSquareUpwork.d.ts
│   │   │   ā”œā”€ā”€ faSquareUpwork.js
│   │   │   ā”œā”€ā”€ faSquareViadeo.d.ts
│   │   │   ā”œā”€ā”€ faSquareViadeo.js
│   │   │   ā”œā”€ā”€ faSquareVimeo.d.ts
│   │   │   ā”œā”€ā”€ faSquareVimeo.js
│   │   │   ā”œā”€ā”€ faSquareWebAwesome.d.ts
│   │   │   ā”œā”€ā”€ faSquareWebAwesome.js
│   │   │   ā”œā”€ā”€ faSquareWebAwesomeStroke.d.ts
│   │   │   ā”œā”€ā”€ faSquareWebAwesomeStroke.js
│   │   │   ā”œā”€ā”€ faSquareWhatsapp.d.ts
│   │   │   ā”œā”€ā”€ faSquareWhatsapp.js
│   │   │   ā”œā”€ā”€ faSquareXTwitter.d.ts
│   │   │   ā”œā”€ā”€ faSquareXTwitter.js
│   │   │   ā”œā”€ā”€ faSquareXing.d.ts
│   │   │   ā”œā”€ā”€ faSquareXing.js
│   │   │   ā”œā”€ā”€ faSquareYoutube.d.ts
│   │   │   ā”œā”€ā”€ faSquareYoutube.js
│   │   │   ā”œā”€ā”€ faSquarespace.d.ts
│   │   │   ā”œā”€ā”€ faSquarespace.js
│   │   │   ā”œā”€ā”€ faStackExchange.d.ts
│   │   │   ā”œā”€ā”€ faStackExchange.js
│   │   │   ā”œā”€ā”€ faStackOverflow.d.ts
│   │   │   ā”œā”€ā”€ faStackOverflow.js
│   │   │   ā”œā”€ā”€ faStackpath.d.ts
│   │   │   ā”œā”€ā”€ faStackpath.js
│   │   │   ā”œā”€ā”€ faStaylinked.d.ts
│   │   │   ā”œā”€ā”€ faStaylinked.js
│   │   │   ā”œā”€ā”€ faSteam.d.ts
│   │   │   ā”œā”€ā”€ faSteam.js
│   │   │   ā”œā”€ā”€ faSteamSquare.d.ts
│   │   │   ā”œā”€ā”€ faSteamSquare.js
│   │   │   ā”œā”€ā”€ faSteamSymbol.d.ts
│   │   │   ā”œā”€ā”€ faSteamSymbol.js
│   │   │   ā”œā”€ā”€ faStickerMule.d.ts
│   │   │   ā”œā”€ā”€ faStickerMule.js
│   │   │   ā”œā”€ā”€ faStrava.d.ts
│   │   │   ā”œā”€ā”€ faStrava.js
│   │   │   ā”œā”€ā”€ faStripe.d.ts
│   │   │   ā”œā”€ā”€ faStripe.js
│   │   │   ā”œā”€ā”€ faStripeS.d.ts
│   │   │   ā”œā”€ā”€ faStripeS.js
│   │   │   ā”œā”€ā”€ faStubber.d.ts
│   │   │   ā”œā”€ā”€ faStubber.js
│   │   │   ā”œā”€ā”€ faStudiovinari.d.ts
│   │   │   ā”œā”€ā”€ faStudiovinari.js
│   │   │   ā”œā”€ā”€ faStumbleupon.d.ts
│   │   │   ā”œā”€ā”€ faStumbleupon.js
│   │   │   ā”œā”€ā”€ faStumbleuponCircle.d.ts
│   │   │   ā”œā”€ā”€ faStumbleuponCircle.js
│   │   │   ā”œā”€ā”€ faSuperpowers.d.ts
│   │   │   ā”œā”€ā”€ faSuperpowers.js
│   │   │   ā”œā”€ā”€ faSupple.d.ts
│   │   │   ā”œā”€ā”€ faSupple.js
│   │   │   ā”œā”€ā”€ faSuse.d.ts
│   │   │   ā”œā”€ā”€ faSuse.js
│   │   │   ā”œā”€ā”€ faSwift.d.ts
│   │   │   ā”œā”€ā”€ faSwift.js
│   │   │   ā”œā”€ā”€ faSymfony.d.ts
│   │   │   ā”œā”€ā”€ faSymfony.js
│   │   │   ā”œā”€ā”€ faTeamspeak.d.ts
│   │   │   ā”œā”€ā”€ faTeamspeak.js
│   │   │   ā”œā”€ā”€ faTelegram.d.ts
│   │   │   ā”œā”€ā”€ faTelegram.js
│   │   │   ā”œā”€ā”€ faTelegramPlane.d.ts
│   │   │   ā”œā”€ā”€ faTelegramPlane.js
│   │   │   ā”œā”€ā”€ faTencentWeibo.d.ts
│   │   │   ā”œā”€ā”€ faTencentWeibo.js
│   │   │   ā”œā”€ā”€ faTheRedYeti.d.ts
│   │   │   ā”œā”€ā”€ faTheRedYeti.js
│   │   │   ā”œā”€ā”€ faThemeco.d.ts
│   │   │   ā”œā”€ā”€ faThemeco.js
│   │   │   ā”œā”€ā”€ faThemeisle.d.ts
│   │   │   ā”œā”€ā”€ faThemeisle.js
│   │   │   ā”œā”€ā”€ faThinkPeaks.d.ts
│   │   │   ā”œā”€ā”€ faThinkPeaks.js
│   │   │   ā”œā”€ā”€ faThreads.d.ts
│   │   │   ā”œā”€ā”€ faThreads.js
│   │   │   ā”œā”€ā”€ faTiktok.d.ts
│   │   │   ā”œā”€ā”€ faTiktok.js
│   │   │   ā”œā”€ā”€ faTradeFederation.d.ts
│   │   │   ā”œā”€ā”€ faTradeFederation.js
│   │   │   ā”œā”€ā”€ faTrello.d.ts
│   │   │   ā”œā”€ā”€ faTrello.js
│   │   │   ā”œā”€ā”€ faTumblr.d.ts
│   │   │   ā”œā”€ā”€ faTumblr.js
│   │   │   ā”œā”€ā”€ faTumblrSquare.d.ts
│   │   │   ā”œā”€ā”€ faTumblrSquare.js
│   │   │   ā”œā”€ā”€ faTwitch.d.ts
│   │   │   ā”œā”€ā”€ faTwitch.js
│   │   │   ā”œā”€ā”€ faTwitter.d.ts
│   │   │   ā”œā”€ā”€ faTwitter.js
│   │   │   ā”œā”€ā”€ faTwitterSquare.d.ts
│   │   │   ā”œā”€ā”€ faTwitterSquare.js
│   │   │   ā”œā”€ā”€ faTypo3.d.ts
│   │   │   ā”œā”€ā”€ faTypo3.js
│   │   │   ā”œā”€ā”€ faUber.d.ts
│   │   │   ā”œā”€ā”€ faUber.js
│   │   │   ā”œā”€ā”€ faUbuntu.d.ts
│   │   │   ā”œā”€ā”€ faUbuntu.js
│   │   │   ā”œā”€ā”€ faUikit.d.ts
│   │   │   ā”œā”€ā”€ faUikit.js
│   │   │   ā”œā”€ā”€ faUmbraco.d.ts
│   │   │   ā”œā”€ā”€ faUmbraco.js
│   │   │   ā”œā”€ā”€ faUncharted.d.ts
│   │   │   ā”œā”€ā”€ faUncharted.js
│   │   │   ā”œā”€ā”€ faUniregistry.d.ts
│   │   │   ā”œā”€ā”€ faUniregistry.js
│   │   │   ā”œā”€ā”€ faUnity.d.ts
│   │   │   ā”œā”€ā”€ faUnity.js
│   │   │   ā”œā”€ā”€ faUnsplash.d.ts
│   │   │   ā”œā”€ā”€ faUnsplash.js
│   │   │   ā”œā”€ā”€ faUntappd.d.ts
│   │   │   ā”œā”€ā”€ faUntappd.js
│   │   │   ā”œā”€ā”€ faUps.d.ts
│   │   │   ā”œā”€ā”€ faUps.js
│   │   │   ā”œā”€ā”€ faUpwork.d.ts
│   │   │   ā”œā”€ā”€ faUpwork.js
│   │   │   ā”œā”€ā”€ faUsb.d.ts
│   │   │   ā”œā”€ā”€ faUsb.js
│   │   │   ā”œā”€ā”€ faUsps.d.ts
│   │   │   ā”œā”€ā”€ faUsps.js
│   │   │   ā”œā”€ā”€ faUssunnah.d.ts
│   │   │   ā”œā”€ā”€ faUssunnah.js
│   │   │   ā”œā”€ā”€ faVaadin.d.ts
│   │   │   ā”œā”€ā”€ faVaadin.js
│   │   │   ā”œā”€ā”€ faViacoin.d.ts
│   │   │   ā”œā”€ā”€ faViacoin.js
│   │   │   ā”œā”€ā”€ faViadeo.d.ts
│   │   │   ā”œā”€ā”€ faViadeo.js
│   │   │   ā”œā”€ā”€ faViadeoSquare.d.ts
│   │   │   ā”œā”€ā”€ faViadeoSquare.js
│   │   │   ā”œā”€ā”€ faViber.d.ts
│   │   │   ā”œā”€ā”€ faViber.js
│   │   │   ā”œā”€ā”€ faVimeo.d.ts
│   │   │   ā”œā”€ā”€ faVimeo.js
│   │   │   ā”œā”€ā”€ faVimeoSquare.d.ts
│   │   │   ā”œā”€ā”€ faVimeoSquare.js
│   │   │   ā”œā”€ā”€ faVimeoV.d.ts
│   │   │   ā”œā”€ā”€ faVimeoV.js
│   │   │   ā”œā”€ā”€ faVine.d.ts
│   │   │   ā”œā”€ā”€ faVine.js
│   │   │   ā”œā”€ā”€ faVk.d.ts
│   │   │   ā”œā”€ā”€ faVk.js
│   │   │   ā”œā”€ā”€ faVnv.d.ts
│   │   │   ā”œā”€ā”€ faVnv.js
│   │   │   ā”œā”€ā”€ faVuejs.d.ts
│   │   │   ā”œā”€ā”€ faVuejs.js
│   │   │   ā”œā”€ā”€ faWatchmanMonitoring.d.ts
│   │   │   ā”œā”€ā”€ faWatchmanMonitoring.js
│   │   │   ā”œā”€ā”€ faWaze.d.ts
│   │   │   ā”œā”€ā”€ faWaze.js
│   │   │   ā”œā”€ā”€ faWebAwesome.d.ts
│   │   │   ā”œā”€ā”€ faWebAwesome.js
│   │   │   ā”œā”€ā”€ faWebflow.d.ts
│   │   │   ā”œā”€ā”€ faWebflow.js
│   │   │   ā”œā”€ā”€ faWeebly.d.ts
│   │   │   ā”œā”€ā”€ faWeebly.js
│   │   │   ā”œā”€ā”€ faWeibo.d.ts
│   │   │   ā”œā”€ā”€ faWeibo.js
│   │   │   ā”œā”€ā”€ faWeixin.d.ts
│   │   │   ā”œā”€ā”€ faWeixin.js
│   │   │   ā”œā”€ā”€ faWhatsapp.d.ts
│   │   │   ā”œā”€ā”€ faWhatsapp.js
│   │   │   ā”œā”€ā”€ faWhatsappSquare.d.ts
│   │   │   ā”œā”€ā”€ faWhatsappSquare.js
│   │   │   ā”œā”€ā”€ faWhmcs.d.ts
│   │   │   ā”œā”€ā”€ faWhmcs.js
│   │   │   ā”œā”€ā”€ faWikipediaW.d.ts
│   │   │   ā”œā”€ā”€ faWikipediaW.js
│   │   │   ā”œā”€ā”€ faWindows.d.ts
│   │   │   ā”œā”€ā”€ faWindows.js
│   │   │   ā”œā”€ā”€ faWirsindhandwerk.d.ts
│   │   │   ā”œā”€ā”€ faWirsindhandwerk.js
│   │   │   ā”œā”€ā”€ faWix.d.ts
│   │   │   ā”œā”€ā”€ faWix.js
│   │   │   ā”œā”€ā”€ faWizardsOfTheCoast.d.ts
│   │   │   ā”œā”€ā”€ faWizardsOfTheCoast.js
│   │   │   ā”œā”€ā”€ faWodu.d.ts
│   │   │   ā”œā”€ā”€ faWodu.js
│   │   │   ā”œā”€ā”€ faWolfPackBattalion.d.ts
│   │   │   ā”œā”€ā”€ faWolfPackBattalion.js
│   │   │   ā”œā”€ā”€ faWordpress.d.ts
│   │   │   ā”œā”€ā”€ faWordpress.js
│   │   │   ā”œā”€ā”€ faWordpressSimple.d.ts
│   │   │   ā”œā”€ā”€ faWordpressSimple.js
│   │   │   ā”œā”€ā”€ faWpbeginner.d.ts
│   │   │   ā”œā”€ā”€ faWpbeginner.js
│   │   │   ā”œā”€ā”€ faWpexplorer.d.ts
│   │   │   ā”œā”€ā”€ faWpexplorer.js
│   │   │   ā”œā”€ā”€ faWpforms.d.ts
│   │   │   ā”œā”€ā”€ faWpforms.js
│   │   │   ā”œā”€ā”€ faWpressr.d.ts
│   │   │   ā”œā”€ā”€ faWpressr.js
│   │   │   ā”œā”€ā”€ faWsh.d.ts
│   │   │   ā”œā”€ā”€ faWsh.js
│   │   │   ā”œā”€ā”€ faXTwitter.d.ts
│   │   │   ā”œā”€ā”€ faXTwitter.js
│   │   │   ā”œā”€ā”€ faXbox.d.ts
│   │   │   ā”œā”€ā”€ faXbox.js
│   │   │   ā”œā”€ā”€ faXing.d.ts
│   │   │   ā”œā”€ā”€ faXing.js
│   │   │   ā”œā”€ā”€ faXingSquare.d.ts
│   │   │   ā”œā”€ā”€ faXingSquare.js
│   │   │   ā”œā”€ā”€ faYCombinator.d.ts
│   │   │   ā”œā”€ā”€ faYCombinator.js
│   │   │   ā”œā”€ā”€ faYahoo.d.ts
│   │   │   ā”œā”€ā”€ faYahoo.js
│   │   │   ā”œā”€ā”€ faYammer.d.ts
│   │   │   ā”œā”€ā”€ faYammer.js
│   │   │   ā”œā”€ā”€ faYandex.d.ts
│   │   │   ā”œā”€ā”€ faYandex.js
│   │   │   ā”œā”€ā”€ faYandexInternational.d.ts
│   │   │   ā”œā”€ā”€ faYandexInternational.js
│   │   │   ā”œā”€ā”€ faYarn.d.ts
│   │   │   ā”œā”€ā”€ faYarn.js
│   │   │   ā”œā”€ā”€ faYelp.d.ts
│   │   │   ā”œā”€ā”€ faYelp.js
│   │   │   ā”œā”€ā”€ faYoast.d.ts
│   │   │   ā”œā”€ā”€ faYoast.js
│   │   │   ā”œā”€ā”€ faYoutube.d.ts
│   │   │   ā”œā”€ā”€ faYoutube.js
│   │   │   ā”œā”€ā”€ faYoutubeSquare.d.ts
│   │   │   ā”œā”€ā”€ faYoutubeSquare.js
│   │   │   ā”œā”€ā”€ faZhihu.d.ts
│   │   │   ā”œā”€ā”€ faZhihu.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   └── package.json
│   │   ā”œā”€ā”€ free-regular-svg-icons
│   │   │   ā”œā”€ā”€ LICENSE.txt
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ faAddressBook.d.ts
│   │   │   ā”œā”€ā”€ faAddressBook.js
│   │   │   ā”œā”€ā”€ faAddressCard.d.ts
│   │   │   ā”œā”€ā”€ faAddressCard.js
│   │   │   ā”œā”€ā”€ faAngry.d.ts
│   │   │   ā”œā”€ā”€ faAngry.js
│   │   │   ā”œā”€ā”€ faArrowAltCircleDown.d.ts
│   │   │   ā”œā”€ā”€ faArrowAltCircleDown.js
│   │   │   ā”œā”€ā”€ faArrowAltCircleLeft.d.ts
│   │   │   ā”œā”€ā”€ faArrowAltCircleLeft.js
│   │   │   ā”œā”€ā”€ faArrowAltCircleRight.d.ts
│   │   │   ā”œā”€ā”€ faArrowAltCircleRight.js
│   │   │   ā”œā”€ā”€ faArrowAltCircleUp.d.ts
│   │   │   ā”œā”€ā”€ faArrowAltCircleUp.js
│   │   │   ā”œā”€ā”€ faBarChart.d.ts
│   │   │   ā”œā”€ā”€ faBarChart.js
│   │   │   ā”œā”€ā”€ faBell.d.ts
│   │   │   ā”œā”€ā”€ faBell.js
│   │   │   ā”œā”€ā”€ faBellSlash.d.ts
│   │   │   ā”œā”€ā”€ faBellSlash.js
│   │   │   ā”œā”€ā”€ faBookmark.d.ts
│   │   │   ā”œā”€ā”€ faBookmark.js
│   │   │   ā”œā”€ā”€ faBuilding.d.ts
│   │   │   ā”œā”€ā”€ faBuilding.js
│   │   │   ā”œā”€ā”€ faCalendar.d.ts
│   │   │   ā”œā”€ā”€ faCalendar.js
│   │   │   ā”œā”€ā”€ faCalendarAlt.d.ts
│   │   │   ā”œā”€ā”€ faCalendarAlt.js
│   │   │   ā”œā”€ā”€ faCalendarCheck.d.ts
│   │   │   ā”œā”€ā”€ faCalendarCheck.js
│   │   │   ā”œā”€ā”€ faCalendarDays.d.ts
│   │   │   ā”œā”€ā”€ faCalendarDays.js
│   │   │   ā”œā”€ā”€ faCalendarMinus.d.ts
│   │   │   ā”œā”€ā”€ faCalendarMinus.js
│   │   │   ā”œā”€ā”€ faCalendarPlus.d.ts
│   │   │   ā”œā”€ā”€ faCalendarPlus.js
│   │   │   ā”œā”€ā”€ faCalendarTimes.d.ts
│   │   │   ā”œā”€ā”€ faCalendarTimes.js
│   │   │   ā”œā”€ā”€ faCalendarXmark.d.ts
│   │   │   ā”œā”€ā”€ faCalendarXmark.js
│   │   │   ā”œā”€ā”€ faCaretSquareDown.d.ts
│   │   │   ā”œā”€ā”€ faCaretSquareDown.js
│   │   │   ā”œā”€ā”€ faCaretSquareLeft.d.ts
│   │   │   ā”œā”€ā”€ faCaretSquareLeft.js
│   │   │   ā”œā”€ā”€ faCaretSquareRight.d.ts
│   │   │   ā”œā”€ā”€ faCaretSquareRight.js
│   │   │   ā”œā”€ā”€ faCaretSquareUp.d.ts
│   │   │   ā”œā”€ā”€ faCaretSquareUp.js
│   │   │   ā”œā”€ā”€ faChartBar.d.ts
│   │   │   ā”œā”€ā”€ faChartBar.js
│   │   │   ā”œā”€ā”€ faCheckCircle.d.ts
│   │   │   ā”œā”€ā”€ faCheckCircle.js
│   │   │   ā”œā”€ā”€ faCheckSquare.d.ts
│   │   │   ā”œā”€ā”€ faCheckSquare.js
│   │   │   ā”œā”€ā”€ faChessBishop.d.ts
│   │   │   ā”œā”€ā”€ faChessBishop.js
│   │   │   ā”œā”€ā”€ faChessKing.d.ts
│   │   │   ā”œā”€ā”€ faChessKing.js
│   │   │   ā”œā”€ā”€ faChessKnight.d.ts
│   │   │   ā”œā”€ā”€ faChessKnight.js
│   │   │   ā”œā”€ā”€ faChessPawn.d.ts
│   │   │   ā”œā”€ā”€ faChessPawn.js
│   │   │   ā”œā”€ā”€ faChessQueen.d.ts
│   │   │   ā”œā”€ā”€ faChessQueen.js
│   │   │   ā”œā”€ā”€ faChessRook.d.ts
│   │   │   ā”œā”€ā”€ faChessRook.js
│   │   │   ā”œā”€ā”€ faCircle.d.ts
│   │   │   ā”œā”€ā”€ faCircle.js
│   │   │   ā”œā”€ā”€ faCircleCheck.d.ts
│   │   │   ā”œā”€ā”€ faCircleCheck.js
│   │   │   ā”œā”€ā”€ faCircleDot.d.ts
│   │   │   ā”œā”€ā”€ faCircleDot.js
│   │   │   ā”œā”€ā”€ faCircleDown.d.ts
│   │   │   ā”œā”€ā”€ faCircleDown.js
│   │   │   ā”œā”€ā”€ faCircleLeft.d.ts
│   │   │   ā”œā”€ā”€ faCircleLeft.js
│   │   │   ā”œā”€ā”€ faCirclePause.d.ts
│   │   │   ā”œā”€ā”€ faCirclePause.js
│   │   │   ā”œā”€ā”€ faCirclePlay.d.ts
│   │   │   ā”œā”€ā”€ faCirclePlay.js
│   │   │   ā”œā”€ā”€ faCircleQuestion.d.ts
│   │   │   ā”œā”€ā”€ faCircleQuestion.js
│   │   │   ā”œā”€ā”€ faCircleRight.d.ts
│   │   │   ā”œā”€ā”€ faCircleRight.js
│   │   │   ā”œā”€ā”€ faCircleStop.d.ts
│   │   │   ā”œā”€ā”€ faCircleStop.js
│   │   │   ā”œā”€ā”€ faCircleUp.d.ts
│   │   │   ā”œā”€ā”€ faCircleUp.js
│   │   │   ā”œā”€ā”€ faCircleUser.d.ts
│   │   │   ā”œā”€ā”€ faCircleUser.js
│   │   │   ā”œā”€ā”€ faCircleXmark.d.ts
│   │   │   ā”œā”€ā”€ faCircleXmark.js
│   │   │   ā”œā”€ā”€ faClipboard.d.ts
│   │   │   ā”œā”€ā”€ faClipboard.js
│   │   │   ā”œā”€ā”€ faClock.d.ts
│   │   │   ā”œā”€ā”€ faClock.js
│   │   │   ā”œā”€ā”€ faClockFour.d.ts
│   │   │   ā”œā”€ā”€ faClockFour.js
│   │   │   ā”œā”€ā”€ faClone.d.ts
│   │   │   ā”œā”€ā”€ faClone.js
│   │   │   ā”œā”€ā”€ faClosedCaptioning.d.ts
│   │   │   ā”œā”€ā”€ faClosedCaptioning.js
│   │   │   ā”œā”€ā”€ faComment.d.ts
│   │   │   ā”œā”€ā”€ faComment.js
│   │   │   ā”œā”€ā”€ faCommentAlt.d.ts
│   │   │   ā”œā”€ā”€ faCommentAlt.js
│   │   │   ā”œā”€ā”€ faCommentDots.d.ts
│   │   │   ā”œā”€ā”€ faCommentDots.js
│   │   │   ā”œā”€ā”€ faCommenting.d.ts
│   │   │   ā”œā”€ā”€ faCommenting.js
│   │   │   ā”œā”€ā”€ faComments.d.ts
│   │   │   ā”œā”€ā”€ faComments.js
│   │   │   ā”œā”€ā”€ faCompass.d.ts
│   │   │   ā”œā”€ā”€ faCompass.js
│   │   │   ā”œā”€ā”€ faContactBook.d.ts
│   │   │   ā”œā”€ā”€ faContactBook.js
│   │   │   ā”œā”€ā”€ faContactCard.d.ts
│   │   │   ā”œā”€ā”€ faContactCard.js
│   │   │   ā”œā”€ā”€ faCopy.d.ts
│   │   │   ā”œā”€ā”€ faCopy.js
│   │   │   ā”œā”€ā”€ faCopyright.d.ts
│   │   │   ā”œā”€ā”€ faCopyright.js
│   │   │   ā”œā”€ā”€ faCreditCard.d.ts
│   │   │   ā”œā”€ā”€ faCreditCard.js
│   │   │   ā”œā”€ā”€ faCreditCardAlt.d.ts
│   │   │   ā”œā”€ā”€ faCreditCardAlt.js
│   │   │   ā”œā”€ā”€ faDizzy.d.ts
│   │   │   ā”œā”€ā”€ faDizzy.js
│   │   │   ā”œā”€ā”€ faDotCircle.d.ts
│   │   │   ā”œā”€ā”€ faDotCircle.js
│   │   │   ā”œā”€ā”€ faDriversLicense.d.ts
│   │   │   ā”œā”€ā”€ faDriversLicense.js
│   │   │   ā”œā”€ā”€ faEdit.d.ts
│   │   │   ā”œā”€ā”€ faEdit.js
│   │   │   ā”œā”€ā”€ faEnvelope.d.ts
│   │   │   ā”œā”€ā”€ faEnvelope.js
│   │   │   ā”œā”€ā”€ faEnvelopeOpen.d.ts
│   │   │   ā”œā”€ā”€ faEnvelopeOpen.js
│   │   │   ā”œā”€ā”€ faEye.d.ts
│   │   │   ā”œā”€ā”€ faEye.js
│   │   │   ā”œā”€ā”€ faEyeSlash.d.ts
│   │   │   ā”œā”€ā”€ faEyeSlash.js
│   │   │   ā”œā”€ā”€ faFaceAngry.d.ts
│   │   │   ā”œā”€ā”€ faFaceAngry.js
│   │   │   ā”œā”€ā”€ faFaceDizzy.d.ts
│   │   │   ā”œā”€ā”€ faFaceDizzy.js
│   │   │   ā”œā”€ā”€ faFaceFlushed.d.ts
│   │   │   ā”œā”€ā”€ faFaceFlushed.js
│   │   │   ā”œā”€ā”€ faFaceFrown.d.ts
│   │   │   ā”œā”€ā”€ faFaceFrown.js
│   │   │   ā”œā”€ā”€ faFaceFrownOpen.d.ts
│   │   │   ā”œā”€ā”€ faFaceFrownOpen.js
│   │   │   ā”œā”€ā”€ faFaceGrimace.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrimace.js
│   │   │   ā”œā”€ā”€ faFaceGrin.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrin.js
│   │   │   ā”œā”€ā”€ faFaceGrinBeam.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinBeam.js
│   │   │   ā”œā”€ā”€ faFaceGrinBeamSweat.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinBeamSweat.js
│   │   │   ā”œā”€ā”€ faFaceGrinHearts.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinHearts.js
│   │   │   ā”œā”€ā”€ faFaceGrinSquint.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinSquint.js
│   │   │   ā”œā”€ā”€ faFaceGrinSquintTears.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinSquintTears.js
│   │   │   ā”œā”€ā”€ faFaceGrinStars.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinStars.js
│   │   │   ā”œā”€ā”€ faFaceGrinTears.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinTears.js
│   │   │   ā”œā”€ā”€ faFaceGrinTongue.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinTongue.js
│   │   │   ā”œā”€ā”€ faFaceGrinTongueSquint.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinTongueSquint.js
│   │   │   ā”œā”€ā”€ faFaceGrinTongueWink.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinTongueWink.js
│   │   │   ā”œā”€ā”€ faFaceGrinWide.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinWide.js
│   │   │   ā”œā”€ā”€ faFaceGrinWink.d.ts
│   │   │   ā”œā”€ā”€ faFaceGrinWink.js
│   │   │   ā”œā”€ā”€ faFaceKiss.d.ts
│   │   │   ā”œā”€ā”€ faFaceKiss.js
│   │   │   ā”œā”€ā”€ faFaceKissBeam.d.ts
│   │   │   ā”œā”€ā”€ faFaceKissBeam.js
│   │   │   ā”œā”€ā”€ faFaceKissWinkHeart.d.ts
│   │   │   ā”œā”€ā”€ faFaceKissWinkHeart.js
│   │   │   ā”œā”€ā”€ faFaceLaugh.d.ts
│   │   │   ā”œā”€ā”€ faFaceLaugh.js
│   │   │   ā”œā”€ā”€ faFaceLaughBeam.d.ts
│   │   │   ā”œā”€ā”€ faFaceLaughBeam.js
│   │   │   ā”œā”€ā”€ faFaceLaughSquint.d.ts
│   │   │   ā”œā”€ā”€ faFaceLaughSquint.js
│   │   │   ā”œā”€ā”€ faFaceLaughWink.d.ts
│   │   │   ā”œā”€ā”€ faFaceLaughWink.js
│   │   │   ā”œā”€ā”€ faFaceMeh.d.ts
│   │   │   ā”œā”€ā”€ faFaceMeh.js
│   │   │   ā”œā”€ā”€ faFaceMehBlank.d.ts
│   │   │   ā”œā”€ā”€ faFaceMehBlank.js
│   │   │   ā”œā”€ā”€ faFaceRollingEyes.d.ts
│   │   │   ā”œā”€ā”€ faFaceRollingEyes.js
│   │   │   ā”œā”€ā”€ faFaceSadCry.d.ts
│   │   │   ā”œā”€ā”€ faFaceSadCry.js
│   │   │   ā”œā”€ā”€ faFaceSadTear.d.ts
│   │   │   ā”œā”€ā”€ faFaceSadTear.js
│   │   │   ā”œā”€ā”€ faFaceSmile.d.ts
│   │   │   ā”œā”€ā”€ faFaceSmile.js
│   │   │   ā”œā”€ā”€ faFaceSmileBeam.d.ts
│   │   │   ā”œā”€ā”€ faFaceSmileBeam.js
│   │   │   ā”œā”€ā”€ faFaceSmileWink.d.ts
│   │   │   ā”œā”€ā”€ faFaceSmileWink.js
│   │   │   ā”œā”€ā”€ faFaceSurprise.d.ts
│   │   │   ā”œā”€ā”€ faFaceSurprise.js
│   │   │   ā”œā”€ā”€ faFaceTired.d.ts
│   │   │   ā”œā”€ā”€ faFaceTired.js
│   │   │   ā”œā”€ā”€ faFile.d.ts
│   │   │   ā”œā”€ā”€ faFile.js
│   │   │   ā”œā”€ā”€ faFileAlt.d.ts
│   │   │   ā”œā”€ā”€ faFileAlt.js
│   │   │   ā”œā”€ā”€ faFileArchive.d.ts
│   │   │   ā”œā”€ā”€ faFileArchive.js
│   │   │   ā”œā”€ā”€ faFileAudio.d.ts
│   │   │   ā”œā”€ā”€ faFileAudio.js
│   │   │   ā”œā”€ā”€ faFileClipboard.d.ts
│   │   │   ā”œā”€ā”€ faFileClipboard.js
│   │   │   ā”œā”€ā”€ faFileCode.d.ts
│   │   │   ā”œā”€ā”€ faFileCode.js
│   │   │   ā”œā”€ā”€ faFileExcel.d.ts
│   │   │   ā”œā”€ā”€ faFileExcel.js
│   │   │   ā”œā”€ā”€ faFileImage.d.ts
│   │   │   ā”œā”€ā”€ faFileImage.js
│   │   │   ā”œā”€ā”€ faFileLines.d.ts
│   │   │   ā”œā”€ā”€ faFileLines.js
│   │   │   ā”œā”€ā”€ faFilePdf.d.ts
│   │   │   ā”œā”€ā”€ faFilePdf.js
│   │   │   ā”œā”€ā”€ faFilePowerpoint.d.ts
│   │   │   ā”œā”€ā”€ faFilePowerpoint.js
│   │   │   ā”œā”€ā”€ faFileText.d.ts
│   │   │   ā”œā”€ā”€ faFileText.js
│   │   │   ā”œā”€ā”€ faFileVideo.d.ts
│   │   │   ā”œā”€ā”€ faFileVideo.js
│   │   │   ā”œā”€ā”€ faFileWord.d.ts
│   │   │   ā”œā”€ā”€ faFileWord.js
│   │   │   ā”œā”€ā”€ faFileZipper.d.ts
│   │   │   ā”œā”€ā”€ faFileZipper.js
│   │   │   ā”œā”€ā”€ faFlag.d.ts
│   │   │   ā”œā”€ā”€ faFlag.js
│   │   │   ā”œā”€ā”€ faFloppyDisk.d.ts
│   │   │   ā”œā”€ā”€ faFloppyDisk.js
│   │   │   ā”œā”€ā”€ faFlushed.d.ts
│   │   │   ā”œā”€ā”€ faFlushed.js
│   │   │   ā”œā”€ā”€ faFolder.d.ts
│   │   │   ā”œā”€ā”€ faFolder.js
│   │   │   ā”œā”€ā”€ faFolderBlank.d.ts
│   │   │   ā”œā”€ā”€ faFolderBlank.js
│   │   │   ā”œā”€ā”€ faFolderClosed.d.ts
│   │   │   ā”œā”€ā”€ faFolderClosed.js
│   │   │   ā”œā”€ā”€ faFolderOpen.d.ts
│   │   │   ā”œā”€ā”€ faFolderOpen.js
│   │   │   ā”œā”€ā”€ faFontAwesome.d.ts
│   │   │   ā”œā”€ā”€ faFontAwesome.js
│   │   │   ā”œā”€ā”€ faFontAwesomeFlag.d.ts
│   │   │   ā”œā”€ā”€ faFontAwesomeFlag.js
│   │   │   ā”œā”€ā”€ faFontAwesomeLogoFull.d.ts
│   │   │   ā”œā”€ā”€ faFontAwesomeLogoFull.js
│   │   │   ā”œā”€ā”€ faFrown.d.ts
│   │   │   ā”œā”€ā”€ faFrown.js
│   │   │   ā”œā”€ā”€ faFrownOpen.d.ts
│   │   │   ā”œā”€ā”€ faFrownOpen.js
│   │   │   ā”œā”€ā”€ faFutbol.d.ts
│   │   │   ā”œā”€ā”€ faFutbol.js
│   │   │   ā”œā”€ā”€ faFutbolBall.d.ts
│   │   │   ā”œā”€ā”€ faFutbolBall.js
│   │   │   ā”œā”€ā”€ faGem.d.ts
│   │   │   ā”œā”€ā”€ faGem.js
│   │   │   ā”œā”€ā”€ faGrimace.d.ts
│   │   │   ā”œā”€ā”€ faGrimace.js
│   │   │   ā”œā”€ā”€ faGrin.d.ts
│   │   │   ā”œā”€ā”€ faGrin.js
│   │   │   ā”œā”€ā”€ faGrinAlt.d.ts
│   │   │   ā”œā”€ā”€ faGrinAlt.js
│   │   │   ā”œā”€ā”€ faGrinBeam.d.ts
│   │   │   ā”œā”€ā”€ faGrinBeam.js
│   │   │   ā”œā”€ā”€ faGrinBeamSweat.d.ts
│   │   │   ā”œā”€ā”€ faGrinBeamSweat.js
│   │   │   ā”œā”€ā”€ faGrinHearts.d.ts
│   │   │   ā”œā”€ā”€ faGrinHearts.js
│   │   │   ā”œā”€ā”€ faGrinSquint.d.ts
│   │   │   ā”œā”€ā”€ faGrinSquint.js
│   │   │   ā”œā”€ā”€ faGrinSquintTears.d.ts
│   │   │   ā”œā”€ā”€ faGrinSquintTears.js
│   │   │   ā”œā”€ā”€ faGrinStars.d.ts
│   │   │   ā”œā”€ā”€ faGrinStars.js
│   │   │   ā”œā”€ā”€ faGrinTears.d.ts
│   │   │   ā”œā”€ā”€ faGrinTears.js
│   │   │   ā”œā”€ā”€ faGrinTongue.d.ts
│   │   │   ā”œā”€ā”€ faGrinTongue.js
│   │   │   ā”œā”€ā”€ faGrinTongueSquint.d.ts
│   │   │   ā”œā”€ā”€ faGrinTongueSquint.js
│   │   │   ā”œā”€ā”€ faGrinTongueWink.d.ts
│   │   │   ā”œā”€ā”€ faGrinTongueWink.js
│   │   │   ā”œā”€ā”€ faGrinWink.d.ts
│   │   │   ā”œā”€ā”€ faGrinWink.js
│   │   │   ā”œā”€ā”€ faHand.d.ts
│   │   │   ā”œā”€ā”€ faHand.js
│   │   │   ā”œā”€ā”€ faHandBackFist.d.ts
│   │   │   ā”œā”€ā”€ faHandBackFist.js
│   │   │   ā”œā”€ā”€ faHandLizard.d.ts
│   │   │   ā”œā”€ā”€ faHandLizard.js
│   │   │   ā”œā”€ā”€ faHandPaper.d.ts
│   │   │   ā”œā”€ā”€ faHandPaper.js
│   │   │   ā”œā”€ā”€ faHandPeace.d.ts
│   │   │   ā”œā”€ā”€ faHandPeace.js
│   │   │   ā”œā”€ā”€ faHandPointDown.d.ts
│   │   │   ā”œā”€ā”€ faHandPointDown.js
│   │   │   ā”œā”€ā”€ faHandPointLeft.d.ts
│   │   │   ā”œā”€ā”€ faHandPointLeft.js
│   │   │   ā”œā”€ā”€ faHandPointRight.d.ts
│   │   │   ā”œā”€ā”€ faHandPointRight.js
│   │   │   ā”œā”€ā”€ faHandPointUp.d.ts
│   │   │   ā”œā”€ā”€ faHandPointUp.js
│   │   │   ā”œā”€ā”€ faHandPointer.d.ts
│   │   │   ā”œā”€ā”€ faHandPointer.js
│   │   │   ā”œā”€ā”€ faHandRock.d.ts
│   │   │   ā”œā”€ā”€ faHandRock.js
│   │   │   ā”œā”€ā”€ faHandScissors.d.ts
│   │   │   ā”œā”€ā”€ faHandScissors.js
│   │   │   ā”œā”€ā”€ faHandSpock.d.ts
│   │   │   ā”œā”€ā”€ faHandSpock.js
│   │   │   ā”œā”€ā”€ faHandshake.d.ts
│   │   │   ā”œā”€ā”€ faHandshake.js
│   │   │   ā”œā”€ā”€ faHardDrive.d.ts
│   │   │   ā”œā”€ā”€ faHardDrive.js
│   │   │   ā”œā”€ā”€ faHdd.d.ts
│   │   │   ā”œā”€ā”€ faHdd.js
│   │   │   ā”œā”€ā”€ faHeart.d.ts
│   │   │   ā”œā”€ā”€ faHeart.js
│   │   │   ā”œā”€ā”€ faHospital.d.ts
│   │   │   ā”œā”€ā”€ faHospital.js
│   │   │   ā”œā”€ā”€ faHospitalAlt.d.ts
│   │   │   ā”œā”€ā”€ faHospitalAlt.js
│   │   │   ā”œā”€ā”€ faHospitalWide.d.ts
│   │   │   ā”œā”€ā”€ faHospitalWide.js
│   │   │   ā”œā”€ā”€ faHourglass.d.ts
│   │   │   ā”œā”€ā”€ faHourglass.js
│   │   │   ā”œā”€ā”€ faHourglass2.d.ts
│   │   │   ā”œā”€ā”€ faHourglass2.js
│   │   │   ā”œā”€ā”€ faHourglassEmpty.d.ts
│   │   │   ā”œā”€ā”€ faHourglassEmpty.js
│   │   │   ā”œā”€ā”€ faHourglassHalf.d.ts
│   │   │   ā”œā”€ā”€ faHourglassHalf.js
│   │   │   ā”œā”€ā”€ faIdBadge.d.ts
│   │   │   ā”œā”€ā”€ faIdBadge.js
│   │   │   ā”œā”€ā”€ faIdCard.d.ts
│   │   │   ā”œā”€ā”€ faIdCard.js
│   │   │   ā”œā”€ā”€ faImage.d.ts
│   │   │   ā”œā”€ā”€ faImage.js
│   │   │   ā”œā”€ā”€ faImages.d.ts
│   │   │   ā”œā”€ā”€ faImages.js
│   │   │   ā”œā”€ā”€ faKeyboard.d.ts
│   │   │   ā”œā”€ā”€ faKeyboard.js
│   │   │   ā”œā”€ā”€ faKiss.d.ts
│   │   │   ā”œā”€ā”€ faKiss.js
│   │   │   ā”œā”€ā”€ faKissBeam.d.ts
│   │   │   ā”œā”€ā”€ faKissBeam.js
│   │   │   ā”œā”€ā”€ faKissWinkHeart.d.ts
│   │   │   ā”œā”€ā”€ faKissWinkHeart.js
│   │   │   ā”œā”€ā”€ faLaugh.d.ts
│   │   │   ā”œā”€ā”€ faLaugh.js
│   │   │   ā”œā”€ā”€ faLaughBeam.d.ts
│   │   │   ā”œā”€ā”€ faLaughBeam.js
│   │   │   ā”œā”€ā”€ faLaughSquint.d.ts
│   │   │   ā”œā”€ā”€ faLaughSquint.js
│   │   │   ā”œā”€ā”€ faLaughWink.d.ts
│   │   │   ā”œā”€ā”€ faLaughWink.js
│   │   │   ā”œā”€ā”€ faLemon.d.ts
│   │   │   ā”œā”€ā”€ faLemon.js
│   │   │   ā”œā”€ā”€ faLifeRing.d.ts
│   │   │   ā”œā”€ā”€ faLifeRing.js
│   │   │   ā”œā”€ā”€ faLightbulb.d.ts
│   │   │   ā”œā”€ā”€ faLightbulb.js
│   │   │   ā”œā”€ā”€ faListAlt.d.ts
│   │   │   ā”œā”€ā”€ faListAlt.js
│   │   │   ā”œā”€ā”€ faMap.d.ts
│   │   │   ā”œā”€ā”€ faMap.js
│   │   │   ā”œā”€ā”€ faMeh.d.ts
│   │   │   ā”œā”€ā”€ faMeh.js
│   │   │   ā”œā”€ā”€ faMehBlank.d.ts
│   │   │   ā”œā”€ā”€ faMehBlank.js
│   │   │   ā”œā”€ā”€ faMehRollingEyes.d.ts
│   │   │   ā”œā”€ā”€ faMehRollingEyes.js
│   │   │   ā”œā”€ā”€ faMessage.d.ts
│   │   │   ā”œā”€ā”€ faMessage.js
│   │   │   ā”œā”€ā”€ faMinusSquare.d.ts
│   │   │   ā”œā”€ā”€ faMinusSquare.js
│   │   │   ā”œā”€ā”€ faMoneyBill1.d.ts
│   │   │   ā”œā”€ā”€ faMoneyBill1.js
│   │   │   ā”œā”€ā”€ faMoneyBillAlt.d.ts
│   │   │   ā”œā”€ā”€ faMoneyBillAlt.js
│   │   │   ā”œā”€ā”€ faMoon.d.ts
│   │   │   ā”œā”€ā”€ faMoon.js
│   │   │   ā”œā”€ā”€ faNewspaper.d.ts
│   │   │   ā”œā”€ā”€ faNewspaper.js
│   │   │   ā”œā”€ā”€ faNoteSticky.d.ts
│   │   │   ā”œā”€ā”€ faNoteSticky.js
│   │   │   ā”œā”€ā”€ faObjectGroup.d.ts
│   │   │   ā”œā”€ā”€ faObjectGroup.js
│   │   │   ā”œā”€ā”€ faObjectUngroup.d.ts
│   │   │   ā”œā”€ā”€ faObjectUngroup.js
│   │   │   ā”œā”€ā”€ faPaperPlane.d.ts
│   │   │   ā”œā”€ā”€ faPaperPlane.js
│   │   │   ā”œā”€ā”€ faPaste.d.ts
│   │   │   ā”œā”€ā”€ faPaste.js
│   │   │   ā”œā”€ā”€ faPauseCircle.d.ts
│   │   │   ā”œā”€ā”€ faPauseCircle.js
│   │   │   ā”œā”€ā”€ faPenToSquare.d.ts
│   │   │   ā”œā”€ā”€ faPenToSquare.js
│   │   │   ā”œā”€ā”€ faPlayCircle.d.ts
│   │   │   ā”œā”€ā”€ faPlayCircle.js
│   │   │   ā”œā”€ā”€ faPlusSquare.d.ts
│   │   │   ā”œā”€ā”€ faPlusSquare.js
│   │   │   ā”œā”€ā”€ faQuestionCircle.d.ts
│   │   │   ā”œā”€ā”€ faQuestionCircle.js
│   │   │   ā”œā”€ā”€ faRectangleList.d.ts
│   │   │   ā”œā”€ā”€ faRectangleList.js
│   │   │   ā”œā”€ā”€ faRectangleTimes.d.ts
│   │   │   ā”œā”€ā”€ faRectangleTimes.js
│   │   │   ā”œā”€ā”€ faRectangleXmark.d.ts
│   │   │   ā”œā”€ā”€ faRectangleXmark.js
│   │   │   ā”œā”€ā”€ faRegistered.d.ts
│   │   │   ā”œā”€ā”€ faRegistered.js
│   │   │   ā”œā”€ā”€ faSadCry.d.ts
│   │   │   ā”œā”€ā”€ faSadCry.js
│   │   │   ā”œā”€ā”€ faSadTear.d.ts
│   │   │   ā”œā”€ā”€ faSadTear.js
│   │   │   ā”œā”€ā”€ faSave.d.ts
│   │   │   ā”œā”€ā”€ faSave.js
│   │   │   ā”œā”€ā”€ faShareFromSquare.d.ts
│   │   │   ā”œā”€ā”€ faShareFromSquare.js
│   │   │   ā”œā”€ā”€ faShareSquare.d.ts
│   │   │   ā”œā”€ā”€ faShareSquare.js
│   │   │   ā”œā”€ā”€ faSmile.d.ts
│   │   │   ā”œā”€ā”€ faSmile.js
│   │   │   ā”œā”€ā”€ faSmileBeam.d.ts
│   │   │   ā”œā”€ā”€ faSmileBeam.js
│   │   │   ā”œā”€ā”€ faSmileWink.d.ts
│   │   │   ā”œā”€ā”€ faSmileWink.js
│   │   │   ā”œā”€ā”€ faSnowflake.d.ts
│   │   │   ā”œā”€ā”€ faSnowflake.js
│   │   │   ā”œā”€ā”€ faSoccerBall.d.ts
│   │   │   ā”œā”€ā”€ faSoccerBall.js
│   │   │   ā”œā”€ā”€ faSquare.d.ts
│   │   │   ā”œā”€ā”€ faSquare.js
│   │   │   ā”œā”€ā”€ faSquareCaretDown.d.ts
│   │   │   ā”œā”€ā”€ faSquareCaretDown.js
│   │   │   ā”œā”€ā”€ faSquareCaretLeft.d.ts
│   │   │   ā”œā”€ā”€ faSquareCaretLeft.js
│   │   │   ā”œā”€ā”€ faSquareCaretRight.d.ts
│   │   │   ā”œā”€ā”€ faSquareCaretRight.js
│   │   │   ā”œā”€ā”€ faSquareCaretUp.d.ts
│   │   │   ā”œā”€ā”€ faSquareCaretUp.js
│   │   │   ā”œā”€ā”€ faSquareCheck.d.ts
│   │   │   ā”œā”€ā”€ faSquareCheck.js
│   │   │   ā”œā”€ā”€ faSquareFull.d.ts
│   │   │   ā”œā”€ā”€ faSquareFull.js
│   │   │   ā”œā”€ā”€ faSquareMinus.d.ts
│   │   │   ā”œā”€ā”€ faSquareMinus.js
│   │   │   ā”œā”€ā”€ faSquarePlus.d.ts
│   │   │   ā”œā”€ā”€ faSquarePlus.js
│   │   │   ā”œā”€ā”€ faStar.d.ts
│   │   │   ā”œā”€ā”€ faStar.js
│   │   │   ā”œā”€ā”€ faStarHalf.d.ts
│   │   │   ā”œā”€ā”€ faStarHalf.js
│   │   │   ā”œā”€ā”€ faStarHalfAlt.d.ts
│   │   │   ā”œā”€ā”€ faStarHalfAlt.js
│   │   │   ā”œā”€ā”€ faStarHalfStroke.d.ts
│   │   │   ā”œā”€ā”€ faStarHalfStroke.js
│   │   │   ā”œā”€ā”€ faStickyNote.d.ts
│   │   │   ā”œā”€ā”€ faStickyNote.js
│   │   │   ā”œā”€ā”€ faStopCircle.d.ts
│   │   │   ā”œā”€ā”€ faStopCircle.js
│   │   │   ā”œā”€ā”€ faSun.d.ts
│   │   │   ā”œā”€ā”€ faSun.js
│   │   │   ā”œā”€ā”€ faSurprise.d.ts
│   │   │   ā”œā”€ā”€ faSurprise.js
│   │   │   ā”œā”€ā”€ faThumbsDown.d.ts
│   │   │   ā”œā”€ā”€ faThumbsDown.js
│   │   │   ā”œā”€ā”€ faThumbsUp.d.ts
│   │   │   ā”œā”€ā”€ faThumbsUp.js
│   │   │   ā”œā”€ā”€ faTimesCircle.d.ts
│   │   │   ā”œā”€ā”€ faTimesCircle.js
│   │   │   ā”œā”€ā”€ faTimesRectangle.d.ts
│   │   │   ā”œā”€ā”€ faTimesRectangle.js
│   │   │   ā”œā”€ā”€ faTired.d.ts
│   │   │   ā”œā”€ā”€ faTired.js
│   │   │   ā”œā”€ā”€ faTrashAlt.d.ts
│   │   │   ā”œā”€ā”€ faTrashAlt.js
│   │   │   ā”œā”€ā”€ faTrashCan.d.ts
│   │   │   ā”œā”€ā”€ faTrashCan.js
│   │   │   ā”œā”€ā”€ faUser.d.ts
│   │   │   ā”œā”€ā”€ faUser.js
│   │   │   ā”œā”€ā”€ faUserCircle.d.ts
│   │   │   ā”œā”€ā”€ faUserCircle.js
│   │   │   ā”œā”€ā”€ faVcard.d.ts
│   │   │   ā”œā”€ā”€ faVcard.js
│   │   │   ā”œā”€ā”€ faWindowClose.d.ts
│   │   │   ā”œā”€ā”€ faWindowClose.js
│   │   │   ā”œā”€ā”€ faWindowMaximize.d.ts
│   │   │   ā”œā”€ā”€ faWindowMaximize.js
│   │   │   ā”œā”€ā”€ faWindowMinimize.d.ts
│   │   │   ā”œā”€ā”€ faWindowMinimize.js
│   │   │   ā”œā”€ā”€ faWindowRestore.d.ts
│   │   │   ā”œā”€ā”€ faWindowRestore.js
│   │   │   ā”œā”€ā”€ faXmarkCircle.d.ts
│   │   │   ā”œā”€ā”€ faXmarkCircle.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   └── package.json
│   │   └── free-solid-svg-icons
│   │       ā”œā”€ā”€ LICENSE.txt
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ fa0.d.ts
│   │       ā”œā”€ā”€ fa0.js
│   │       ā”œā”€ā”€ fa1.d.ts
│   │       ā”œā”€ā”€ fa1.js
│   │       ā”œā”€ā”€ fa2.d.ts
│   │       ā”œā”€ā”€ fa2.js
│   │       ā”œā”€ā”€ fa3.d.ts
│   │       ā”œā”€ā”€ fa3.js
│   │       ā”œā”€ā”€ fa4.d.ts
│   │       ā”œā”€ā”€ fa4.js
│   │       ā”œā”€ā”€ fa5.d.ts
│   │       ā”œā”€ā”€ fa5.js
│   │       ā”œā”€ā”€ fa6.d.ts
│   │       ā”œā”€ā”€ fa6.js
│   │       ā”œā”€ā”€ fa7.d.ts
│   │       ā”œā”€ā”€ fa7.js
│   │       ā”œā”€ā”€ fa8.d.ts
│   │       ā”œā”€ā”€ fa8.js
│   │       ā”œā”€ā”€ fa9.d.ts
│   │       ā”œā”€ā”€ fa9.js
│   │       ā”œā”€ā”€ faA.d.ts
│   │       ā”œā”€ā”€ faA.js
│   │       ā”œā”€ā”€ faAd.d.ts
│   │       ā”œā”€ā”€ faAd.js
│   │       ā”œā”€ā”€ faAdd.d.ts
│   │       ā”œā”€ā”€ faAdd.js
│   │       ā”œā”€ā”€ faAddressBook.d.ts
│   │       ā”œā”€ā”€ faAddressBook.js
│   │       ā”œā”€ā”€ faAddressCard.d.ts
│   │       ā”œā”€ā”€ faAddressCard.js
│   │       ā”œā”€ā”€ faAdjust.d.ts
│   │       ā”œā”€ā”€ faAdjust.js
│   │       ā”œā”€ā”€ faAirFreshener.d.ts
│   │       ā”œā”€ā”€ faAirFreshener.js
│   │       ā”œā”€ā”€ faAlignCenter.d.ts
│   │       ā”œā”€ā”€ faAlignCenter.js
│   │       ā”œā”€ā”€ faAlignJustify.d.ts
│   │       ā”œā”€ā”€ faAlignJustify.js
│   │       ā”œā”€ā”€ faAlignLeft.d.ts
│   │       ā”œā”€ā”€ faAlignLeft.js
│   │       ā”œā”€ā”€ faAlignRight.d.ts
│   │       ā”œā”€ā”€ faAlignRight.js
│   │       ā”œā”€ā”€ faAllergies.d.ts
│   │       ā”œā”€ā”€ faAllergies.js
│   │       ā”œā”€ā”€ faAmbulance.d.ts
│   │       ā”œā”€ā”€ faAmbulance.js
│   │       ā”œā”€ā”€ faAmericanSignLanguageInterpreting.d.ts
│   │       ā”œā”€ā”€ faAmericanSignLanguageInterpreting.js
│   │       ā”œā”€ā”€ faAnchor.d.ts
│   │       ā”œā”€ā”€ faAnchor.js
│   │       ā”œā”€ā”€ faAnchorCircleCheck.d.ts
│   │       ā”œā”€ā”€ faAnchorCircleCheck.js
│   │       ā”œā”€ā”€ faAnchorCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faAnchorCircleExclamation.js
│   │       ā”œā”€ā”€ faAnchorCircleXmark.d.ts
│   │       ā”œā”€ā”€ faAnchorCircleXmark.js
│   │       ā”œā”€ā”€ faAnchorLock.d.ts
│   │       ā”œā”€ā”€ faAnchorLock.js
│   │       ā”œā”€ā”€ faAngleDoubleDown.d.ts
│   │       ā”œā”€ā”€ faAngleDoubleDown.js
│   │       ā”œā”€ā”€ faAngleDoubleLeft.d.ts
│   │       ā”œā”€ā”€ faAngleDoubleLeft.js
│   │       ā”œā”€ā”€ faAngleDoubleRight.d.ts
│   │       ā”œā”€ā”€ faAngleDoubleRight.js
│   │       ā”œā”€ā”€ faAngleDoubleUp.d.ts
│   │       ā”œā”€ā”€ faAngleDoubleUp.js
│   │       ā”œā”€ā”€ faAngleDown.d.ts
│   │       ā”œā”€ā”€ faAngleDown.js
│   │       ā”œā”€ā”€ faAngleLeft.d.ts
│   │       ā”œā”€ā”€ faAngleLeft.js
│   │       ā”œā”€ā”€ faAngleRight.d.ts
│   │       ā”œā”€ā”€ faAngleRight.js
│   │       ā”œā”€ā”€ faAngleUp.d.ts
│   │       ā”œā”€ā”€ faAngleUp.js
│   │       ā”œā”€ā”€ faAnglesDown.d.ts
│   │       ā”œā”€ā”€ faAnglesDown.js
│   │       ā”œā”€ā”€ faAnglesLeft.d.ts
│   │       ā”œā”€ā”€ faAnglesLeft.js
│   │       ā”œā”€ā”€ faAnglesRight.d.ts
│   │       ā”œā”€ā”€ faAnglesRight.js
│   │       ā”œā”€ā”€ faAnglesUp.d.ts
│   │       ā”œā”€ā”€ faAnglesUp.js
│   │       ā”œā”€ā”€ faAngry.d.ts
│   │       ā”œā”€ā”€ faAngry.js
│   │       ā”œā”€ā”€ faAnkh.d.ts
│   │       ā”œā”€ā”€ faAnkh.js
│   │       ā”œā”€ā”€ faAppleAlt.d.ts
│   │       ā”œā”€ā”€ faAppleAlt.js
│   │       ā”œā”€ā”€ faAppleWhole.d.ts
│   │       ā”œā”€ā”€ faAppleWhole.js
│   │       ā”œā”€ā”€ faArchive.d.ts
│   │       ā”œā”€ā”€ faArchive.js
│   │       ā”œā”€ā”€ faArchway.d.ts
│   │       ā”œā”€ā”€ faArchway.js
│   │       ā”œā”€ā”€ faAreaChart.d.ts
│   │       ā”œā”€ā”€ faAreaChart.js
│   │       ā”œā”€ā”€ faArrowAltCircleDown.d.ts
│   │       ā”œā”€ā”€ faArrowAltCircleDown.js
│   │       ā”œā”€ā”€ faArrowAltCircleLeft.d.ts
│   │       ā”œā”€ā”€ faArrowAltCircleLeft.js
│   │       ā”œā”€ā”€ faArrowAltCircleRight.d.ts
│   │       ā”œā”€ā”€ faArrowAltCircleRight.js
│   │       ā”œā”€ā”€ faArrowAltCircleUp.d.ts
│   │       ā”œā”€ā”€ faArrowAltCircleUp.js
│   │       ā”œā”€ā”€ faArrowCircleDown.d.ts
│   │       ā”œā”€ā”€ faArrowCircleDown.js
│   │       ā”œā”€ā”€ faArrowCircleLeft.d.ts
│   │       ā”œā”€ā”€ faArrowCircleLeft.js
│   │       ā”œā”€ā”€ faArrowCircleRight.d.ts
│   │       ā”œā”€ā”€ faArrowCircleRight.js
│   │       ā”œā”€ā”€ faArrowCircleUp.d.ts
│   │       ā”œā”€ā”€ faArrowCircleUp.js
│   │       ā”œā”€ā”€ faArrowDown.d.ts
│   │       ā”œā”€ā”€ faArrowDown.js
│   │       ā”œā”€ā”€ faArrowDown19.d.ts
│   │       ā”œā”€ā”€ faArrowDown19.js
│   │       ā”œā”€ā”€ faArrowDown91.d.ts
│   │       ā”œā”€ā”€ faArrowDown91.js
│   │       ā”œā”€ā”€ faArrowDownAZ.d.ts
│   │       ā”œā”€ā”€ faArrowDownAZ.js
│   │       ā”œā”€ā”€ faArrowDownLong.d.ts
│   │       ā”œā”€ā”€ faArrowDownLong.js
│   │       ā”œā”€ā”€ faArrowDownShortWide.d.ts
│   │       ā”œā”€ā”€ faArrowDownShortWide.js
│   │       ā”œā”€ā”€ faArrowDownUpAcrossLine.d.ts
│   │       ā”œā”€ā”€ faArrowDownUpAcrossLine.js
│   │       ā”œā”€ā”€ faArrowDownUpLock.d.ts
│   │       ā”œā”€ā”€ faArrowDownUpLock.js
│   │       ā”œā”€ā”€ faArrowDownWideShort.d.ts
│   │       ā”œā”€ā”€ faArrowDownWideShort.js
│   │       ā”œā”€ā”€ faArrowDownZA.d.ts
│   │       ā”œā”€ā”€ faArrowDownZA.js
│   │       ā”œā”€ā”€ faArrowLeft.d.ts
│   │       ā”œā”€ā”€ faArrowLeft.js
│   │       ā”œā”€ā”€ faArrowLeftLong.d.ts
│   │       ā”œā”€ā”€ faArrowLeftLong.js
│   │       ā”œā”€ā”€ faArrowLeftRotate.d.ts
│   │       ā”œā”€ā”€ faArrowLeftRotate.js
│   │       ā”œā”€ā”€ faArrowPointer.d.ts
│   │       ā”œā”€ā”€ faArrowPointer.js
│   │       ā”œā”€ā”€ faArrowRight.d.ts
│   │       ā”œā”€ā”€ faArrowRight.js
│   │       ā”œā”€ā”€ faArrowRightArrowLeft.d.ts
│   │       ā”œā”€ā”€ faArrowRightArrowLeft.js
│   │       ā”œā”€ā”€ faArrowRightFromBracket.d.ts
│   │       ā”œā”€ā”€ faArrowRightFromBracket.js
│   │       ā”œā”€ā”€ faArrowRightFromFile.d.ts
│   │       ā”œā”€ā”€ faArrowRightFromFile.js
│   │       ā”œā”€ā”€ faArrowRightLong.d.ts
│   │       ā”œā”€ā”€ faArrowRightLong.js
│   │       ā”œā”€ā”€ faArrowRightRotate.d.ts
│   │       ā”œā”€ā”€ faArrowRightRotate.js
│   │       ā”œā”€ā”€ faArrowRightToBracket.d.ts
│   │       ā”œā”€ā”€ faArrowRightToBracket.js
│   │       ā”œā”€ā”€ faArrowRightToCity.d.ts
│   │       ā”œā”€ā”€ faArrowRightToCity.js
│   │       ā”œā”€ā”€ faArrowRightToFile.d.ts
│   │       ā”œā”€ā”€ faArrowRightToFile.js
│   │       ā”œā”€ā”€ faArrowRotateBack.d.ts
│   │       ā”œā”€ā”€ faArrowRotateBack.js
│   │       ā”œā”€ā”€ faArrowRotateBackward.d.ts
│   │       ā”œā”€ā”€ faArrowRotateBackward.js
│   │       ā”œā”€ā”€ faArrowRotateForward.d.ts
│   │       ā”œā”€ā”€ faArrowRotateForward.js
│   │       ā”œā”€ā”€ faArrowRotateLeft.d.ts
│   │       ā”œā”€ā”€ faArrowRotateLeft.js
│   │       ā”œā”€ā”€ faArrowRotateRight.d.ts
│   │       ā”œā”€ā”€ faArrowRotateRight.js
│   │       ā”œā”€ā”€ faArrowTrendDown.d.ts
│   │       ā”œā”€ā”€ faArrowTrendDown.js
│   │       ā”œā”€ā”€ faArrowTrendUp.d.ts
│   │       ā”œā”€ā”€ faArrowTrendUp.js
│   │       ā”œā”€ā”€ faArrowTurnDown.d.ts
│   │       ā”œā”€ā”€ faArrowTurnDown.js
│   │       ā”œā”€ā”€ faArrowTurnUp.d.ts
│   │       ā”œā”€ā”€ faArrowTurnUp.js
│   │       ā”œā”€ā”€ faArrowUp.d.ts
│   │       ā”œā”€ā”€ faArrowUp.js
│   │       ā”œā”€ā”€ faArrowUp19.d.ts
│   │       ā”œā”€ā”€ faArrowUp19.js
│   │       ā”œā”€ā”€ faArrowUp91.d.ts
│   │       ā”œā”€ā”€ faArrowUp91.js
│   │       ā”œā”€ā”€ faArrowUpAZ.d.ts
│   │       ā”œā”€ā”€ faArrowUpAZ.js
│   │       ā”œā”€ā”€ faArrowUpFromBracket.d.ts
│   │       ā”œā”€ā”€ faArrowUpFromBracket.js
│   │       ā”œā”€ā”€ faArrowUpFromGroundWater.d.ts
│   │       ā”œā”€ā”€ faArrowUpFromGroundWater.js
│   │       ā”œā”€ā”€ faArrowUpFromWaterPump.d.ts
│   │       ā”œā”€ā”€ faArrowUpFromWaterPump.js
│   │       ā”œā”€ā”€ faArrowUpLong.d.ts
│   │       ā”œā”€ā”€ faArrowUpLong.js
│   │       ā”œā”€ā”€ faArrowUpRightDots.d.ts
│   │       ā”œā”€ā”€ faArrowUpRightDots.js
│   │       ā”œā”€ā”€ faArrowUpRightFromSquare.d.ts
│   │       ā”œā”€ā”€ faArrowUpRightFromSquare.js
│   │       ā”œā”€ā”€ faArrowUpShortWide.d.ts
│   │       ā”œā”€ā”€ faArrowUpShortWide.js
│   │       ā”œā”€ā”€ faArrowUpWideShort.d.ts
│   │       ā”œā”€ā”€ faArrowUpWideShort.js
│   │       ā”œā”€ā”€ faArrowUpZA.d.ts
│   │       ā”œā”€ā”€ faArrowUpZA.js
│   │       ā”œā”€ā”€ faArrows.d.ts
│   │       ā”œā”€ā”€ faArrows.js
│   │       ā”œā”€ā”€ faArrowsAlt.d.ts
│   │       ā”œā”€ā”€ faArrowsAlt.js
│   │       ā”œā”€ā”€ faArrowsAltH.d.ts
│   │       ā”œā”€ā”€ faArrowsAltH.js
│   │       ā”œā”€ā”€ faArrowsAltV.d.ts
│   │       ā”œā”€ā”€ faArrowsAltV.js
│   │       ā”œā”€ā”€ faArrowsDownToLine.d.ts
│   │       ā”œā”€ā”€ faArrowsDownToLine.js
│   │       ā”œā”€ā”€ faArrowsDownToPeople.d.ts
│   │       ā”œā”€ā”€ faArrowsDownToPeople.js
│   │       ā”œā”€ā”€ faArrowsH.d.ts
│   │       ā”œā”€ā”€ faArrowsH.js
│   │       ā”œā”€ā”€ faArrowsLeftRight.d.ts
│   │       ā”œā”€ā”€ faArrowsLeftRight.js
│   │       ā”œā”€ā”€ faArrowsLeftRightToLine.d.ts
│   │       ā”œā”€ā”€ faArrowsLeftRightToLine.js
│   │       ā”œā”€ā”€ faArrowsRotate.d.ts
│   │       ā”œā”€ā”€ faArrowsRotate.js
│   │       ā”œā”€ā”€ faArrowsSpin.d.ts
│   │       ā”œā”€ā”€ faArrowsSpin.js
│   │       ā”œā”€ā”€ faArrowsSplitUpAndLeft.d.ts
│   │       ā”œā”€ā”€ faArrowsSplitUpAndLeft.js
│   │       ā”œā”€ā”€ faArrowsToCircle.d.ts
│   │       ā”œā”€ā”€ faArrowsToCircle.js
│   │       ā”œā”€ā”€ faArrowsToDot.d.ts
│   │       ā”œā”€ā”€ faArrowsToDot.js
│   │       ā”œā”€ā”€ faArrowsToEye.d.ts
│   │       ā”œā”€ā”€ faArrowsToEye.js
│   │       ā”œā”€ā”€ faArrowsTurnRight.d.ts
│   │       ā”œā”€ā”€ faArrowsTurnRight.js
│   │       ā”œā”€ā”€ faArrowsTurnToDots.d.ts
│   │       ā”œā”€ā”€ faArrowsTurnToDots.js
│   │       ā”œā”€ā”€ faArrowsUpDown.d.ts
│   │       ā”œā”€ā”€ faArrowsUpDown.js
│   │       ā”œā”€ā”€ faArrowsUpDownLeftRight.d.ts
│   │       ā”œā”€ā”€ faArrowsUpDownLeftRight.js
│   │       ā”œā”€ā”€ faArrowsUpToLine.d.ts
│   │       ā”œā”€ā”€ faArrowsUpToLine.js
│   │       ā”œā”€ā”€ faArrowsV.d.ts
│   │       ā”œā”€ā”€ faArrowsV.js
│   │       ā”œā”€ā”€ faAslInterpreting.d.ts
│   │       ā”œā”€ā”€ faAslInterpreting.js
│   │       ā”œā”€ā”€ faAssistiveListeningSystems.d.ts
│   │       ā”œā”€ā”€ faAssistiveListeningSystems.js
│   │       ā”œā”€ā”€ faAsterisk.d.ts
│   │       ā”œā”€ā”€ faAsterisk.js
│   │       ā”œā”€ā”€ faAt.d.ts
│   │       ā”œā”€ā”€ faAt.js
│   │       ā”œā”€ā”€ faAtlas.d.ts
│   │       ā”œā”€ā”€ faAtlas.js
│   │       ā”œā”€ā”€ faAtom.d.ts
│   │       ā”œā”€ā”€ faAtom.js
│   │       ā”œā”€ā”€ faAudioDescription.d.ts
│   │       ā”œā”€ā”€ faAudioDescription.js
│   │       ā”œā”€ā”€ faAustralSign.d.ts
│   │       ā”œā”€ā”€ faAustralSign.js
│   │       ā”œā”€ā”€ faAutomobile.d.ts
│   │       ā”œā”€ā”€ faAutomobile.js
│   │       ā”œā”€ā”€ faAward.d.ts
│   │       ā”œā”€ā”€ faAward.js
│   │       ā”œā”€ā”€ faB.d.ts
│   │       ā”œā”€ā”€ faB.js
│   │       ā”œā”€ā”€ faBaby.d.ts
│   │       ā”œā”€ā”€ faBaby.js
│   │       ā”œā”€ā”€ faBabyCarriage.d.ts
│   │       ā”œā”€ā”€ faBabyCarriage.js
│   │       ā”œā”€ā”€ faBackspace.d.ts
│   │       ā”œā”€ā”€ faBackspace.js
│   │       ā”œā”€ā”€ faBackward.d.ts
│   │       ā”œā”€ā”€ faBackward.js
│   │       ā”œā”€ā”€ faBackwardFast.d.ts
│   │       ā”œā”€ā”€ faBackwardFast.js
│   │       ā”œā”€ā”€ faBackwardStep.d.ts
│   │       ā”œā”€ā”€ faBackwardStep.js
│   │       ā”œā”€ā”€ faBacon.d.ts
│   │       ā”œā”€ā”€ faBacon.js
│   │       ā”œā”€ā”€ faBacteria.d.ts
│   │       ā”œā”€ā”€ faBacteria.js
│   │       ā”œā”€ā”€ faBacterium.d.ts
│   │       ā”œā”€ā”€ faBacterium.js
│   │       ā”œā”€ā”€ faBagShopping.d.ts
│   │       ā”œā”€ā”€ faBagShopping.js
│   │       ā”œā”€ā”€ faBahai.d.ts
│   │       ā”œā”€ā”€ faBahai.js
│   │       ā”œā”€ā”€ faBahtSign.d.ts
│   │       ā”œā”€ā”€ faBahtSign.js
│   │       ā”œā”€ā”€ faBalanceScale.d.ts
│   │       ā”œā”€ā”€ faBalanceScale.js
│   │       ā”œā”€ā”€ faBalanceScaleLeft.d.ts
│   │       ā”œā”€ā”€ faBalanceScaleLeft.js
│   │       ā”œā”€ā”€ faBalanceScaleRight.d.ts
│   │       ā”œā”€ā”€ faBalanceScaleRight.js
│   │       ā”œā”€ā”€ faBan.d.ts
│   │       ā”œā”€ā”€ faBan.js
│   │       ā”œā”€ā”€ faBanSmoking.d.ts
│   │       ā”œā”€ā”€ faBanSmoking.js
│   │       ā”œā”€ā”€ faBandAid.d.ts
│   │       ā”œā”€ā”€ faBandAid.js
│   │       ā”œā”€ā”€ faBandage.d.ts
│   │       ā”œā”€ā”€ faBandage.js
│   │       ā”œā”€ā”€ faBangladeshiTakaSign.d.ts
│   │       ā”œā”€ā”€ faBangladeshiTakaSign.js
│   │       ā”œā”€ā”€ faBank.d.ts
│   │       ā”œā”€ā”€ faBank.js
│   │       ā”œā”€ā”€ faBarChart.d.ts
│   │       ā”œā”€ā”€ faBarChart.js
│   │       ā”œā”€ā”€ faBarcode.d.ts
│   │       ā”œā”€ā”€ faBarcode.js
│   │       ā”œā”€ā”€ faBars.d.ts
│   │       ā”œā”€ā”€ faBars.js
│   │       ā”œā”€ā”€ faBarsProgress.d.ts
│   │       ā”œā”€ā”€ faBarsProgress.js
│   │       ā”œā”€ā”€ faBarsStaggered.d.ts
│   │       ā”œā”€ā”€ faBarsStaggered.js
│   │       ā”œā”€ā”€ faBaseball.d.ts
│   │       ā”œā”€ā”€ faBaseball.js
│   │       ā”œā”€ā”€ faBaseballBall.d.ts
│   │       ā”œā”€ā”€ faBaseballBall.js
│   │       ā”œā”€ā”€ faBaseballBatBall.d.ts
│   │       ā”œā”€ā”€ faBaseballBatBall.js
│   │       ā”œā”€ā”€ faBasketShopping.d.ts
│   │       ā”œā”€ā”€ faBasketShopping.js
│   │       ā”œā”€ā”€ faBasketball.d.ts
│   │       ā”œā”€ā”€ faBasketball.js
│   │       ā”œā”€ā”€ faBasketballBall.d.ts
│   │       ā”œā”€ā”€ faBasketballBall.js
│   │       ā”œā”€ā”€ faBath.d.ts
│   │       ā”œā”€ā”€ faBath.js
│   │       ā”œā”€ā”€ faBathtub.d.ts
│   │       ā”œā”€ā”€ faBathtub.js
│   │       ā”œā”€ā”€ faBattery.d.ts
│   │       ā”œā”€ā”€ faBattery.js
│   │       ā”œā”€ā”€ faBattery0.d.ts
│   │       ā”œā”€ā”€ faBattery0.js
│   │       ā”œā”€ā”€ faBattery2.d.ts
│   │       ā”œā”€ā”€ faBattery2.js
│   │       ā”œā”€ā”€ faBattery3.d.ts
│   │       ā”œā”€ā”€ faBattery3.js
│   │       ā”œā”€ā”€ faBattery4.d.ts
│   │       ā”œā”€ā”€ faBattery4.js
│   │       ā”œā”€ā”€ faBattery5.d.ts
│   │       ā”œā”€ā”€ faBattery5.js
│   │       ā”œā”€ā”€ faBatteryCar.d.ts
│   │       ā”œā”€ā”€ faBatteryCar.js
│   │       ā”œā”€ā”€ faBatteryEmpty.d.ts
│   │       ā”œā”€ā”€ faBatteryEmpty.js
│   │       ā”œā”€ā”€ faBatteryFull.d.ts
│   │       ā”œā”€ā”€ faBatteryFull.js
│   │       ā”œā”€ā”€ faBatteryHalf.d.ts
│   │       ā”œā”€ā”€ faBatteryHalf.js
│   │       ā”œā”€ā”€ faBatteryQuarter.d.ts
│   │       ā”œā”€ā”€ faBatteryQuarter.js
│   │       ā”œā”€ā”€ faBatteryThreeQuarters.d.ts
│   │       ā”œā”€ā”€ faBatteryThreeQuarters.js
│   │       ā”œā”€ā”€ faBed.d.ts
│   │       ā”œā”€ā”€ faBed.js
│   │       ā”œā”€ā”€ faBedPulse.d.ts
│   │       ā”œā”€ā”€ faBedPulse.js
│   │       ā”œā”€ā”€ faBeer.d.ts
│   │       ā”œā”€ā”€ faBeer.js
│   │       ā”œā”€ā”€ faBeerMugEmpty.d.ts
│   │       ā”œā”€ā”€ faBeerMugEmpty.js
│   │       ā”œā”€ā”€ faBell.d.ts
│   │       ā”œā”€ā”€ faBell.js
│   │       ā”œā”€ā”€ faBellConcierge.d.ts
│   │       ā”œā”€ā”€ faBellConcierge.js
│   │       ā”œā”€ā”€ faBellSlash.d.ts
│   │       ā”œā”€ā”€ faBellSlash.js
│   │       ā”œā”€ā”€ faBezierCurve.d.ts
│   │       ā”œā”€ā”€ faBezierCurve.js
│   │       ā”œā”€ā”€ faBible.d.ts
│   │       ā”œā”€ā”€ faBible.js
│   │       ā”œā”€ā”€ faBicycle.d.ts
│   │       ā”œā”€ā”€ faBicycle.js
│   │       ā”œā”€ā”€ faBiking.d.ts
│   │       ā”œā”€ā”€ faBiking.js
│   │       ā”œā”€ā”€ faBinoculars.d.ts
│   │       ā”œā”€ā”€ faBinoculars.js
│   │       ā”œā”€ā”€ faBiohazard.d.ts
│   │       ā”œā”€ā”€ faBiohazard.js
│   │       ā”œā”€ā”€ faBirthdayCake.d.ts
│   │       ā”œā”€ā”€ faBirthdayCake.js
│   │       ā”œā”€ā”€ faBitcoinSign.d.ts
│   │       ā”œā”€ā”€ faBitcoinSign.js
│   │       ā”œā”€ā”€ faBlackboard.d.ts
│   │       ā”œā”€ā”€ faBlackboard.js
│   │       ā”œā”€ā”€ faBlender.d.ts
│   │       ā”œā”€ā”€ faBlender.js
│   │       ā”œā”€ā”€ faBlenderPhone.d.ts
│   │       ā”œā”€ā”€ faBlenderPhone.js
│   │       ā”œā”€ā”€ faBlind.d.ts
│   │       ā”œā”€ā”€ faBlind.js
│   │       ā”œā”€ā”€ faBlog.d.ts
│   │       ā”œā”€ā”€ faBlog.js
│   │       ā”œā”€ā”€ faBold.d.ts
│   │       ā”œā”€ā”€ faBold.js
│   │       ā”œā”€ā”€ faBolt.d.ts
│   │       ā”œā”€ā”€ faBolt.js
│   │       ā”œā”€ā”€ faBoltLightning.d.ts
│   │       ā”œā”€ā”€ faBoltLightning.js
│   │       ā”œā”€ā”€ faBomb.d.ts
│   │       ā”œā”€ā”€ faBomb.js
│   │       ā”œā”€ā”€ faBone.d.ts
│   │       ā”œā”€ā”€ faBone.js
│   │       ā”œā”€ā”€ faBong.d.ts
│   │       ā”œā”€ā”€ faBong.js
│   │       ā”œā”€ā”€ faBook.d.ts
│   │       ā”œā”€ā”€ faBook.js
│   │       ā”œā”€ā”€ faBookAtlas.d.ts
│   │       ā”œā”€ā”€ faBookAtlas.js
│   │       ā”œā”€ā”€ faBookBible.d.ts
│   │       ā”œā”€ā”€ faBookBible.js
│   │       ā”œā”€ā”€ faBookBookmark.d.ts
│   │       ā”œā”€ā”€ faBookBookmark.js
│   │       ā”œā”€ā”€ faBookDead.d.ts
│   │       ā”œā”€ā”€ faBookDead.js
│   │       ā”œā”€ā”€ faBookJournalWhills.d.ts
│   │       ā”œā”€ā”€ faBookJournalWhills.js
│   │       ā”œā”€ā”€ faBookMedical.d.ts
│   │       ā”œā”€ā”€ faBookMedical.js
│   │       ā”œā”€ā”€ faBookOpen.d.ts
│   │       ā”œā”€ā”€ faBookOpen.js
│   │       ā”œā”€ā”€ faBookOpenReader.d.ts
│   │       ā”œā”€ā”€ faBookOpenReader.js
│   │       ā”œā”€ā”€ faBookQuran.d.ts
│   │       ā”œā”€ā”€ faBookQuran.js
│   │       ā”œā”€ā”€ faBookReader.d.ts
│   │       ā”œā”€ā”€ faBookReader.js
│   │       ā”œā”€ā”€ faBookSkull.d.ts
│   │       ā”œā”€ā”€ faBookSkull.js
│   │       ā”œā”€ā”€ faBookTanakh.d.ts
│   │       ā”œā”€ā”€ faBookTanakh.js
│   │       ā”œā”€ā”€ faBookmark.d.ts
│   │       ā”œā”€ā”€ faBookmark.js
│   │       ā”œā”€ā”€ faBorderAll.d.ts
│   │       ā”œā”€ā”€ faBorderAll.js
│   │       ā”œā”€ā”€ faBorderNone.d.ts
│   │       ā”œā”€ā”€ faBorderNone.js
│   │       ā”œā”€ā”€ faBorderStyle.d.ts
│   │       ā”œā”€ā”€ faBorderStyle.js
│   │       ā”œā”€ā”€ faBorderTopLeft.d.ts
│   │       ā”œā”€ā”€ faBorderTopLeft.js
│   │       ā”œā”€ā”€ faBoreHole.d.ts
│   │       ā”œā”€ā”€ faBoreHole.js
│   │       ā”œā”€ā”€ faBottleDroplet.d.ts
│   │       ā”œā”€ā”€ faBottleDroplet.js
│   │       ā”œā”€ā”€ faBottleWater.d.ts
│   │       ā”œā”€ā”€ faBottleWater.js
│   │       ā”œā”€ā”€ faBowlFood.d.ts
│   │       ā”œā”€ā”€ faBowlFood.js
│   │       ā”œā”€ā”€ faBowlRice.d.ts
│   │       ā”œā”€ā”€ faBowlRice.js
│   │       ā”œā”€ā”€ faBowlingBall.d.ts
│   │       ā”œā”€ā”€ faBowlingBall.js
│   │       ā”œā”€ā”€ faBox.d.ts
│   │       ā”œā”€ā”€ faBox.js
│   │       ā”œā”€ā”€ faBoxArchive.d.ts
│   │       ā”œā”€ā”€ faBoxArchive.js
│   │       ā”œā”€ā”€ faBoxOpen.d.ts
│   │       ā”œā”€ā”€ faBoxOpen.js
│   │       ā”œā”€ā”€ faBoxTissue.d.ts
│   │       ā”œā”€ā”€ faBoxTissue.js
│   │       ā”œā”€ā”€ faBoxes.d.ts
│   │       ā”œā”€ā”€ faBoxes.js
│   │       ā”œā”€ā”€ faBoxesAlt.d.ts
│   │       ā”œā”€ā”€ faBoxesAlt.js
│   │       ā”œā”€ā”€ faBoxesPacking.d.ts
│   │       ā”œā”€ā”€ faBoxesPacking.js
│   │       ā”œā”€ā”€ faBoxesStacked.d.ts
│   │       ā”œā”€ā”€ faBoxesStacked.js
│   │       ā”œā”€ā”€ faBraille.d.ts
│   │       ā”œā”€ā”€ faBraille.js
│   │       ā”œā”€ā”€ faBrain.d.ts
│   │       ā”œā”€ā”€ faBrain.js
│   │       ā”œā”€ā”€ faBrazilianRealSign.d.ts
│   │       ā”œā”€ā”€ faBrazilianRealSign.js
│   │       ā”œā”€ā”€ faBreadSlice.d.ts
│   │       ā”œā”€ā”€ faBreadSlice.js
│   │       ā”œā”€ā”€ faBridge.d.ts
│   │       ā”œā”€ā”€ faBridge.js
│   │       ā”œā”€ā”€ faBridgeCircleCheck.d.ts
│   │       ā”œā”€ā”€ faBridgeCircleCheck.js
│   │       ā”œā”€ā”€ faBridgeCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faBridgeCircleExclamation.js
│   │       ā”œā”€ā”€ faBridgeCircleXmark.d.ts
│   │       ā”œā”€ā”€ faBridgeCircleXmark.js
│   │       ā”œā”€ā”€ faBridgeLock.d.ts
│   │       ā”œā”€ā”€ faBridgeLock.js
│   │       ā”œā”€ā”€ faBridgeWater.d.ts
│   │       ā”œā”€ā”€ faBridgeWater.js
│   │       ā”œā”€ā”€ faBriefcase.d.ts
│   │       ā”œā”€ā”€ faBriefcase.js
│   │       ā”œā”€ā”€ faBriefcaseClock.d.ts
│   │       ā”œā”€ā”€ faBriefcaseClock.js
│   │       ā”œā”€ā”€ faBriefcaseMedical.d.ts
│   │       ā”œā”€ā”€ faBriefcaseMedical.js
│   │       ā”œā”€ā”€ faBroadcastTower.d.ts
│   │       ā”œā”€ā”€ faBroadcastTower.js
│   │       ā”œā”€ā”€ faBroom.d.ts
│   │       ā”œā”€ā”€ faBroom.js
│   │       ā”œā”€ā”€ faBroomBall.d.ts
│   │       ā”œā”€ā”€ faBroomBall.js
│   │       ā”œā”€ā”€ faBrush.d.ts
│   │       ā”œā”€ā”€ faBrush.js
│   │       ā”œā”€ā”€ faBucket.d.ts
│   │       ā”œā”€ā”€ faBucket.js
│   │       ā”œā”€ā”€ faBug.d.ts
│   │       ā”œā”€ā”€ faBug.js
│   │       ā”œā”€ā”€ faBugSlash.d.ts
│   │       ā”œā”€ā”€ faBugSlash.js
│   │       ā”œā”€ā”€ faBugs.d.ts
│   │       ā”œā”€ā”€ faBugs.js
│   │       ā”œā”€ā”€ faBuilding.d.ts
│   │       ā”œā”€ā”€ faBuilding.js
│   │       ā”œā”€ā”€ faBuildingCircleArrowRight.d.ts
│   │       ā”œā”€ā”€ faBuildingCircleArrowRight.js
│   │       ā”œā”€ā”€ faBuildingCircleCheck.d.ts
│   │       ā”œā”€ā”€ faBuildingCircleCheck.js
│   │       ā”œā”€ā”€ faBuildingCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faBuildingCircleExclamation.js
│   │       ā”œā”€ā”€ faBuildingCircleXmark.d.ts
│   │       ā”œā”€ā”€ faBuildingCircleXmark.js
│   │       ā”œā”€ā”€ faBuildingColumns.d.ts
│   │       ā”œā”€ā”€ faBuildingColumns.js
│   │       ā”œā”€ā”€ faBuildingFlag.d.ts
│   │       ā”œā”€ā”€ faBuildingFlag.js
│   │       ā”œā”€ā”€ faBuildingLock.d.ts
│   │       ā”œā”€ā”€ faBuildingLock.js
│   │       ā”œā”€ā”€ faBuildingNgo.d.ts
│   │       ā”œā”€ā”€ faBuildingNgo.js
│   │       ā”œā”€ā”€ faBuildingShield.d.ts
│   │       ā”œā”€ā”€ faBuildingShield.js
│   │       ā”œā”€ā”€ faBuildingUn.d.ts
│   │       ā”œā”€ā”€ faBuildingUn.js
│   │       ā”œā”€ā”€ faBuildingUser.d.ts
│   │       ā”œā”€ā”€ faBuildingUser.js
│   │       ā”œā”€ā”€ faBuildingWheat.d.ts
│   │       ā”œā”€ā”€ faBuildingWheat.js
│   │       ā”œā”€ā”€ faBullhorn.d.ts
│   │       ā”œā”€ā”€ faBullhorn.js
│   │       ā”œā”€ā”€ faBullseye.d.ts
│   │       ā”œā”€ā”€ faBullseye.js
│   │       ā”œā”€ā”€ faBurger.d.ts
│   │       ā”œā”€ā”€ faBurger.js
│   │       ā”œā”€ā”€ faBurn.d.ts
│   │       ā”œā”€ā”€ faBurn.js
│   │       ā”œā”€ā”€ faBurst.d.ts
│   │       ā”œā”€ā”€ faBurst.js
│   │       ā”œā”€ā”€ faBus.d.ts
│   │       ā”œā”€ā”€ faBus.js
│   │       ā”œā”€ā”€ faBusAlt.d.ts
│   │       ā”œā”€ā”€ faBusAlt.js
│   │       ā”œā”€ā”€ faBusSimple.d.ts
│   │       ā”œā”€ā”€ faBusSimple.js
│   │       ā”œā”€ā”€ faBusinessTime.d.ts
│   │       ā”œā”€ā”€ faBusinessTime.js
│   │       ā”œā”€ā”€ faC.d.ts
│   │       ā”œā”€ā”€ faC.js
│   │       ā”œā”€ā”€ faCab.d.ts
│   │       ā”œā”€ā”€ faCab.js
│   │       ā”œā”€ā”€ faCableCar.d.ts
│   │       ā”œā”€ā”€ faCableCar.js
│   │       ā”œā”€ā”€ faCake.d.ts
│   │       ā”œā”€ā”€ faCake.js
│   │       ā”œā”€ā”€ faCakeCandles.d.ts
│   │       ā”œā”€ā”€ faCakeCandles.js
│   │       ā”œā”€ā”€ faCalculator.d.ts
│   │       ā”œā”€ā”€ faCalculator.js
│   │       ā”œā”€ā”€ faCalendar.d.ts
│   │       ā”œā”€ā”€ faCalendar.js
│   │       ā”œā”€ā”€ faCalendarAlt.d.ts
│   │       ā”œā”€ā”€ faCalendarAlt.js
│   │       ā”œā”€ā”€ faCalendarCheck.d.ts
│   │       ā”œā”€ā”€ faCalendarCheck.js
│   │       ā”œā”€ā”€ faCalendarDay.d.ts
│   │       ā”œā”€ā”€ faCalendarDay.js
│   │       ā”œā”€ā”€ faCalendarDays.d.ts
│   │       ā”œā”€ā”€ faCalendarDays.js
│   │       ā”œā”€ā”€ faCalendarMinus.d.ts
│   │       ā”œā”€ā”€ faCalendarMinus.js
│   │       ā”œā”€ā”€ faCalendarPlus.d.ts
│   │       ā”œā”€ā”€ faCalendarPlus.js
│   │       ā”œā”€ā”€ faCalendarTimes.d.ts
│   │       ā”œā”€ā”€ faCalendarTimes.js
│   │       ā”œā”€ā”€ faCalendarWeek.d.ts
│   │       ā”œā”€ā”€ faCalendarWeek.js
│   │       ā”œā”€ā”€ faCalendarXmark.d.ts
│   │       ā”œā”€ā”€ faCalendarXmark.js
│   │       ā”œā”€ā”€ faCamera.d.ts
│   │       ā”œā”€ā”€ faCamera.js
│   │       ā”œā”€ā”€ faCameraAlt.d.ts
│   │       ā”œā”€ā”€ faCameraAlt.js
│   │       ā”œā”€ā”€ faCameraRetro.d.ts
│   │       ā”œā”€ā”€ faCameraRetro.js
│   │       ā”œā”€ā”€ faCameraRotate.d.ts
│   │       ā”œā”€ā”€ faCameraRotate.js
│   │       ā”œā”€ā”€ faCampground.d.ts
│   │       ā”œā”€ā”€ faCampground.js
│   │       ā”œā”€ā”€ faCancel.d.ts
│   │       ā”œā”€ā”€ faCancel.js
│   │       ā”œā”€ā”€ faCandyCane.d.ts
│   │       ā”œā”€ā”€ faCandyCane.js
│   │       ā”œā”€ā”€ faCannabis.d.ts
│   │       ā”œā”€ā”€ faCannabis.js
│   │       ā”œā”€ā”€ faCapsules.d.ts
│   │       ā”œā”€ā”€ faCapsules.js
│   │       ā”œā”€ā”€ faCar.d.ts
│   │       ā”œā”€ā”€ faCar.js
│   │       ā”œā”€ā”€ faCarAlt.d.ts
│   │       ā”œā”€ā”€ faCarAlt.js
│   │       ā”œā”€ā”€ faCarBattery.d.ts
│   │       ā”œā”€ā”€ faCarBattery.js
│   │       ā”œā”€ā”€ faCarBurst.d.ts
│   │       ā”œā”€ā”€ faCarBurst.js
│   │       ā”œā”€ā”€ faCarCrash.d.ts
│   │       ā”œā”€ā”€ faCarCrash.js
│   │       ā”œā”€ā”€ faCarOn.d.ts
│   │       ā”œā”€ā”€ faCarOn.js
│   │       ā”œā”€ā”€ faCarRear.d.ts
│   │       ā”œā”€ā”€ faCarRear.js
│   │       ā”œā”€ā”€ faCarSide.d.ts
│   │       ā”œā”€ā”€ faCarSide.js
│   │       ā”œā”€ā”€ faCarTunnel.d.ts
│   │       ā”œā”€ā”€ faCarTunnel.js
│   │       ā”œā”€ā”€ faCaravan.d.ts
│   │       ā”œā”€ā”€ faCaravan.js
│   │       ā”œā”€ā”€ faCaretDown.d.ts
│   │       ā”œā”€ā”€ faCaretDown.js
│   │       ā”œā”€ā”€ faCaretLeft.d.ts
│   │       ā”œā”€ā”€ faCaretLeft.js
│   │       ā”œā”€ā”€ faCaretRight.d.ts
│   │       ā”œā”€ā”€ faCaretRight.js
│   │       ā”œā”€ā”€ faCaretSquareDown.d.ts
│   │       ā”œā”€ā”€ faCaretSquareDown.js
│   │       ā”œā”€ā”€ faCaretSquareLeft.d.ts
│   │       ā”œā”€ā”€ faCaretSquareLeft.js
│   │       ā”œā”€ā”€ faCaretSquareRight.d.ts
│   │       ā”œā”€ā”€ faCaretSquareRight.js
│   │       ā”œā”€ā”€ faCaretSquareUp.d.ts
│   │       ā”œā”€ā”€ faCaretSquareUp.js
│   │       ā”œā”€ā”€ faCaretUp.d.ts
│   │       ā”œā”€ā”€ faCaretUp.js
│   │       ā”œā”€ā”€ faCarriageBaby.d.ts
│   │       ā”œā”€ā”€ faCarriageBaby.js
│   │       ā”œā”€ā”€ faCarrot.d.ts
│   │       ā”œā”€ā”€ faCarrot.js
│   │       ā”œā”€ā”€ faCartArrowDown.d.ts
│   │       ā”œā”€ā”€ faCartArrowDown.js
│   │       ā”œā”€ā”€ faCartFlatbed.d.ts
│   │       ā”œā”€ā”€ faCartFlatbed.js
│   │       ā”œā”€ā”€ faCartFlatbedSuitcase.d.ts
│   │       ā”œā”€ā”€ faCartFlatbedSuitcase.js
│   │       ā”œā”€ā”€ faCartPlus.d.ts
│   │       ā”œā”€ā”€ faCartPlus.js
│   │       ā”œā”€ā”€ faCartShopping.d.ts
│   │       ā”œā”€ā”€ faCartShopping.js
│   │       ā”œā”€ā”€ faCashRegister.d.ts
│   │       ā”œā”€ā”€ faCashRegister.js
│   │       ā”œā”€ā”€ faCat.d.ts
│   │       ā”œā”€ā”€ faCat.js
│   │       ā”œā”€ā”€ faCediSign.d.ts
│   │       ā”œā”€ā”€ faCediSign.js
│   │       ā”œā”€ā”€ faCentSign.d.ts
│   │       ā”œā”€ā”€ faCentSign.js
│   │       ā”œā”€ā”€ faCertificate.d.ts
│   │       ā”œā”€ā”€ faCertificate.js
│   │       ā”œā”€ā”€ faChain.d.ts
│   │       ā”œā”€ā”€ faChain.js
│   │       ā”œā”€ā”€ faChainBroken.d.ts
│   │       ā”œā”€ā”€ faChainBroken.js
│   │       ā”œā”€ā”€ faChainSlash.d.ts
│   │       ā”œā”€ā”€ faChainSlash.js
│   │       ā”œā”€ā”€ faChair.d.ts
│   │       ā”œā”€ā”€ faChair.js
│   │       ā”œā”€ā”€ faChalkboard.d.ts
│   │       ā”œā”€ā”€ faChalkboard.js
│   │       ā”œā”€ā”€ faChalkboardTeacher.d.ts
│   │       ā”œā”€ā”€ faChalkboardTeacher.js
│   │       ā”œā”€ā”€ faChalkboardUser.d.ts
│   │       ā”œā”€ā”€ faChalkboardUser.js
│   │       ā”œā”€ā”€ faChampagneGlasses.d.ts
│   │       ā”œā”€ā”€ faChampagneGlasses.js
│   │       ā”œā”€ā”€ faChargingStation.d.ts
│   │       ā”œā”€ā”€ faChargingStation.js
│   │       ā”œā”€ā”€ faChartArea.d.ts
│   │       ā”œā”€ā”€ faChartArea.js
│   │       ā”œā”€ā”€ faChartBar.d.ts
│   │       ā”œā”€ā”€ faChartBar.js
│   │       ā”œā”€ā”€ faChartColumn.d.ts
│   │       ā”œā”€ā”€ faChartColumn.js
│   │       ā”œā”€ā”€ faChartDiagram.d.ts
│   │       ā”œā”€ā”€ faChartDiagram.js
│   │       ā”œā”€ā”€ faChartGantt.d.ts
│   │       ā”œā”€ā”€ faChartGantt.js
│   │       ā”œā”€ā”€ faChartLine.d.ts
│   │       ā”œā”€ā”€ faChartLine.js
│   │       ā”œā”€ā”€ faChartPie.d.ts
│   │       ā”œā”€ā”€ faChartPie.js
│   │       ā”œā”€ā”€ faChartSimple.d.ts
│   │       ā”œā”€ā”€ faChartSimple.js
│   │       ā”œā”€ā”€ faCheck.d.ts
│   │       ā”œā”€ā”€ faCheck.js
│   │       ā”œā”€ā”€ faCheckCircle.d.ts
│   │       ā”œā”€ā”€ faCheckCircle.js
│   │       ā”œā”€ā”€ faCheckDouble.d.ts
│   │       ā”œā”€ā”€ faCheckDouble.js
│   │       ā”œā”€ā”€ faCheckSquare.d.ts
│   │       ā”œā”€ā”€ faCheckSquare.js
│   │       ā”œā”€ā”€ faCheckToSlot.d.ts
│   │       ā”œā”€ā”€ faCheckToSlot.js
│   │       ā”œā”€ā”€ faCheese.d.ts
│   │       ā”œā”€ā”€ faCheese.js
│   │       ā”œā”€ā”€ faChess.d.ts
│   │       ā”œā”€ā”€ faChess.js
│   │       ā”œā”€ā”€ faChessBishop.d.ts
│   │       ā”œā”€ā”€ faChessBishop.js
│   │       ā”œā”€ā”€ faChessBoard.d.ts
│   │       ā”œā”€ā”€ faChessBoard.js
│   │       ā”œā”€ā”€ faChessKing.d.ts
│   │       ā”œā”€ā”€ faChessKing.js
│   │       ā”œā”€ā”€ faChessKnight.d.ts
│   │       ā”œā”€ā”€ faChessKnight.js
│   │       ā”œā”€ā”€ faChessPawn.d.ts
│   │       ā”œā”€ā”€ faChessPawn.js
│   │       ā”œā”€ā”€ faChessQueen.d.ts
│   │       ā”œā”€ā”€ faChessQueen.js
│   │       ā”œā”€ā”€ faChessRook.d.ts
│   │       ā”œā”€ā”€ faChessRook.js
│   │       ā”œā”€ā”€ faChevronCircleDown.d.ts
│   │       ā”œā”€ā”€ faChevronCircleDown.js
│   │       ā”œā”€ā”€ faChevronCircleLeft.d.ts
│   │       ā”œā”€ā”€ faChevronCircleLeft.js
│   │       ā”œā”€ā”€ faChevronCircleRight.d.ts
│   │       ā”œā”€ā”€ faChevronCircleRight.js
│   │       ā”œā”€ā”€ faChevronCircleUp.d.ts
│   │       ā”œā”€ā”€ faChevronCircleUp.js
│   │       ā”œā”€ā”€ faChevronDown.d.ts
│   │       ā”œā”€ā”€ faChevronDown.js
│   │       ā”œā”€ā”€ faChevronLeft.d.ts
│   │       ā”œā”€ā”€ faChevronLeft.js
│   │       ā”œā”€ā”€ faChevronRight.d.ts
│   │       ā”œā”€ā”€ faChevronRight.js
│   │       ā”œā”€ā”€ faChevronUp.d.ts
│   │       ā”œā”€ā”€ faChevronUp.js
│   │       ā”œā”€ā”€ faChild.d.ts
│   │       ā”œā”€ā”€ faChild.js
│   │       ā”œā”€ā”€ faChildCombatant.d.ts
│   │       ā”œā”€ā”€ faChildCombatant.js
│   │       ā”œā”€ā”€ faChildDress.d.ts
│   │       ā”œā”€ā”€ faChildDress.js
│   │       ā”œā”€ā”€ faChildReaching.d.ts
│   │       ā”œā”€ā”€ faChildReaching.js
│   │       ā”œā”€ā”€ faChildRifle.d.ts
│   │       ā”œā”€ā”€ faChildRifle.js
│   │       ā”œā”€ā”€ faChildren.d.ts
│   │       ā”œā”€ā”€ faChildren.js
│   │       ā”œā”€ā”€ faChurch.d.ts
│   │       ā”œā”€ā”€ faChurch.js
│   │       ā”œā”€ā”€ faCircle.d.ts
│   │       ā”œā”€ā”€ faCircle.js
│   │       ā”œā”€ā”€ faCircleArrowDown.d.ts
│   │       ā”œā”€ā”€ faCircleArrowDown.js
│   │       ā”œā”€ā”€ faCircleArrowLeft.d.ts
│   │       ā”œā”€ā”€ faCircleArrowLeft.js
│   │       ā”œā”€ā”€ faCircleArrowRight.d.ts
│   │       ā”œā”€ā”€ faCircleArrowRight.js
│   │       ā”œā”€ā”€ faCircleArrowUp.d.ts
│   │       ā”œā”€ā”€ faCircleArrowUp.js
│   │       ā”œā”€ā”€ faCircleCheck.d.ts
│   │       ā”œā”€ā”€ faCircleCheck.js
│   │       ā”œā”€ā”€ faCircleChevronDown.d.ts
│   │       ā”œā”€ā”€ faCircleChevronDown.js
│   │       ā”œā”€ā”€ faCircleChevronLeft.d.ts
│   │       ā”œā”€ā”€ faCircleChevronLeft.js
│   │       ā”œā”€ā”€ faCircleChevronRight.d.ts
│   │       ā”œā”€ā”€ faCircleChevronRight.js
│   │       ā”œā”€ā”€ faCircleChevronUp.d.ts
│   │       ā”œā”€ā”€ faCircleChevronUp.js
│   │       ā”œā”€ā”€ faCircleDollarToSlot.d.ts
│   │       ā”œā”€ā”€ faCircleDollarToSlot.js
│   │       ā”œā”€ā”€ faCircleDot.d.ts
│   │       ā”œā”€ā”€ faCircleDot.js
│   │       ā”œā”€ā”€ faCircleDown.d.ts
│   │       ā”œā”€ā”€ faCircleDown.js
│   │       ā”œā”€ā”€ faCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faCircleExclamation.js
│   │       ā”œā”€ā”€ faCircleH.d.ts
│   │       ā”œā”€ā”€ faCircleH.js
│   │       ā”œā”€ā”€ faCircleHalfStroke.d.ts
│   │       ā”œā”€ā”€ faCircleHalfStroke.js
│   │       ā”œā”€ā”€ faCircleInfo.d.ts
│   │       ā”œā”€ā”€ faCircleInfo.js
│   │       ā”œā”€ā”€ faCircleLeft.d.ts
│   │       ā”œā”€ā”€ faCircleLeft.js
│   │       ā”œā”€ā”€ faCircleMinus.d.ts
│   │       ā”œā”€ā”€ faCircleMinus.js
│   │       ā”œā”€ā”€ faCircleNodes.d.ts
│   │       ā”œā”€ā”€ faCircleNodes.js
│   │       ā”œā”€ā”€ faCircleNotch.d.ts
│   │       ā”œā”€ā”€ faCircleNotch.js
│   │       ā”œā”€ā”€ faCirclePause.d.ts
│   │       ā”œā”€ā”€ faCirclePause.js
│   │       ā”œā”€ā”€ faCirclePlay.d.ts
│   │       ā”œā”€ā”€ faCirclePlay.js
│   │       ā”œā”€ā”€ faCirclePlus.d.ts
│   │       ā”œā”€ā”€ faCirclePlus.js
│   │       ā”œā”€ā”€ faCircleQuestion.d.ts
│   │       ā”œā”€ā”€ faCircleQuestion.js
│   │       ā”œā”€ā”€ faCircleRadiation.d.ts
│   │       ā”œā”€ā”€ faCircleRadiation.js
│   │       ā”œā”€ā”€ faCircleRight.d.ts
│   │       ā”œā”€ā”€ faCircleRight.js
│   │       ā”œā”€ā”€ faCircleStop.d.ts
│   │       ā”œā”€ā”€ faCircleStop.js
│   │       ā”œā”€ā”€ faCircleUp.d.ts
│   │       ā”œā”€ā”€ faCircleUp.js
│   │       ā”œā”€ā”€ faCircleUser.d.ts
│   │       ā”œā”€ā”€ faCircleUser.js
│   │       ā”œā”€ā”€ faCircleXmark.d.ts
│   │       ā”œā”€ā”€ faCircleXmark.js
│   │       ā”œā”€ā”€ faCity.d.ts
│   │       ā”œā”€ā”€ faCity.js
│   │       ā”œā”€ā”€ faClapperboard.d.ts
│   │       ā”œā”€ā”€ faClapperboard.js
│   │       ā”œā”€ā”€ faClinicMedical.d.ts
│   │       ā”œā”€ā”€ faClinicMedical.js
│   │       ā”œā”€ā”€ faClipboard.d.ts
│   │       ā”œā”€ā”€ faClipboard.js
│   │       ā”œā”€ā”€ faClipboardCheck.d.ts
│   │       ā”œā”€ā”€ faClipboardCheck.js
│   │       ā”œā”€ā”€ faClipboardList.d.ts
│   │       ā”œā”€ā”€ faClipboardList.js
│   │       ā”œā”€ā”€ faClipboardQuestion.d.ts
│   │       ā”œā”€ā”€ faClipboardQuestion.js
│   │       ā”œā”€ā”€ faClipboardUser.d.ts
│   │       ā”œā”€ā”€ faClipboardUser.js
│   │       ā”œā”€ā”€ faClock.d.ts
│   │       ā”œā”€ā”€ faClock.js
│   │       ā”œā”€ā”€ faClockFour.d.ts
│   │       ā”œā”€ā”€ faClockFour.js
│   │       ā”œā”€ā”€ faClockRotateLeft.d.ts
│   │       ā”œā”€ā”€ faClockRotateLeft.js
│   │       ā”œā”€ā”€ faClone.d.ts
│   │       ā”œā”€ā”€ faClone.js
│   │       ā”œā”€ā”€ faClose.d.ts
│   │       ā”œā”€ā”€ faClose.js
│   │       ā”œā”€ā”€ faClosedCaptioning.d.ts
│   │       ā”œā”€ā”€ faClosedCaptioning.js
│   │       ā”œā”€ā”€ faCloud.d.ts
│   │       ā”œā”€ā”€ faCloud.js
│   │       ā”œā”€ā”€ faCloudArrowDown.d.ts
│   │       ā”œā”€ā”€ faCloudArrowDown.js
│   │       ā”œā”€ā”€ faCloudArrowUp.d.ts
│   │       ā”œā”€ā”€ faCloudArrowUp.js
│   │       ā”œā”€ā”€ faCloudBolt.d.ts
│   │       ā”œā”€ā”€ faCloudBolt.js
│   │       ā”œā”€ā”€ faCloudDownload.d.ts
│   │       ā”œā”€ā”€ faCloudDownload.js
│   │       ā”œā”€ā”€ faCloudDownloadAlt.d.ts
│   │       ā”œā”€ā”€ faCloudDownloadAlt.js
│   │       ā”œā”€ā”€ faCloudMeatball.d.ts
│   │       ā”œā”€ā”€ faCloudMeatball.js
│   │       ā”œā”€ā”€ faCloudMoon.d.ts
│   │       ā”œā”€ā”€ faCloudMoon.js
│   │       ā”œā”€ā”€ faCloudMoonRain.d.ts
│   │       ā”œā”€ā”€ faCloudMoonRain.js
│   │       ā”œā”€ā”€ faCloudRain.d.ts
│   │       ā”œā”€ā”€ faCloudRain.js
│   │       ā”œā”€ā”€ faCloudShowersHeavy.d.ts
│   │       ā”œā”€ā”€ faCloudShowersHeavy.js
│   │       ā”œā”€ā”€ faCloudShowersWater.d.ts
│   │       ā”œā”€ā”€ faCloudShowersWater.js
│   │       ā”œā”€ā”€ faCloudSun.d.ts
│   │       ā”œā”€ā”€ faCloudSun.js
│   │       ā”œā”€ā”€ faCloudSunRain.d.ts
│   │       ā”œā”€ā”€ faCloudSunRain.js
│   │       ā”œā”€ā”€ faCloudUpload.d.ts
│   │       ā”œā”€ā”€ faCloudUpload.js
│   │       ā”œā”€ā”€ faCloudUploadAlt.d.ts
│   │       ā”œā”€ā”€ faCloudUploadAlt.js
│   │       ā”œā”€ā”€ faClover.d.ts
│   │       ā”œā”€ā”€ faClover.js
│   │       ā”œā”€ā”€ faCny.d.ts
│   │       ā”œā”€ā”€ faCny.js
│   │       ā”œā”€ā”€ faCocktail.d.ts
│   │       ā”œā”€ā”€ faCocktail.js
│   │       ā”œā”€ā”€ faCode.d.ts
│   │       ā”œā”€ā”€ faCode.js
│   │       ā”œā”€ā”€ faCodeBranch.d.ts
│   │       ā”œā”€ā”€ faCodeBranch.js
│   │       ā”œā”€ā”€ faCodeCommit.d.ts
│   │       ā”œā”€ā”€ faCodeCommit.js
│   │       ā”œā”€ā”€ faCodeCompare.d.ts
│   │       ā”œā”€ā”€ faCodeCompare.js
│   │       ā”œā”€ā”€ faCodeFork.d.ts
│   │       ā”œā”€ā”€ faCodeFork.js
│   │       ā”œā”€ā”€ faCodeMerge.d.ts
│   │       ā”œā”€ā”€ faCodeMerge.js
│   │       ā”œā”€ā”€ faCodePullRequest.d.ts
│   │       ā”œā”€ā”€ faCodePullRequest.js
│   │       ā”œā”€ā”€ faCoffee.d.ts
│   │       ā”œā”€ā”€ faCoffee.js
│   │       ā”œā”€ā”€ faCog.d.ts
│   │       ā”œā”€ā”€ faCog.js
│   │       ā”œā”€ā”€ faCogs.d.ts
│   │       ā”œā”€ā”€ faCogs.js
│   │       ā”œā”€ā”€ faCoins.d.ts
│   │       ā”œā”€ā”€ faCoins.js
│   │       ā”œā”€ā”€ faColonSign.d.ts
│   │       ā”œā”€ā”€ faColonSign.js
│   │       ā”œā”€ā”€ faColumns.d.ts
│   │       ā”œā”€ā”€ faColumns.js
│   │       ā”œā”€ā”€ faComment.d.ts
│   │       ā”œā”€ā”€ faComment.js
│   │       ā”œā”€ā”€ faCommentAlt.d.ts
│   │       ā”œā”€ā”€ faCommentAlt.js
│   │       ā”œā”€ā”€ faCommentDollar.d.ts
│   │       ā”œā”€ā”€ faCommentDollar.js
│   │       ā”œā”€ā”€ faCommentDots.d.ts
│   │       ā”œā”€ā”€ faCommentDots.js
│   │       ā”œā”€ā”€ faCommentMedical.d.ts
│   │       ā”œā”€ā”€ faCommentMedical.js
│   │       ā”œā”€ā”€ faCommentNodes.d.ts
│   │       ā”œā”€ā”€ faCommentNodes.js
│   │       ā”œā”€ā”€ faCommentSlash.d.ts
│   │       ā”œā”€ā”€ faCommentSlash.js
│   │       ā”œā”€ā”€ faCommentSms.d.ts
│   │       ā”œā”€ā”€ faCommentSms.js
│   │       ā”œā”€ā”€ faCommenting.d.ts
│   │       ā”œā”€ā”€ faCommenting.js
│   │       ā”œā”€ā”€ faComments.d.ts
│   │       ā”œā”€ā”€ faComments.js
│   │       ā”œā”€ā”€ faCommentsDollar.d.ts
│   │       ā”œā”€ā”€ faCommentsDollar.js
│   │       ā”œā”€ā”€ faCompactDisc.d.ts
│   │       ā”œā”€ā”€ faCompactDisc.js
│   │       ā”œā”€ā”€ faCompass.d.ts
│   │       ā”œā”€ā”€ faCompass.js
│   │       ā”œā”€ā”€ faCompassDrafting.d.ts
│   │       ā”œā”€ā”€ faCompassDrafting.js
│   │       ā”œā”€ā”€ faCompress.d.ts
│   │       ā”œā”€ā”€ faCompress.js
│   │       ā”œā”€ā”€ faCompressAlt.d.ts
│   │       ā”œā”€ā”€ faCompressAlt.js
│   │       ā”œā”€ā”€ faCompressArrowsAlt.d.ts
│   │       ā”œā”€ā”€ faCompressArrowsAlt.js
│   │       ā”œā”€ā”€ faComputer.d.ts
│   │       ā”œā”€ā”€ faComputer.js
│   │       ā”œā”€ā”€ faComputerMouse.d.ts
│   │       ā”œā”€ā”€ faComputerMouse.js
│   │       ā”œā”€ā”€ faConciergeBell.d.ts
│   │       ā”œā”€ā”€ faConciergeBell.js
│   │       ā”œā”€ā”€ faContactBook.d.ts
│   │       ā”œā”€ā”€ faContactBook.js
│   │       ā”œā”€ā”€ faContactCard.d.ts
│   │       ā”œā”€ā”€ faContactCard.js
│   │       ā”œā”€ā”€ faCookie.d.ts
│   │       ā”œā”€ā”€ faCookie.js
│   │       ā”œā”€ā”€ faCookieBite.d.ts
│   │       ā”œā”€ā”€ faCookieBite.js
│   │       ā”œā”€ā”€ faCopy.d.ts
│   │       ā”œā”€ā”€ faCopy.js
│   │       ā”œā”€ā”€ faCopyright.d.ts
│   │       ā”œā”€ā”€ faCopyright.js
│   │       ā”œā”€ā”€ faCouch.d.ts
│   │       ā”œā”€ā”€ faCouch.js
│   │       ā”œā”€ā”€ faCow.d.ts
│   │       ā”œā”€ā”€ faCow.js
│   │       ā”œā”€ā”€ faCreditCard.d.ts
│   │       ā”œā”€ā”€ faCreditCard.js
│   │       ā”œā”€ā”€ faCreditCardAlt.d.ts
│   │       ā”œā”€ā”€ faCreditCardAlt.js
│   │       ā”œā”€ā”€ faCrop.d.ts
│   │       ā”œā”€ā”€ faCrop.js
│   │       ā”œā”€ā”€ faCropAlt.d.ts
│   │       ā”œā”€ā”€ faCropAlt.js
│   │       ā”œā”€ā”€ faCropSimple.d.ts
│   │       ā”œā”€ā”€ faCropSimple.js
│   │       ā”œā”€ā”€ faCross.d.ts
│   │       ā”œā”€ā”€ faCross.js
│   │       ā”œā”€ā”€ faCrosshairs.d.ts
│   │       ā”œā”€ā”€ faCrosshairs.js
│   │       ā”œā”€ā”€ faCrow.d.ts
│   │       ā”œā”€ā”€ faCrow.js
│   │       ā”œā”€ā”€ faCrown.d.ts
│   │       ā”œā”€ā”€ faCrown.js
│   │       ā”œā”€ā”€ faCrutch.d.ts
│   │       ā”œā”€ā”€ faCrutch.js
│   │       ā”œā”€ā”€ faCruzeiroSign.d.ts
│   │       ā”œā”€ā”€ faCruzeiroSign.js
│   │       ā”œā”€ā”€ faCube.d.ts
│   │       ā”œā”€ā”€ faCube.js
│   │       ā”œā”€ā”€ faCubes.d.ts
│   │       ā”œā”€ā”€ faCubes.js
│   │       ā”œā”€ā”€ faCubesStacked.d.ts
│   │       ā”œā”€ā”€ faCubesStacked.js
│   │       ā”œā”€ā”€ faCut.d.ts
│   │       ā”œā”€ā”€ faCut.js
│   │       ā”œā”€ā”€ faCutlery.d.ts
│   │       ā”œā”€ā”€ faCutlery.js
│   │       ā”œā”€ā”€ faD.d.ts
│   │       ā”œā”€ā”€ faD.js
│   │       ā”œā”€ā”€ faDashboard.d.ts
│   │       ā”œā”€ā”€ faDashboard.js
│   │       ā”œā”€ā”€ faDatabase.d.ts
│   │       ā”œā”€ā”€ faDatabase.js
│   │       ā”œā”€ā”€ faDeaf.d.ts
│   │       ā”œā”€ā”€ faDeaf.js
│   │       ā”œā”€ā”€ faDeafness.d.ts
│   │       ā”œā”€ā”€ faDeafness.js
│   │       ā”œā”€ā”€ faDedent.d.ts
│   │       ā”œā”€ā”€ faDedent.js
│   │       ā”œā”€ā”€ faDeleteLeft.d.ts
│   │       ā”œā”€ā”€ faDeleteLeft.js
│   │       ā”œā”€ā”€ faDemocrat.d.ts
│   │       ā”œā”€ā”€ faDemocrat.js
│   │       ā”œā”€ā”€ faDesktop.d.ts
│   │       ā”œā”€ā”€ faDesktop.js
│   │       ā”œā”€ā”€ faDesktopAlt.d.ts
│   │       ā”œā”€ā”€ faDesktopAlt.js
│   │       ā”œā”€ā”€ faDharmachakra.d.ts
│   │       ā”œā”€ā”€ faDharmachakra.js
│   │       ā”œā”€ā”€ faDiagnoses.d.ts
│   │       ā”œā”€ā”€ faDiagnoses.js
│   │       ā”œā”€ā”€ faDiagramNext.d.ts
│   │       ā”œā”€ā”€ faDiagramNext.js
│   │       ā”œā”€ā”€ faDiagramPredecessor.d.ts
│   │       ā”œā”€ā”€ faDiagramPredecessor.js
│   │       ā”œā”€ā”€ faDiagramProject.d.ts
│   │       ā”œā”€ā”€ faDiagramProject.js
│   │       ā”œā”€ā”€ faDiagramSuccessor.d.ts
│   │       ā”œā”€ā”€ faDiagramSuccessor.js
│   │       ā”œā”€ā”€ faDiamond.d.ts
│   │       ā”œā”€ā”€ faDiamond.js
│   │       ā”œā”€ā”€ faDiamondTurnRight.d.ts
│   │       ā”œā”€ā”€ faDiamondTurnRight.js
│   │       ā”œā”€ā”€ faDice.d.ts
│   │       ā”œā”€ā”€ faDice.js
│   │       ā”œā”€ā”€ faDiceD20.d.ts
│   │       ā”œā”€ā”€ faDiceD20.js
│   │       ā”œā”€ā”€ faDiceD6.d.ts
│   │       ā”œā”€ā”€ faDiceD6.js
│   │       ā”œā”€ā”€ faDiceFive.d.ts
│   │       ā”œā”€ā”€ faDiceFive.js
│   │       ā”œā”€ā”€ faDiceFour.d.ts
│   │       ā”œā”€ā”€ faDiceFour.js
│   │       ā”œā”€ā”€ faDiceOne.d.ts
│   │       ā”œā”€ā”€ faDiceOne.js
│   │       ā”œā”€ā”€ faDiceSix.d.ts
│   │       ā”œā”€ā”€ faDiceSix.js
│   │       ā”œā”€ā”€ faDiceThree.d.ts
│   │       ā”œā”€ā”€ faDiceThree.js
│   │       ā”œā”€ā”€ faDiceTwo.d.ts
│   │       ā”œā”€ā”€ faDiceTwo.js
│   │       ā”œā”€ā”€ faDigging.d.ts
│   │       ā”œā”€ā”€ faDigging.js
│   │       ā”œā”€ā”€ faDigitalTachograph.d.ts
│   │       ā”œā”€ā”€ faDigitalTachograph.js
│   │       ā”œā”€ā”€ faDirections.d.ts
│   │       ā”œā”€ā”€ faDirections.js
│   │       ā”œā”€ā”€ faDisease.d.ts
│   │       ā”œā”€ā”€ faDisease.js
│   │       ā”œā”€ā”€ faDisplay.d.ts
│   │       ā”œā”€ā”€ faDisplay.js
│   │       ā”œā”€ā”€ faDivide.d.ts
│   │       ā”œā”€ā”€ faDivide.js
│   │       ā”œā”€ā”€ faDizzy.d.ts
│   │       ā”œā”€ā”€ faDizzy.js
│   │       ā”œā”€ā”€ faDna.d.ts
│   │       ā”œā”€ā”€ faDna.js
│   │       ā”œā”€ā”€ faDog.d.ts
│   │       ā”œā”€ā”€ faDog.js
│   │       ā”œā”€ā”€ faDollar.d.ts
│   │       ā”œā”€ā”€ faDollar.js
│   │       ā”œā”€ā”€ faDollarSign.d.ts
│   │       ā”œā”€ā”€ faDollarSign.js
│   │       ā”œā”€ā”€ faDolly.d.ts
│   │       ā”œā”€ā”€ faDolly.js
│   │       ā”œā”€ā”€ faDollyBox.d.ts
│   │       ā”œā”€ā”€ faDollyBox.js
│   │       ā”œā”€ā”€ faDollyFlatbed.d.ts
│   │       ā”œā”€ā”€ faDollyFlatbed.js
│   │       ā”œā”€ā”€ faDonate.d.ts
│   │       ā”œā”€ā”€ faDonate.js
│   │       ā”œā”€ā”€ faDongSign.d.ts
│   │       ā”œā”€ā”€ faDongSign.js
│   │       ā”œā”€ā”€ faDoorClosed.d.ts
│   │       ā”œā”€ā”€ faDoorClosed.js
│   │       ā”œā”€ā”€ faDoorOpen.d.ts
│   │       ā”œā”€ā”€ faDoorOpen.js
│   │       ā”œā”€ā”€ faDotCircle.d.ts
│   │       ā”œā”€ā”€ faDotCircle.js
│   │       ā”œā”€ā”€ faDove.d.ts
│   │       ā”œā”€ā”€ faDove.js
│   │       ā”œā”€ā”€ faDownLeftAndUpRightToCenter.d.ts
│   │       ā”œā”€ā”€ faDownLeftAndUpRightToCenter.js
│   │       ā”œā”€ā”€ faDownLong.d.ts
│   │       ā”œā”€ā”€ faDownLong.js
│   │       ā”œā”€ā”€ faDownload.d.ts
│   │       ā”œā”€ā”€ faDownload.js
│   │       ā”œā”€ā”€ faDraftingCompass.d.ts
│   │       ā”œā”€ā”€ faDraftingCompass.js
│   │       ā”œā”€ā”€ faDragon.d.ts
│   │       ā”œā”€ā”€ faDragon.js
│   │       ā”œā”€ā”€ faDrawPolygon.d.ts
│   │       ā”œā”€ā”€ faDrawPolygon.js
│   │       ā”œā”€ā”€ faDriversLicense.d.ts
│   │       ā”œā”€ā”€ faDriversLicense.js
│   │       ā”œā”€ā”€ faDroplet.d.ts
│   │       ā”œā”€ā”€ faDroplet.js
│   │       ā”œā”€ā”€ faDropletSlash.d.ts
│   │       ā”œā”€ā”€ faDropletSlash.js
│   │       ā”œā”€ā”€ faDrum.d.ts
│   │       ā”œā”€ā”€ faDrum.js
│   │       ā”œā”€ā”€ faDrumSteelpan.d.ts
│   │       ā”œā”€ā”€ faDrumSteelpan.js
│   │       ā”œā”€ā”€ faDrumstickBite.d.ts
│   │       ā”œā”€ā”€ faDrumstickBite.js
│   │       ā”œā”€ā”€ faDumbbell.d.ts
│   │       ā”œā”€ā”€ faDumbbell.js
│   │       ā”œā”€ā”€ faDumpster.d.ts
│   │       ā”œā”€ā”€ faDumpster.js
│   │       ā”œā”€ā”€ faDumpsterFire.d.ts
│   │       ā”œā”€ā”€ faDumpsterFire.js
│   │       ā”œā”€ā”€ faDungeon.d.ts
│   │       ā”œā”€ā”€ faDungeon.js
│   │       ā”œā”€ā”€ faE.d.ts
│   │       ā”œā”€ā”€ faE.js
│   │       ā”œā”€ā”€ faEarDeaf.d.ts
│   │       ā”œā”€ā”€ faEarDeaf.js
│   │       ā”œā”€ā”€ faEarListen.d.ts
│   │       ā”œā”€ā”€ faEarListen.js
│   │       ā”œā”€ā”€ faEarth.d.ts
│   │       ā”œā”€ā”€ faEarth.js
│   │       ā”œā”€ā”€ faEarthAfrica.d.ts
│   │       ā”œā”€ā”€ faEarthAfrica.js
│   │       ā”œā”€ā”€ faEarthAmerica.d.ts
│   │       ā”œā”€ā”€ faEarthAmerica.js
│   │       ā”œā”€ā”€ faEarthAmericas.d.ts
│   │       ā”œā”€ā”€ faEarthAmericas.js
│   │       ā”œā”€ā”€ faEarthAsia.d.ts
│   │       ā”œā”€ā”€ faEarthAsia.js
│   │       ā”œā”€ā”€ faEarthEurope.d.ts
│   │       ā”œā”€ā”€ faEarthEurope.js
│   │       ā”œā”€ā”€ faEarthOceania.d.ts
│   │       ā”œā”€ā”€ faEarthOceania.js
│   │       ā”œā”€ā”€ faEdit.d.ts
│   │       ā”œā”€ā”€ faEdit.js
│   │       ā”œā”€ā”€ faEgg.d.ts
│   │       ā”œā”€ā”€ faEgg.js
│   │       ā”œā”€ā”€ faEject.d.ts
│   │       ā”œā”€ā”€ faEject.js
│   │       ā”œā”€ā”€ faElevator.d.ts
│   │       ā”œā”€ā”€ faElevator.js
│   │       ā”œā”€ā”€ faEllipsis.d.ts
│   │       ā”œā”€ā”€ faEllipsis.js
│   │       ā”œā”€ā”€ faEllipsisH.d.ts
│   │       ā”œā”€ā”€ faEllipsisH.js
│   │       ā”œā”€ā”€ faEllipsisV.d.ts
│   │       ā”œā”€ā”€ faEllipsisV.js
│   │       ā”œā”€ā”€ faEllipsisVertical.d.ts
│   │       ā”œā”€ā”€ faEllipsisVertical.js
│   │       ā”œā”€ā”€ faEnvelope.d.ts
│   │       ā”œā”€ā”€ faEnvelope.js
│   │       ā”œā”€ā”€ faEnvelopeCircleCheck.d.ts
│   │       ā”œā”€ā”€ faEnvelopeCircleCheck.js
│   │       ā”œā”€ā”€ faEnvelopeOpen.d.ts
│   │       ā”œā”€ā”€ faEnvelopeOpen.js
│   │       ā”œā”€ā”€ faEnvelopeOpenText.d.ts
│   │       ā”œā”€ā”€ faEnvelopeOpenText.js
│   │       ā”œā”€ā”€ faEnvelopeSquare.d.ts
│   │       ā”œā”€ā”€ faEnvelopeSquare.js
│   │       ā”œā”€ā”€ faEnvelopesBulk.d.ts
│   │       ā”œā”€ā”€ faEnvelopesBulk.js
│   │       ā”œā”€ā”€ faEquals.d.ts
│   │       ā”œā”€ā”€ faEquals.js
│   │       ā”œā”€ā”€ faEraser.d.ts
│   │       ā”œā”€ā”€ faEraser.js
│   │       ā”œā”€ā”€ faEthernet.d.ts
│   │       ā”œā”€ā”€ faEthernet.js
│   │       ā”œā”€ā”€ faEur.d.ts
│   │       ā”œā”€ā”€ faEur.js
│   │       ā”œā”€ā”€ faEuro.d.ts
│   │       ā”œā”€ā”€ faEuro.js
│   │       ā”œā”€ā”€ faEuroSign.d.ts
│   │       ā”œā”€ā”€ faEuroSign.js
│   │       ā”œā”€ā”€ faExchange.d.ts
│   │       ā”œā”€ā”€ faExchange.js
│   │       ā”œā”€ā”€ faExchangeAlt.d.ts
│   │       ā”œā”€ā”€ faExchangeAlt.js
│   │       ā”œā”€ā”€ faExclamation.d.ts
│   │       ā”œā”€ā”€ faExclamation.js
│   │       ā”œā”€ā”€ faExclamationCircle.d.ts
│   │       ā”œā”€ā”€ faExclamationCircle.js
│   │       ā”œā”€ā”€ faExclamationTriangle.d.ts
│   │       ā”œā”€ā”€ faExclamationTriangle.js
│   │       ā”œā”€ā”€ faExpand.d.ts
│   │       ā”œā”€ā”€ faExpand.js
│   │       ā”œā”€ā”€ faExpandAlt.d.ts
│   │       ā”œā”€ā”€ faExpandAlt.js
│   │       ā”œā”€ā”€ faExpandArrowsAlt.d.ts
│   │       ā”œā”€ā”€ faExpandArrowsAlt.js
│   │       ā”œā”€ā”€ faExplosion.d.ts
│   │       ā”œā”€ā”€ faExplosion.js
│   │       ā”œā”€ā”€ faExternalLink.d.ts
│   │       ā”œā”€ā”€ faExternalLink.js
│   │       ā”œā”€ā”€ faExternalLinkAlt.d.ts
│   │       ā”œā”€ā”€ faExternalLinkAlt.js
│   │       ā”œā”€ā”€ faExternalLinkSquare.d.ts
│   │       ā”œā”€ā”€ faExternalLinkSquare.js
│   │       ā”œā”€ā”€ faExternalLinkSquareAlt.d.ts
│   │       ā”œā”€ā”€ faExternalLinkSquareAlt.js
│   │       ā”œā”€ā”€ faEye.d.ts
│   │       ā”œā”€ā”€ faEye.js
│   │       ā”œā”€ā”€ faEyeDropper.d.ts
│   │       ā”œā”€ā”€ faEyeDropper.js
│   │       ā”œā”€ā”€ faEyeDropperEmpty.d.ts
│   │       ā”œā”€ā”€ faEyeDropperEmpty.js
│   │       ā”œā”€ā”€ faEyeLowVision.d.ts
│   │       ā”œā”€ā”€ faEyeLowVision.js
│   │       ā”œā”€ā”€ faEyeSlash.d.ts
│   │       ā”œā”€ā”€ faEyeSlash.js
│   │       ā”œā”€ā”€ faF.d.ts
│   │       ā”œā”€ā”€ faF.js
│   │       ā”œā”€ā”€ faFaceAngry.d.ts
│   │       ā”œā”€ā”€ faFaceAngry.js
│   │       ā”œā”€ā”€ faFaceDizzy.d.ts
│   │       ā”œā”€ā”€ faFaceDizzy.js
│   │       ā”œā”€ā”€ faFaceFlushed.d.ts
│   │       ā”œā”€ā”€ faFaceFlushed.js
│   │       ā”œā”€ā”€ faFaceFrown.d.ts
│   │       ā”œā”€ā”€ faFaceFrown.js
│   │       ā”œā”€ā”€ faFaceFrownOpen.d.ts
│   │       ā”œā”€ā”€ faFaceFrownOpen.js
│   │       ā”œā”€ā”€ faFaceGrimace.d.ts
│   │       ā”œā”€ā”€ faFaceGrimace.js
│   │       ā”œā”€ā”€ faFaceGrin.d.ts
│   │       ā”œā”€ā”€ faFaceGrin.js
│   │       ā”œā”€ā”€ faFaceGrinBeam.d.ts
│   │       ā”œā”€ā”€ faFaceGrinBeam.js
│   │       ā”œā”€ā”€ faFaceGrinBeamSweat.d.ts
│   │       ā”œā”€ā”€ faFaceGrinBeamSweat.js
│   │       ā”œā”€ā”€ faFaceGrinHearts.d.ts
│   │       ā”œā”€ā”€ faFaceGrinHearts.js
│   │       ā”œā”€ā”€ faFaceGrinSquint.d.ts
│   │       ā”œā”€ā”€ faFaceGrinSquint.js
│   │       ā”œā”€ā”€ faFaceGrinSquintTears.d.ts
│   │       ā”œā”€ā”€ faFaceGrinSquintTears.js
│   │       ā”œā”€ā”€ faFaceGrinStars.d.ts
│   │       ā”œā”€ā”€ faFaceGrinStars.js
│   │       ā”œā”€ā”€ faFaceGrinTears.d.ts
│   │       ā”œā”€ā”€ faFaceGrinTears.js
│   │       ā”œā”€ā”€ faFaceGrinTongue.d.ts
│   │       ā”œā”€ā”€ faFaceGrinTongue.js
│   │       ā”œā”€ā”€ faFaceGrinTongueSquint.d.ts
│   │       ā”œā”€ā”€ faFaceGrinTongueSquint.js
│   │       ā”œā”€ā”€ faFaceGrinTongueWink.d.ts
│   │       ā”œā”€ā”€ faFaceGrinTongueWink.js
│   │       ā”œā”€ā”€ faFaceGrinWide.d.ts
│   │       ā”œā”€ā”€ faFaceGrinWide.js
│   │       ā”œā”€ā”€ faFaceGrinWink.d.ts
│   │       ā”œā”€ā”€ faFaceGrinWink.js
│   │       ā”œā”€ā”€ faFaceKiss.d.ts
│   │       ā”œā”€ā”€ faFaceKiss.js
│   │       ā”œā”€ā”€ faFaceKissBeam.d.ts
│   │       ā”œā”€ā”€ faFaceKissBeam.js
│   │       ā”œā”€ā”€ faFaceKissWinkHeart.d.ts
│   │       ā”œā”€ā”€ faFaceKissWinkHeart.js
│   │       ā”œā”€ā”€ faFaceLaugh.d.ts
│   │       ā”œā”€ā”€ faFaceLaugh.js
│   │       ā”œā”€ā”€ faFaceLaughBeam.d.ts
│   │       ā”œā”€ā”€ faFaceLaughBeam.js
│   │       ā”œā”€ā”€ faFaceLaughSquint.d.ts
│   │       ā”œā”€ā”€ faFaceLaughSquint.js
│   │       ā”œā”€ā”€ faFaceLaughWink.d.ts
│   │       ā”œā”€ā”€ faFaceLaughWink.js
│   │       ā”œā”€ā”€ faFaceMeh.d.ts
│   │       ā”œā”€ā”€ faFaceMeh.js
│   │       ā”œā”€ā”€ faFaceMehBlank.d.ts
│   │       ā”œā”€ā”€ faFaceMehBlank.js
│   │       ā”œā”€ā”€ faFaceRollingEyes.d.ts
│   │       ā”œā”€ā”€ faFaceRollingEyes.js
│   │       ā”œā”€ā”€ faFaceSadCry.d.ts
│   │       ā”œā”€ā”€ faFaceSadCry.js
│   │       ā”œā”€ā”€ faFaceSadTear.d.ts
│   │       ā”œā”€ā”€ faFaceSadTear.js
│   │       ā”œā”€ā”€ faFaceSmile.d.ts
│   │       ā”œā”€ā”€ faFaceSmile.js
│   │       ā”œā”€ā”€ faFaceSmileBeam.d.ts
│   │       ā”œā”€ā”€ faFaceSmileBeam.js
│   │       ā”œā”€ā”€ faFaceSmileWink.d.ts
│   │       ā”œā”€ā”€ faFaceSmileWink.js
│   │       ā”œā”€ā”€ faFaceSurprise.d.ts
│   │       ā”œā”€ā”€ faFaceSurprise.js
│   │       ā”œā”€ā”€ faFaceTired.d.ts
│   │       ā”œā”€ā”€ faFaceTired.js
│   │       ā”œā”€ā”€ faFan.d.ts
│   │       ā”œā”€ā”€ faFan.js
│   │       ā”œā”€ā”€ faFastBackward.d.ts
│   │       ā”œā”€ā”€ faFastBackward.js
│   │       ā”œā”€ā”€ faFastForward.d.ts
│   │       ā”œā”€ā”€ faFastForward.js
│   │       ā”œā”€ā”€ faFaucet.d.ts
│   │       ā”œā”€ā”€ faFaucet.js
│   │       ā”œā”€ā”€ faFaucetDrip.d.ts
│   │       ā”œā”€ā”€ faFaucetDrip.js
│   │       ā”œā”€ā”€ faFax.d.ts
│   │       ā”œā”€ā”€ faFax.js
│   │       ā”œā”€ā”€ faFeather.d.ts
│   │       ā”œā”€ā”€ faFeather.js
│   │       ā”œā”€ā”€ faFeatherAlt.d.ts
│   │       ā”œā”€ā”€ faFeatherAlt.js
│   │       ā”œā”€ā”€ faFeatherPointed.d.ts
│   │       ā”œā”€ā”€ faFeatherPointed.js
│   │       ā”œā”€ā”€ faFeed.d.ts
│   │       ā”œā”€ā”€ faFeed.js
│   │       ā”œā”€ā”€ faFemale.d.ts
│   │       ā”œā”€ā”€ faFemale.js
│   │       ā”œā”€ā”€ faFerry.d.ts
│   │       ā”œā”€ā”€ faFerry.js
│   │       ā”œā”€ā”€ faFighterJet.d.ts
│   │       ā”œā”€ā”€ faFighterJet.js
│   │       ā”œā”€ā”€ faFile.d.ts
│   │       ā”œā”€ā”€ faFile.js
│   │       ā”œā”€ā”€ faFileAlt.d.ts
│   │       ā”œā”€ā”€ faFileAlt.js
│   │       ā”œā”€ā”€ faFileArchive.d.ts
│   │       ā”œā”€ā”€ faFileArchive.js
│   │       ā”œā”€ā”€ faFileArrowDown.d.ts
│   │       ā”œā”€ā”€ faFileArrowDown.js
│   │       ā”œā”€ā”€ faFileArrowUp.d.ts
│   │       ā”œā”€ā”€ faFileArrowUp.js
│   │       ā”œā”€ā”€ faFileAudio.d.ts
│   │       ā”œā”€ā”€ faFileAudio.js
│   │       ā”œā”€ā”€ faFileCircleCheck.d.ts
│   │       ā”œā”€ā”€ faFileCircleCheck.js
│   │       ā”œā”€ā”€ faFileCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faFileCircleExclamation.js
│   │       ā”œā”€ā”€ faFileCircleMinus.d.ts
│   │       ā”œā”€ā”€ faFileCircleMinus.js
│   │       ā”œā”€ā”€ faFileCirclePlus.d.ts
│   │       ā”œā”€ā”€ faFileCirclePlus.js
│   │       ā”œā”€ā”€ faFileCircleQuestion.d.ts
│   │       ā”œā”€ā”€ faFileCircleQuestion.js
│   │       ā”œā”€ā”€ faFileCircleXmark.d.ts
│   │       ā”œā”€ā”€ faFileCircleXmark.js
│   │       ā”œā”€ā”€ faFileClipboard.d.ts
│   │       ā”œā”€ā”€ faFileClipboard.js
│   │       ā”œā”€ā”€ faFileCode.d.ts
│   │       ā”œā”€ā”€ faFileCode.js
│   │       ā”œā”€ā”€ faFileContract.d.ts
│   │       ā”œā”€ā”€ faFileContract.js
│   │       ā”œā”€ā”€ faFileCsv.d.ts
│   │       ā”œā”€ā”€ faFileCsv.js
│   │       ā”œā”€ā”€ faFileDownload.d.ts
│   │       ā”œā”€ā”€ faFileDownload.js
│   │       ā”œā”€ā”€ faFileEdit.d.ts
│   │       ā”œā”€ā”€ faFileEdit.js
│   │       ā”œā”€ā”€ faFileExcel.d.ts
│   │       ā”œā”€ā”€ faFileExcel.js
│   │       ā”œā”€ā”€ faFileExport.d.ts
│   │       ā”œā”€ā”€ faFileExport.js
│   │       ā”œā”€ā”€ faFileFragment.d.ts
│   │       ā”œā”€ā”€ faFileFragment.js
│   │       ā”œā”€ā”€ faFileHalfDashed.d.ts
│   │       ā”œā”€ā”€ faFileHalfDashed.js
│   │       ā”œā”€ā”€ faFileImage.d.ts
│   │       ā”œā”€ā”€ faFileImage.js
│   │       ā”œā”€ā”€ faFileImport.d.ts
│   │       ā”œā”€ā”€ faFileImport.js
│   │       ā”œā”€ā”€ faFileInvoice.d.ts
│   │       ā”œā”€ā”€ faFileInvoice.js
│   │       ā”œā”€ā”€ faFileInvoiceDollar.d.ts
│   │       ā”œā”€ā”€ faFileInvoiceDollar.js
│   │       ā”œā”€ā”€ faFileLines.d.ts
│   │       ā”œā”€ā”€ faFileLines.js
│   │       ā”œā”€ā”€ faFileMedical.d.ts
│   │       ā”œā”€ā”€ faFileMedical.js
│   │       ā”œā”€ā”€ faFileMedicalAlt.d.ts
│   │       ā”œā”€ā”€ faFileMedicalAlt.js
│   │       ā”œā”€ā”€ faFilePdf.d.ts
│   │       ā”œā”€ā”€ faFilePdf.js
│   │       ā”œā”€ā”€ faFilePen.d.ts
│   │       ā”œā”€ā”€ faFilePen.js
│   │       ā”œā”€ā”€ faFilePowerpoint.d.ts
│   │       ā”œā”€ā”€ faFilePowerpoint.js
│   │       ā”œā”€ā”€ faFilePrescription.d.ts
│   │       ā”œā”€ā”€ faFilePrescription.js
│   │       ā”œā”€ā”€ faFileShield.d.ts
│   │       ā”œā”€ā”€ faFileShield.js
│   │       ā”œā”€ā”€ faFileSignature.d.ts
│   │       ā”œā”€ā”€ faFileSignature.js
│   │       ā”œā”€ā”€ faFileText.d.ts
│   │       ā”œā”€ā”€ faFileText.js
│   │       ā”œā”€ā”€ faFileUpload.d.ts
│   │       ā”œā”€ā”€ faFileUpload.js
│   │       ā”œā”€ā”€ faFileVideo.d.ts
│   │       ā”œā”€ā”€ faFileVideo.js
│   │       ā”œā”€ā”€ faFileWaveform.d.ts
│   │       ā”œā”€ā”€ faFileWaveform.js
│   │       ā”œā”€ā”€ faFileWord.d.ts
│   │       ā”œā”€ā”€ faFileWord.js
│   │       ā”œā”€ā”€ faFileZipper.d.ts
│   │       ā”œā”€ā”€ faFileZipper.js
│   │       ā”œā”€ā”€ faFill.d.ts
│   │       ā”œā”€ā”€ faFill.js
│   │       ā”œā”€ā”€ faFillDrip.d.ts
│   │       ā”œā”€ā”€ faFillDrip.js
│   │       ā”œā”€ā”€ faFilm.d.ts
│   │       ā”œā”€ā”€ faFilm.js
│   │       ā”œā”€ā”€ faFilter.d.ts
│   │       ā”œā”€ā”€ faFilter.js
│   │       ā”œā”€ā”€ faFilterCircleDollar.d.ts
│   │       ā”œā”€ā”€ faFilterCircleDollar.js
│   │       ā”œā”€ā”€ faFilterCircleXmark.d.ts
│   │       ā”œā”€ā”€ faFilterCircleXmark.js
│   │       ā”œā”€ā”€ faFingerprint.d.ts
│   │       ā”œā”€ā”€ faFingerprint.js
│   │       ā”œā”€ā”€ faFire.d.ts
│   │       ā”œā”€ā”€ faFire.js
│   │       ā”œā”€ā”€ faFireAlt.d.ts
│   │       ā”œā”€ā”€ faFireAlt.js
│   │       ā”œā”€ā”€ faFireBurner.d.ts
│   │       ā”œā”€ā”€ faFireBurner.js
│   │       ā”œā”€ā”€ faFireExtinguisher.d.ts
│   │       ā”œā”€ā”€ faFireExtinguisher.js
│   │       ā”œā”€ā”€ faFireFlameCurved.d.ts
│   │       ā”œā”€ā”€ faFireFlameCurved.js
│   │       ā”œā”€ā”€ faFireFlameSimple.d.ts
│   │       ā”œā”€ā”€ faFireFlameSimple.js
│   │       ā”œā”€ā”€ faFirstAid.d.ts
│   │       ā”œā”€ā”€ faFirstAid.js
│   │       ā”œā”€ā”€ faFish.d.ts
│   │       ā”œā”€ā”€ faFish.js
│   │       ā”œā”€ā”€ faFishFins.d.ts
│   │       ā”œā”€ā”€ faFishFins.js
│   │       ā”œā”€ā”€ faFistRaised.d.ts
│   │       ā”œā”€ā”€ faFistRaised.js
│   │       ā”œā”€ā”€ faFlag.d.ts
│   │       ā”œā”€ā”€ faFlag.js
│   │       ā”œā”€ā”€ faFlagCheckered.d.ts
│   │       ā”œā”€ā”€ faFlagCheckered.js
│   │       ā”œā”€ā”€ faFlagUsa.d.ts
│   │       ā”œā”€ā”€ faFlagUsa.js
│   │       ā”œā”€ā”€ faFlask.d.ts
│   │       ā”œā”€ā”€ faFlask.js
│   │       ā”œā”€ā”€ faFlaskVial.d.ts
│   │       ā”œā”€ā”€ faFlaskVial.js
│   │       ā”œā”€ā”€ faFloppyDisk.d.ts
│   │       ā”œā”€ā”€ faFloppyDisk.js
│   │       ā”œā”€ā”€ faFlorinSign.d.ts
│   │       ā”œā”€ā”€ faFlorinSign.js
│   │       ā”œā”€ā”€ faFlushed.d.ts
│   │       ā”œā”€ā”€ faFlushed.js
│   │       ā”œā”€ā”€ faFolder.d.ts
│   │       ā”œā”€ā”€ faFolder.js
│   │       ā”œā”€ā”€ faFolderBlank.d.ts
│   │       ā”œā”€ā”€ faFolderBlank.js
│   │       ā”œā”€ā”€ faFolderClosed.d.ts
│   │       ā”œā”€ā”€ faFolderClosed.js
│   │       ā”œā”€ā”€ faFolderMinus.d.ts
│   │       ā”œā”€ā”€ faFolderMinus.js
│   │       ā”œā”€ā”€ faFolderOpen.d.ts
│   │       ā”œā”€ā”€ faFolderOpen.js
│   │       ā”œā”€ā”€ faFolderPlus.d.ts
│   │       ā”œā”€ā”€ faFolderPlus.js
│   │       ā”œā”€ā”€ faFolderTree.d.ts
│   │       ā”œā”€ā”€ faFolderTree.js
│   │       ā”œā”€ā”€ faFont.d.ts
│   │       ā”œā”€ā”€ faFont.js
│   │       ā”œā”€ā”€ faFontAwesome.d.ts
│   │       ā”œā”€ā”€ faFontAwesome.js
│   │       ā”œā”€ā”€ faFontAwesomeFlag.d.ts
│   │       ā”œā”€ā”€ faFontAwesomeFlag.js
│   │       ā”œā”€ā”€ faFontAwesomeLogoFull.d.ts
│   │       ā”œā”€ā”€ faFontAwesomeLogoFull.js
│   │       ā”œā”€ā”€ faFootball.d.ts
│   │       ā”œā”€ā”€ faFootball.js
│   │       ā”œā”€ā”€ faFootballBall.d.ts
│   │       ā”œā”€ā”€ faFootballBall.js
│   │       ā”œā”€ā”€ faForward.d.ts
│   │       ā”œā”€ā”€ faForward.js
│   │       ā”œā”€ā”€ faForwardFast.d.ts
│   │       ā”œā”€ā”€ faForwardFast.js
│   │       ā”œā”€ā”€ faForwardStep.d.ts
│   │       ā”œā”€ā”€ faForwardStep.js
│   │       ā”œā”€ā”€ faFrancSign.d.ts
│   │       ā”œā”€ā”€ faFrancSign.js
│   │       ā”œā”€ā”€ faFrog.d.ts
│   │       ā”œā”€ā”€ faFrog.js
│   │       ā”œā”€ā”€ faFrown.d.ts
│   │       ā”œā”€ā”€ faFrown.js
│   │       ā”œā”€ā”€ faFrownOpen.d.ts
│   │       ā”œā”€ā”€ faFrownOpen.js
│   │       ā”œā”€ā”€ faFunnelDollar.d.ts
│   │       ā”œā”€ā”€ faFunnelDollar.js
│   │       ā”œā”€ā”€ faFutbol.d.ts
│   │       ā”œā”€ā”€ faFutbol.js
│   │       ā”œā”€ā”€ faFutbolBall.d.ts
│   │       ā”œā”€ā”€ faFutbolBall.js
│   │       ā”œā”€ā”€ faG.d.ts
│   │       ā”œā”€ā”€ faG.js
│   │       ā”œā”€ā”€ faGamepad.d.ts
│   │       ā”œā”€ā”€ faGamepad.js
│   │       ā”œā”€ā”€ faGasPump.d.ts
│   │       ā”œā”€ā”€ faGasPump.js
│   │       ā”œā”€ā”€ faGauge.d.ts
│   │       ā”œā”€ā”€ faGauge.js
│   │       ā”œā”€ā”€ faGaugeHigh.d.ts
│   │       ā”œā”€ā”€ faGaugeHigh.js
│   │       ā”œā”€ā”€ faGaugeMed.d.ts
│   │       ā”œā”€ā”€ faGaugeMed.js
│   │       ā”œā”€ā”€ faGaugeSimple.d.ts
│   │       ā”œā”€ā”€ faGaugeSimple.js
│   │       ā”œā”€ā”€ faGaugeSimpleHigh.d.ts
│   │       ā”œā”€ā”€ faGaugeSimpleHigh.js
│   │       ā”œā”€ā”€ faGaugeSimpleMed.d.ts
│   │       ā”œā”€ā”€ faGaugeSimpleMed.js
│   │       ā”œā”€ā”€ faGavel.d.ts
│   │       ā”œā”€ā”€ faGavel.js
│   │       ā”œā”€ā”€ faGbp.d.ts
│   │       ā”œā”€ā”€ faGbp.js
│   │       ā”œā”€ā”€ faGear.d.ts
│   │       ā”œā”€ā”€ faGear.js
│   │       ā”œā”€ā”€ faGears.d.ts
│   │       ā”œā”€ā”€ faGears.js
│   │       ā”œā”€ā”€ faGem.d.ts
│   │       ā”œā”€ā”€ faGem.js
│   │       ā”œā”€ā”€ faGenderless.d.ts
│   │       ā”œā”€ā”€ faGenderless.js
│   │       ā”œā”€ā”€ faGhost.d.ts
│   │       ā”œā”€ā”€ faGhost.js
│   │       ā”œā”€ā”€ faGift.d.ts
│   │       ā”œā”€ā”€ faGift.js
│   │       ā”œā”€ā”€ faGifts.d.ts
│   │       ā”œā”€ā”€ faGifts.js
│   │       ā”œā”€ā”€ faGlassCheers.d.ts
│   │       ā”œā”€ā”€ faGlassCheers.js
│   │       ā”œā”€ā”€ faGlassMartini.d.ts
│   │       ā”œā”€ā”€ faGlassMartini.js
│   │       ā”œā”€ā”€ faGlassMartiniAlt.d.ts
│   │       ā”œā”€ā”€ faGlassMartiniAlt.js
│   │       ā”œā”€ā”€ faGlassWater.d.ts
│   │       ā”œā”€ā”€ faGlassWater.js
│   │       ā”œā”€ā”€ faGlassWaterDroplet.d.ts
│   │       ā”œā”€ā”€ faGlassWaterDroplet.js
│   │       ā”œā”€ā”€ faGlassWhiskey.d.ts
│   │       ā”œā”€ā”€ faGlassWhiskey.js
│   │       ā”œā”€ā”€ faGlasses.d.ts
│   │       ā”œā”€ā”€ faGlasses.js
│   │       ā”œā”€ā”€ faGlobe.d.ts
│   │       ā”œā”€ā”€ faGlobe.js
│   │       ā”œā”€ā”€ faGlobeAfrica.d.ts
│   │       ā”œā”€ā”€ faGlobeAfrica.js
│   │       ā”œā”€ā”€ faGlobeAmericas.d.ts
│   │       ā”œā”€ā”€ faGlobeAmericas.js
│   │       ā”œā”€ā”€ faGlobeAsia.d.ts
│   │       ā”œā”€ā”€ faGlobeAsia.js
│   │       ā”œā”€ā”€ faGlobeEurope.d.ts
│   │       ā”œā”€ā”€ faGlobeEurope.js
│   │       ā”œā”€ā”€ faGlobeOceania.d.ts
│   │       ā”œā”€ā”€ faGlobeOceania.js
│   │       ā”œā”€ā”€ faGolfBall.d.ts
│   │       ā”œā”€ā”€ faGolfBall.js
│   │       ā”œā”€ā”€ faGolfBallTee.d.ts
│   │       ā”œā”€ā”€ faGolfBallTee.js
│   │       ā”œā”€ā”€ faGopuram.d.ts
│   │       ā”œā”€ā”€ faGopuram.js
│   │       ā”œā”€ā”€ faGraduationCap.d.ts
│   │       ā”œā”€ā”€ faGraduationCap.js
│   │       ā”œā”€ā”€ faGreaterThan.d.ts
│   │       ā”œā”€ā”€ faGreaterThan.js
│   │       ā”œā”€ā”€ faGreaterThanEqual.d.ts
│   │       ā”œā”€ā”€ faGreaterThanEqual.js
│   │       ā”œā”€ā”€ faGrimace.d.ts
│   │       ā”œā”€ā”€ faGrimace.js
│   │       ā”œā”€ā”€ faGrin.d.ts
│   │       ā”œā”€ā”€ faGrin.js
│   │       ā”œā”€ā”€ faGrinAlt.d.ts
│   │       ā”œā”€ā”€ faGrinAlt.js
│   │       ā”œā”€ā”€ faGrinBeam.d.ts
│   │       ā”œā”€ā”€ faGrinBeam.js
│   │       ā”œā”€ā”€ faGrinBeamSweat.d.ts
│   │       ā”œā”€ā”€ faGrinBeamSweat.js
│   │       ā”œā”€ā”€ faGrinHearts.d.ts
│   │       ā”œā”€ā”€ faGrinHearts.js
│   │       ā”œā”€ā”€ faGrinSquint.d.ts
│   │       ā”œā”€ā”€ faGrinSquint.js
│   │       ā”œā”€ā”€ faGrinSquintTears.d.ts
│   │       ā”œā”€ā”€ faGrinSquintTears.js
│   │       ā”œā”€ā”€ faGrinStars.d.ts
│   │       ā”œā”€ā”€ faGrinStars.js
│   │       ā”œā”€ā”€ faGrinTears.d.ts
│   │       ā”œā”€ā”€ faGrinTears.js
│   │       ā”œā”€ā”€ faGrinTongue.d.ts
│   │       ā”œā”€ā”€ faGrinTongue.js
│   │       ā”œā”€ā”€ faGrinTongueSquint.d.ts
│   │       ā”œā”€ā”€ faGrinTongueSquint.js
│   │       ā”œā”€ā”€ faGrinTongueWink.d.ts
│   │       ā”œā”€ā”€ faGrinTongueWink.js
│   │       ā”œā”€ā”€ faGrinWink.d.ts
│   │       ā”œā”€ā”€ faGrinWink.js
│   │       ā”œā”€ā”€ faGrip.d.ts
│   │       ā”œā”€ā”€ faGrip.js
│   │       ā”œā”€ā”€ faGripHorizontal.d.ts
│   │       ā”œā”€ā”€ faGripHorizontal.js
│   │       ā”œā”€ā”€ faGripLines.d.ts
│   │       ā”œā”€ā”€ faGripLines.js
│   │       ā”œā”€ā”€ faGripLinesVertical.d.ts
│   │       ā”œā”€ā”€ faGripLinesVertical.js
│   │       ā”œā”€ā”€ faGripVertical.d.ts
│   │       ā”œā”€ā”€ faGripVertical.js
│   │       ā”œā”€ā”€ faGroupArrowsRotate.d.ts
│   │       ā”œā”€ā”€ faGroupArrowsRotate.js
│   │       ā”œā”€ā”€ faGuaraniSign.d.ts
│   │       ā”œā”€ā”€ faGuaraniSign.js
│   │       ā”œā”€ā”€ faGuitar.d.ts
│   │       ā”œā”€ā”€ faGuitar.js
│   │       ā”œā”€ā”€ faGun.d.ts
│   │       ā”œā”€ā”€ faGun.js
│   │       ā”œā”€ā”€ faH.d.ts
│   │       ā”œā”€ā”€ faH.js
│   │       ā”œā”€ā”€ faHSquare.d.ts
│   │       ā”œā”€ā”€ faHSquare.js
│   │       ā”œā”€ā”€ faHamburger.d.ts
│   │       ā”œā”€ā”€ faHamburger.js
│   │       ā”œā”€ā”€ faHammer.d.ts
│   │       ā”œā”€ā”€ faHammer.js
│   │       ā”œā”€ā”€ faHamsa.d.ts
│   │       ā”œā”€ā”€ faHamsa.js
│   │       ā”œā”€ā”€ faHand.d.ts
│   │       ā”œā”€ā”€ faHand.js
│   │       ā”œā”€ā”€ faHandBackFist.d.ts
│   │       ā”œā”€ā”€ faHandBackFist.js
│   │       ā”œā”€ā”€ faHandDots.d.ts
│   │       ā”œā”€ā”€ faHandDots.js
│   │       ā”œā”€ā”€ faHandFist.d.ts
│   │       ā”œā”€ā”€ faHandFist.js
│   │       ā”œā”€ā”€ faHandHolding.d.ts
│   │       ā”œā”€ā”€ faHandHolding.js
│   │       ā”œā”€ā”€ faHandHoldingDollar.d.ts
│   │       ā”œā”€ā”€ faHandHoldingDollar.js
│   │       ā”œā”€ā”€ faHandHoldingDroplet.d.ts
│   │       ā”œā”€ā”€ faHandHoldingDroplet.js
│   │       ā”œā”€ā”€ faHandHoldingHand.d.ts
│   │       ā”œā”€ā”€ faHandHoldingHand.js
│   │       ā”œā”€ā”€ faHandHoldingHeart.d.ts
│   │       ā”œā”€ā”€ faHandHoldingHeart.js
│   │       ā”œā”€ā”€ faHandHoldingMedical.d.ts
│   │       ā”œā”€ā”€ faHandHoldingMedical.js
│   │       ā”œā”€ā”€ faHandHoldingUsd.d.ts
│   │       ā”œā”€ā”€ faHandHoldingUsd.js
│   │       ā”œā”€ā”€ faHandHoldingWater.d.ts
│   │       ā”œā”€ā”€ faHandHoldingWater.js
│   │       ā”œā”€ā”€ faHandLizard.d.ts
│   │       ā”œā”€ā”€ faHandLizard.js
│   │       ā”œā”€ā”€ faHandMiddleFinger.d.ts
│   │       ā”œā”€ā”€ faHandMiddleFinger.js
│   │       ā”œā”€ā”€ faHandPaper.d.ts
│   │       ā”œā”€ā”€ faHandPaper.js
│   │       ā”œā”€ā”€ faHandPeace.d.ts
│   │       ā”œā”€ā”€ faHandPeace.js
│   │       ā”œā”€ā”€ faHandPointDown.d.ts
│   │       ā”œā”€ā”€ faHandPointDown.js
│   │       ā”œā”€ā”€ faHandPointLeft.d.ts
│   │       ā”œā”€ā”€ faHandPointLeft.js
│   │       ā”œā”€ā”€ faHandPointRight.d.ts
│   │       ā”œā”€ā”€ faHandPointRight.js
│   │       ā”œā”€ā”€ faHandPointUp.d.ts
│   │       ā”œā”€ā”€ faHandPointUp.js
│   │       ā”œā”€ā”€ faHandPointer.d.ts
│   │       ā”œā”€ā”€ faHandPointer.js
│   │       ā”œā”€ā”€ faHandRock.d.ts
│   │       ā”œā”€ā”€ faHandRock.js
│   │       ā”œā”€ā”€ faHandScissors.d.ts
│   │       ā”œā”€ā”€ faHandScissors.js
│   │       ā”œā”€ā”€ faHandSparkles.d.ts
│   │       ā”œā”€ā”€ faHandSparkles.js
│   │       ā”œā”€ā”€ faHandSpock.d.ts
│   │       ā”œā”€ā”€ faHandSpock.js
│   │       ā”œā”€ā”€ faHandcuffs.d.ts
│   │       ā”œā”€ā”€ faHandcuffs.js
│   │       ā”œā”€ā”€ faHands.d.ts
│   │       ā”œā”€ā”€ faHands.js
│   │       ā”œā”€ā”€ faHandsAmericanSignLanguageInterpreting.d.ts
│   │       ā”œā”€ā”€ faHandsAmericanSignLanguageInterpreting.js
│   │       ā”œā”€ā”€ faHandsAslInterpreting.d.ts
│   │       ā”œā”€ā”€ faHandsAslInterpreting.js
│   │       ā”œā”€ā”€ faHandsBound.d.ts
│   │       ā”œā”€ā”€ faHandsBound.js
│   │       ā”œā”€ā”€ faHandsBubbles.d.ts
│   │       ā”œā”€ā”€ faHandsBubbles.js
│   │       ā”œā”€ā”€ faHandsClapping.d.ts
│   │       ā”œā”€ā”€ faHandsClapping.js
│   │       ā”œā”€ā”€ faHandsHelping.d.ts
│   │       ā”œā”€ā”€ faHandsHelping.js
│   │       ā”œā”€ā”€ faHandsHolding.d.ts
│   │       ā”œā”€ā”€ faHandsHolding.js
│   │       ā”œā”€ā”€ faHandsHoldingChild.d.ts
│   │       ā”œā”€ā”€ faHandsHoldingChild.js
│   │       ā”œā”€ā”€ faHandsHoldingCircle.d.ts
│   │       ā”œā”€ā”€ faHandsHoldingCircle.js
│   │       ā”œā”€ā”€ faHandsPraying.d.ts
│   │       ā”œā”€ā”€ faHandsPraying.js
│   │       ā”œā”€ā”€ faHandsWash.d.ts
│   │       ā”œā”€ā”€ faHandsWash.js
│   │       ā”œā”€ā”€ faHandshake.d.ts
│   │       ā”œā”€ā”€ faHandshake.js
│   │       ā”œā”€ā”€ faHandshakeAlt.d.ts
│   │       ā”œā”€ā”€ faHandshakeAlt.js
│   │       ā”œā”€ā”€ faHandshakeAltSlash.d.ts
│   │       ā”œā”€ā”€ faHandshakeAltSlash.js
│   │       ā”œā”€ā”€ faHandshakeAngle.d.ts
│   │       ā”œā”€ā”€ faHandshakeAngle.js
│   │       ā”œā”€ā”€ faHandshakeSimple.d.ts
│   │       ā”œā”€ā”€ faHandshakeSimple.js
│   │       ā”œā”€ā”€ faHandshakeSimpleSlash.d.ts
│   │       ā”œā”€ā”€ faHandshakeSimpleSlash.js
│   │       ā”œā”€ā”€ faHandshakeSlash.d.ts
│   │       ā”œā”€ā”€ faHandshakeSlash.js
│   │       ā”œā”€ā”€ faHanukiah.d.ts
│   │       ā”œā”€ā”€ faHanukiah.js
│   │       ā”œā”€ā”€ faHardDrive.d.ts
│   │       ā”œā”€ā”€ faHardDrive.js
│   │       ā”œā”€ā”€ faHardHat.d.ts
│   │       ā”œā”€ā”€ faHardHat.js
│   │       ā”œā”€ā”€ faHardOfHearing.d.ts
│   │       ā”œā”€ā”€ faHardOfHearing.js
│   │       ā”œā”€ā”€ faHashtag.d.ts
│   │       ā”œā”€ā”€ faHashtag.js
│   │       ā”œā”€ā”€ faHatCowboy.d.ts
│   │       ā”œā”€ā”€ faHatCowboy.js
│   │       ā”œā”€ā”€ faHatCowboySide.d.ts
│   │       ā”œā”€ā”€ faHatCowboySide.js
│   │       ā”œā”€ā”€ faHatHard.d.ts
│   │       ā”œā”€ā”€ faHatHard.js
│   │       ā”œā”€ā”€ faHatWizard.d.ts
│   │       ā”œā”€ā”€ faHatWizard.js
│   │       ā”œā”€ā”€ faHaykal.d.ts
│   │       ā”œā”€ā”€ faHaykal.js
│   │       ā”œā”€ā”€ faHdd.d.ts
│   │       ā”œā”€ā”€ faHdd.js
│   │       ā”œā”€ā”€ faHeadSideCough.d.ts
│   │       ā”œā”€ā”€ faHeadSideCough.js
│   │       ā”œā”€ā”€ faHeadSideCoughSlash.d.ts
│   │       ā”œā”€ā”€ faHeadSideCoughSlash.js
│   │       ā”œā”€ā”€ faHeadSideMask.d.ts
│   │       ā”œā”€ā”€ faHeadSideMask.js
│   │       ā”œā”€ā”€ faHeadSideVirus.d.ts
│   │       ā”œā”€ā”€ faHeadSideVirus.js
│   │       ā”œā”€ā”€ faHeader.d.ts
│   │       ā”œā”€ā”€ faHeader.js
│   │       ā”œā”€ā”€ faHeading.d.ts
│   │       ā”œā”€ā”€ faHeading.js
│   │       ā”œā”€ā”€ faHeadphones.d.ts
│   │       ā”œā”€ā”€ faHeadphones.js
│   │       ā”œā”€ā”€ faHeadphonesAlt.d.ts
│   │       ā”œā”€ā”€ faHeadphonesAlt.js
│   │       ā”œā”€ā”€ faHeadphonesSimple.d.ts
│   │       ā”œā”€ā”€ faHeadphonesSimple.js
│   │       ā”œā”€ā”€ faHeadset.d.ts
│   │       ā”œā”€ā”€ faHeadset.js
│   │       ā”œā”€ā”€ faHeart.d.ts
│   │       ā”œā”€ā”€ faHeart.js
│   │       ā”œā”€ā”€ faHeartBroken.d.ts
│   │       ā”œā”€ā”€ faHeartBroken.js
│   │       ā”œā”€ā”€ faHeartCircleBolt.d.ts
│   │       ā”œā”€ā”€ faHeartCircleBolt.js
│   │       ā”œā”€ā”€ faHeartCircleCheck.d.ts
│   │       ā”œā”€ā”€ faHeartCircleCheck.js
│   │       ā”œā”€ā”€ faHeartCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faHeartCircleExclamation.js
│   │       ā”œā”€ā”€ faHeartCircleMinus.d.ts
│   │       ā”œā”€ā”€ faHeartCircleMinus.js
│   │       ā”œā”€ā”€ faHeartCirclePlus.d.ts
│   │       ā”œā”€ā”€ faHeartCirclePlus.js
│   │       ā”œā”€ā”€ faHeartCircleXmark.d.ts
│   │       ā”œā”€ā”€ faHeartCircleXmark.js
│   │       ā”œā”€ā”€ faHeartCrack.d.ts
│   │       ā”œā”€ā”€ faHeartCrack.js
│   │       ā”œā”€ā”€ faHeartMusicCameraBolt.d.ts
│   │       ā”œā”€ā”€ faHeartMusicCameraBolt.js
│   │       ā”œā”€ā”€ faHeartPulse.d.ts
│   │       ā”œā”€ā”€ faHeartPulse.js
│   │       ā”œā”€ā”€ faHeartbeat.d.ts
│   │       ā”œā”€ā”€ faHeartbeat.js
│   │       ā”œā”€ā”€ faHelicopter.d.ts
│   │       ā”œā”€ā”€ faHelicopter.js
│   │       ā”œā”€ā”€ faHelicopterSymbol.d.ts
│   │       ā”œā”€ā”€ faHelicopterSymbol.js
│   │       ā”œā”€ā”€ faHelmetSafety.d.ts
│   │       ā”œā”€ā”€ faHelmetSafety.js
│   │       ā”œā”€ā”€ faHelmetUn.d.ts
│   │       ā”œā”€ā”€ faHelmetUn.js
│   │       ā”œā”€ā”€ faHexagonNodes.d.ts
│   │       ā”œā”€ā”€ faHexagonNodes.js
│   │       ā”œā”€ā”€ faHexagonNodesBolt.d.ts
│   │       ā”œā”€ā”€ faHexagonNodesBolt.js
│   │       ā”œā”€ā”€ faHighlighter.d.ts
│   │       ā”œā”€ā”€ faHighlighter.js
│   │       ā”œā”€ā”€ faHiking.d.ts
│   │       ā”œā”€ā”€ faHiking.js
│   │       ā”œā”€ā”€ faHillAvalanche.d.ts
│   │       ā”œā”€ā”€ faHillAvalanche.js
│   │       ā”œā”€ā”€ faHillRockslide.d.ts
│   │       ā”œā”€ā”€ faHillRockslide.js
│   │       ā”œā”€ā”€ faHippo.d.ts
│   │       ā”œā”€ā”€ faHippo.js
│   │       ā”œā”€ā”€ faHistory.d.ts
│   │       ā”œā”€ā”€ faHistory.js
│   │       ā”œā”€ā”€ faHockeyPuck.d.ts
│   │       ā”œā”€ā”€ faHockeyPuck.js
│   │       ā”œā”€ā”€ faHollyBerry.d.ts
│   │       ā”œā”€ā”€ faHollyBerry.js
│   │       ā”œā”€ā”€ faHome.d.ts
│   │       ā”œā”€ā”€ faHome.js
│   │       ā”œā”€ā”€ faHomeAlt.d.ts
│   │       ā”œā”€ā”€ faHomeAlt.js
│   │       ā”œā”€ā”€ faHomeLg.d.ts
│   │       ā”œā”€ā”€ faHomeLg.js
│   │       ā”œā”€ā”€ faHomeLgAlt.d.ts
│   │       ā”œā”€ā”€ faHomeLgAlt.js
│   │       ā”œā”€ā”€ faHomeUser.d.ts
│   │       ā”œā”€ā”€ faHomeUser.js
│   │       ā”œā”€ā”€ faHorse.d.ts
│   │       ā”œā”€ā”€ faHorse.js
│   │       ā”œā”€ā”€ faHorseHead.d.ts
│   │       ā”œā”€ā”€ faHorseHead.js
│   │       ā”œā”€ā”€ faHospital.d.ts
│   │       ā”œā”€ā”€ faHospital.js
│   │       ā”œā”€ā”€ faHospitalAlt.d.ts
│   │       ā”œā”€ā”€ faHospitalAlt.js
│   │       ā”œā”€ā”€ faHospitalSymbol.d.ts
│   │       ā”œā”€ā”€ faHospitalSymbol.js
│   │       ā”œā”€ā”€ faHospitalUser.d.ts
│   │       ā”œā”€ā”€ faHospitalUser.js
│   │       ā”œā”€ā”€ faHospitalWide.d.ts
│   │       ā”œā”€ā”€ faHospitalWide.js
│   │       ā”œā”€ā”€ faHotTub.d.ts
│   │       ā”œā”€ā”€ faHotTub.js
│   │       ā”œā”€ā”€ faHotTubPerson.d.ts
│   │       ā”œā”€ā”€ faHotTubPerson.js
│   │       ā”œā”€ā”€ faHotdog.d.ts
│   │       ā”œā”€ā”€ faHotdog.js
│   │       ā”œā”€ā”€ faHotel.d.ts
│   │       ā”œā”€ā”€ faHotel.js
│   │       ā”œā”€ā”€ faHourglass.d.ts
│   │       ā”œā”€ā”€ faHourglass.js
│   │       ā”œā”€ā”€ faHourglass1.d.ts
│   │       ā”œā”€ā”€ faHourglass1.js
│   │       ā”œā”€ā”€ faHourglass2.d.ts
│   │       ā”œā”€ā”€ faHourglass2.js
│   │       ā”œā”€ā”€ faHourglass3.d.ts
│   │       ā”œā”€ā”€ faHourglass3.js
│   │       ā”œā”€ā”€ faHourglassEmpty.d.ts
│   │       ā”œā”€ā”€ faHourglassEmpty.js
│   │       ā”œā”€ā”€ faHourglassEnd.d.ts
│   │       ā”œā”€ā”€ faHourglassEnd.js
│   │       ā”œā”€ā”€ faHourglassHalf.d.ts
│   │       ā”œā”€ā”€ faHourglassHalf.js
│   │       ā”œā”€ā”€ faHourglassStart.d.ts
│   │       ā”œā”€ā”€ faHourglassStart.js
│   │       ā”œā”€ā”€ faHouse.d.ts
│   │       ā”œā”€ā”€ faHouse.js
│   │       ā”œā”€ā”€ faHouseChimney.d.ts
│   │       ā”œā”€ā”€ faHouseChimney.js
│   │       ā”œā”€ā”€ faHouseChimneyCrack.d.ts
│   │       ā”œā”€ā”€ faHouseChimneyCrack.js
│   │       ā”œā”€ā”€ faHouseChimneyMedical.d.ts
│   │       ā”œā”€ā”€ faHouseChimneyMedical.js
│   │       ā”œā”€ā”€ faHouseChimneyUser.d.ts
│   │       ā”œā”€ā”€ faHouseChimneyUser.js
│   │       ā”œā”€ā”€ faHouseChimneyWindow.d.ts
│   │       ā”œā”€ā”€ faHouseChimneyWindow.js
│   │       ā”œā”€ā”€ faHouseCircleCheck.d.ts
│   │       ā”œā”€ā”€ faHouseCircleCheck.js
│   │       ā”œā”€ā”€ faHouseCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faHouseCircleExclamation.js
│   │       ā”œā”€ā”€ faHouseCircleXmark.d.ts
│   │       ā”œā”€ā”€ faHouseCircleXmark.js
│   │       ā”œā”€ā”€ faHouseCrack.d.ts
│   │       ā”œā”€ā”€ faHouseCrack.js
│   │       ā”œā”€ā”€ faHouseDamage.d.ts
│   │       ā”œā”€ā”€ faHouseDamage.js
│   │       ā”œā”€ā”€ faHouseFire.d.ts
│   │       ā”œā”€ā”€ faHouseFire.js
│   │       ā”œā”€ā”€ faHouseFlag.d.ts
│   │       ā”œā”€ā”€ faHouseFlag.js
│   │       ā”œā”€ā”€ faHouseFloodWater.d.ts
│   │       ā”œā”€ā”€ faHouseFloodWater.js
│   │       ā”œā”€ā”€ faHouseFloodWaterCircleArrowRight.d.ts
│   │       ā”œā”€ā”€ faHouseFloodWaterCircleArrowRight.js
│   │       ā”œā”€ā”€ faHouseLaptop.d.ts
│   │       ā”œā”€ā”€ faHouseLaptop.js
│   │       ā”œā”€ā”€ faHouseLock.d.ts
│   │       ā”œā”€ā”€ faHouseLock.js
│   │       ā”œā”€ā”€ faHouseMedical.d.ts
│   │       ā”œā”€ā”€ faHouseMedical.js
│   │       ā”œā”€ā”€ faHouseMedicalCircleCheck.d.ts
│   │       ā”œā”€ā”€ faHouseMedicalCircleCheck.js
│   │       ā”œā”€ā”€ faHouseMedicalCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faHouseMedicalCircleExclamation.js
│   │       ā”œā”€ā”€ faHouseMedicalCircleXmark.d.ts
│   │       ā”œā”€ā”€ faHouseMedicalCircleXmark.js
│   │       ā”œā”€ā”€ faHouseMedicalFlag.d.ts
│   │       ā”œā”€ā”€ faHouseMedicalFlag.js
│   │       ā”œā”€ā”€ faHouseSignal.d.ts
│   │       ā”œā”€ā”€ faHouseSignal.js
│   │       ā”œā”€ā”€ faHouseTsunami.d.ts
│   │       ā”œā”€ā”€ faHouseTsunami.js
│   │       ā”œā”€ā”€ faHouseUser.d.ts
│   │       ā”œā”€ā”€ faHouseUser.js
│   │       ā”œā”€ā”€ faHryvnia.d.ts
│   │       ā”œā”€ā”€ faHryvnia.js
│   │       ā”œā”€ā”€ faHryvniaSign.d.ts
│   │       ā”œā”€ā”€ faHryvniaSign.js
│   │       ā”œā”€ā”€ faHurricane.d.ts
│   │       ā”œā”€ā”€ faHurricane.js
│   │       ā”œā”€ā”€ faI.d.ts
│   │       ā”œā”€ā”€ faI.js
│   │       ā”œā”€ā”€ faICursor.d.ts
│   │       ā”œā”€ā”€ faICursor.js
│   │       ā”œā”€ā”€ faIceCream.d.ts
│   │       ā”œā”€ā”€ faIceCream.js
│   │       ā”œā”€ā”€ faIcicles.d.ts
│   │       ā”œā”€ā”€ faIcicles.js
│   │       ā”œā”€ā”€ faIcons.d.ts
│   │       ā”œā”€ā”€ faIcons.js
│   │       ā”œā”€ā”€ faIdBadge.d.ts
│   │       ā”œā”€ā”€ faIdBadge.js
│   │       ā”œā”€ā”€ faIdCard.d.ts
│   │       ā”œā”€ā”€ faIdCard.js
│   │       ā”œā”€ā”€ faIdCardAlt.d.ts
│   │       ā”œā”€ā”€ faIdCardAlt.js
│   │       ā”œā”€ā”€ faIdCardClip.d.ts
│   │       ā”œā”€ā”€ faIdCardClip.js
│   │       ā”œā”€ā”€ faIgloo.d.ts
│   │       ā”œā”€ā”€ faIgloo.js
│   │       ā”œā”€ā”€ faIls.d.ts
│   │       ā”œā”€ā”€ faIls.js
│   │       ā”œā”€ā”€ faImage.d.ts
│   │       ā”œā”€ā”€ faImage.js
│   │       ā”œā”€ā”€ faImagePortrait.d.ts
│   │       ā”œā”€ā”€ faImagePortrait.js
│   │       ā”œā”€ā”€ faImages.d.ts
│   │       ā”œā”€ā”€ faImages.js
│   │       ā”œā”€ā”€ faInbox.d.ts
│   │       ā”œā”€ā”€ faInbox.js
│   │       ā”œā”€ā”€ faIndent.d.ts
│   │       ā”œā”€ā”€ faIndent.js
│   │       ā”œā”€ā”€ faIndianRupee.d.ts
│   │       ā”œā”€ā”€ faIndianRupee.js
│   │       ā”œā”€ā”€ faIndianRupeeSign.d.ts
│   │       ā”œā”€ā”€ faIndianRupeeSign.js
│   │       ā”œā”€ā”€ faIndustry.d.ts
│   │       ā”œā”€ā”€ faIndustry.js
│   │       ā”œā”€ā”€ faInfinity.d.ts
│   │       ā”œā”€ā”€ faInfinity.js
│   │       ā”œā”€ā”€ faInfo.d.ts
│   │       ā”œā”€ā”€ faInfo.js
│   │       ā”œā”€ā”€ faInfoCircle.d.ts
│   │       ā”œā”€ā”€ faInfoCircle.js
│   │       ā”œā”€ā”€ faInr.d.ts
│   │       ā”œā”€ā”€ faInr.js
│   │       ā”œā”€ā”€ faInstitution.d.ts
│   │       ā”œā”€ā”€ faInstitution.js
│   │       ā”œā”€ā”€ faItalic.d.ts
│   │       ā”œā”€ā”€ faItalic.js
│   │       ā”œā”€ā”€ faJ.d.ts
│   │       ā”œā”€ā”€ faJ.js
│   │       ā”œā”€ā”€ faJar.d.ts
│   │       ā”œā”€ā”€ faJar.js
│   │       ā”œā”€ā”€ faJarWheat.d.ts
│   │       ā”œā”€ā”€ faJarWheat.js
│   │       ā”œā”€ā”€ faJedi.d.ts
│   │       ā”œā”€ā”€ faJedi.js
│   │       ā”œā”€ā”€ faJetFighter.d.ts
│   │       ā”œā”€ā”€ faJetFighter.js
│   │       ā”œā”€ā”€ faJetFighterUp.d.ts
│   │       ā”œā”€ā”€ faJetFighterUp.js
│   │       ā”œā”€ā”€ faJoint.d.ts
│   │       ā”œā”€ā”€ faJoint.js
│   │       ā”œā”€ā”€ faJournalWhills.d.ts
│   │       ā”œā”€ā”€ faJournalWhills.js
│   │       ā”œā”€ā”€ faJpy.d.ts
│   │       ā”œā”€ā”€ faJpy.js
│   │       ā”œā”€ā”€ faJugDetergent.d.ts
│   │       ā”œā”€ā”€ faJugDetergent.js
│   │       ā”œā”€ā”€ faK.d.ts
│   │       ā”œā”€ā”€ faK.js
│   │       ā”œā”€ā”€ faKaaba.d.ts
│   │       ā”œā”€ā”€ faKaaba.js
│   │       ā”œā”€ā”€ faKey.d.ts
│   │       ā”œā”€ā”€ faKey.js
│   │       ā”œā”€ā”€ faKeyboard.d.ts
│   │       ā”œā”€ā”€ faKeyboard.js
│   │       ā”œā”€ā”€ faKhanda.d.ts
│   │       ā”œā”€ā”€ faKhanda.js
│   │       ā”œā”€ā”€ faKipSign.d.ts
│   │       ā”œā”€ā”€ faKipSign.js
│   │       ā”œā”€ā”€ faKiss.d.ts
│   │       ā”œā”€ā”€ faKiss.js
│   │       ā”œā”€ā”€ faKissBeam.d.ts
│   │       ā”œā”€ā”€ faKissBeam.js
│   │       ā”œā”€ā”€ faKissWinkHeart.d.ts
│   │       ā”œā”€ā”€ faKissWinkHeart.js
│   │       ā”œā”€ā”€ faKitMedical.d.ts
│   │       ā”œā”€ā”€ faKitMedical.js
│   │       ā”œā”€ā”€ faKitchenSet.d.ts
│   │       ā”œā”€ā”€ faKitchenSet.js
│   │       ā”œā”€ā”€ faKiwiBird.d.ts
│   │       ā”œā”€ā”€ faKiwiBird.js
│   │       ā”œā”€ā”€ faKrw.d.ts
│   │       ā”œā”€ā”€ faKrw.js
│   │       ā”œā”€ā”€ faL.d.ts
│   │       ā”œā”€ā”€ faL.js
│   │       ā”œā”€ā”€ faLadderWater.d.ts
│   │       ā”œā”€ā”€ faLadderWater.js
│   │       ā”œā”€ā”€ faLandMineOn.d.ts
│   │       ā”œā”€ā”€ faLandMineOn.js
│   │       ā”œā”€ā”€ faLandmark.d.ts
│   │       ā”œā”€ā”€ faLandmark.js
│   │       ā”œā”€ā”€ faLandmarkAlt.d.ts
│   │       ā”œā”€ā”€ faLandmarkAlt.js
│   │       ā”œā”€ā”€ faLandmarkDome.d.ts
│   │       ā”œā”€ā”€ faLandmarkDome.js
│   │       ā”œā”€ā”€ faLandmarkFlag.d.ts
│   │       ā”œā”€ā”€ faLandmarkFlag.js
│   │       ā”œā”€ā”€ faLanguage.d.ts
│   │       ā”œā”€ā”€ faLanguage.js
│   │       ā”œā”€ā”€ faLaptop.d.ts
│   │       ā”œā”€ā”€ faLaptop.js
│   │       ā”œā”€ā”€ faLaptopCode.d.ts
│   │       ā”œā”€ā”€ faLaptopCode.js
│   │       ā”œā”€ā”€ faLaptopFile.d.ts
│   │       ā”œā”€ā”€ faLaptopFile.js
│   │       ā”œā”€ā”€ faLaptopHouse.d.ts
│   │       ā”œā”€ā”€ faLaptopHouse.js
│   │       ā”œā”€ā”€ faLaptopMedical.d.ts
│   │       ā”œā”€ā”€ faLaptopMedical.js
│   │       ā”œā”€ā”€ faLariSign.d.ts
│   │       ā”œā”€ā”€ faLariSign.js
│   │       ā”œā”€ā”€ faLaugh.d.ts
│   │       ā”œā”€ā”€ faLaugh.js
│   │       ā”œā”€ā”€ faLaughBeam.d.ts
│   │       ā”œā”€ā”€ faLaughBeam.js
│   │       ā”œā”€ā”€ faLaughSquint.d.ts
│   │       ā”œā”€ā”€ faLaughSquint.js
│   │       ā”œā”€ā”€ faLaughWink.d.ts
│   │       ā”œā”€ā”€ faLaughWink.js
│   │       ā”œā”€ā”€ faLayerGroup.d.ts
│   │       ā”œā”€ā”€ faLayerGroup.js
│   │       ā”œā”€ā”€ faLeaf.d.ts
│   │       ā”œā”€ā”€ faLeaf.js
│   │       ā”œā”€ā”€ faLeftLong.d.ts
│   │       ā”œā”€ā”€ faLeftLong.js
│   │       ā”œā”€ā”€ faLeftRight.d.ts
│   │       ā”œā”€ā”€ faLeftRight.js
│   │       ā”œā”€ā”€ faLegal.d.ts
│   │       ā”œā”€ā”€ faLegal.js
│   │       ā”œā”€ā”€ faLemon.d.ts
│   │       ā”œā”€ā”€ faLemon.js
│   │       ā”œā”€ā”€ faLessThan.d.ts
│   │       ā”œā”€ā”€ faLessThan.js
│   │       ā”œā”€ā”€ faLessThanEqual.d.ts
│   │       ā”œā”€ā”€ faLessThanEqual.js
│   │       ā”œā”€ā”€ faLevelDown.d.ts
│   │       ā”œā”€ā”€ faLevelDown.js
│   │       ā”œā”€ā”€ faLevelDownAlt.d.ts
│   │       ā”œā”€ā”€ faLevelDownAlt.js
│   │       ā”œā”€ā”€ faLevelUp.d.ts
│   │       ā”œā”€ā”€ faLevelUp.js
│   │       ā”œā”€ā”€ faLevelUpAlt.d.ts
│   │       ā”œā”€ā”€ faLevelUpAlt.js
│   │       ā”œā”€ā”€ faLifeRing.d.ts
│   │       ā”œā”€ā”€ faLifeRing.js
│   │       ā”œā”€ā”€ faLightbulb.d.ts
│   │       ā”œā”€ā”€ faLightbulb.js
│   │       ā”œā”€ā”€ faLineChart.d.ts
│   │       ā”œā”€ā”€ faLineChart.js
│   │       ā”œā”€ā”€ faLinesLeaning.d.ts
│   │       ā”œā”€ā”€ faLinesLeaning.js
│   │       ā”œā”€ā”€ faLink.d.ts
│   │       ā”œā”€ā”€ faLink.js
│   │       ā”œā”€ā”€ faLinkSlash.d.ts
│   │       ā”œā”€ā”€ faLinkSlash.js
│   │       ā”œā”€ā”€ faLiraSign.d.ts
│   │       ā”œā”€ā”€ faLiraSign.js
│   │       ā”œā”€ā”€ faList.d.ts
│   │       ā”œā”€ā”€ faList.js
│   │       ā”œā”€ā”€ faList12.d.ts
│   │       ā”œā”€ā”€ faList12.js
│   │       ā”œā”€ā”€ faListAlt.d.ts
│   │       ā”œā”€ā”€ faListAlt.js
│   │       ā”œā”€ā”€ faListCheck.d.ts
│   │       ā”œā”€ā”€ faListCheck.js
│   │       ā”œā”€ā”€ faListDots.d.ts
│   │       ā”œā”€ā”€ faListDots.js
│   │       ā”œā”€ā”€ faListNumeric.d.ts
│   │       ā”œā”€ā”€ faListNumeric.js
│   │       ā”œā”€ā”€ faListOl.d.ts
│   │       ā”œā”€ā”€ faListOl.js
│   │       ā”œā”€ā”€ faListSquares.d.ts
│   │       ā”œā”€ā”€ faListSquares.js
│   │       ā”œā”€ā”€ faListUl.d.ts
│   │       ā”œā”€ā”€ faListUl.js
│   │       ā”œā”€ā”€ faLitecoinSign.d.ts
│   │       ā”œā”€ā”€ faLitecoinSign.js
│   │       ā”œā”€ā”€ faLocation.d.ts
│   │       ā”œā”€ā”€ faLocation.js
│   │       ā”œā”€ā”€ faLocationArrow.d.ts
│   │       ā”œā”€ā”€ faLocationArrow.js
│   │       ā”œā”€ā”€ faLocationCrosshairs.d.ts
│   │       ā”œā”€ā”€ faLocationCrosshairs.js
│   │       ā”œā”€ā”€ faLocationDot.d.ts
│   │       ā”œā”€ā”€ faLocationDot.js
│   │       ā”œā”€ā”€ faLocationPin.d.ts
│   │       ā”œā”€ā”€ faLocationPin.js
│   │       ā”œā”€ā”€ faLocationPinLock.d.ts
│   │       ā”œā”€ā”€ faLocationPinLock.js
│   │       ā”œā”€ā”€ faLock.d.ts
│   │       ā”œā”€ā”€ faLock.js
│   │       ā”œā”€ā”€ faLockOpen.d.ts
│   │       ā”œā”€ā”€ faLockOpen.js
│   │       ā”œā”€ā”€ faLocust.d.ts
│   │       ā”œā”€ā”€ faLocust.js
│   │       ā”œā”€ā”€ faLongArrowAltDown.d.ts
│   │       ā”œā”€ā”€ faLongArrowAltDown.js
│   │       ā”œā”€ā”€ faLongArrowAltLeft.d.ts
│   │       ā”œā”€ā”€ faLongArrowAltLeft.js
│   │       ā”œā”€ā”€ faLongArrowAltRight.d.ts
│   │       ā”œā”€ā”€ faLongArrowAltRight.js
│   │       ā”œā”€ā”€ faLongArrowAltUp.d.ts
│   │       ā”œā”€ā”€ faLongArrowAltUp.js
│   │       ā”œā”€ā”€ faLongArrowDown.d.ts
│   │       ā”œā”€ā”€ faLongArrowDown.js
│   │       ā”œā”€ā”€ faLongArrowLeft.d.ts
│   │       ā”œā”€ā”€ faLongArrowLeft.js
│   │       ā”œā”€ā”€ faLongArrowRight.d.ts
│   │       ā”œā”€ā”€ faLongArrowRight.js
│   │       ā”œā”€ā”€ faLongArrowUp.d.ts
│   │       ā”œā”€ā”€ faLongArrowUp.js
│   │       ā”œā”€ā”€ faLowVision.d.ts
│   │       ā”œā”€ā”€ faLowVision.js
│   │       ā”œā”€ā”€ faLuggageCart.d.ts
│   │       ā”œā”€ā”€ faLuggageCart.js
│   │       ā”œā”€ā”€ faLungs.d.ts
│   │       ā”œā”€ā”€ faLungs.js
│   │       ā”œā”€ā”€ faLungsVirus.d.ts
│   │       ā”œā”€ā”€ faLungsVirus.js
│   │       ā”œā”€ā”€ faM.d.ts
│   │       ā”œā”€ā”€ faM.js
│   │       ā”œā”€ā”€ faMagic.d.ts
│   │       ā”œā”€ā”€ faMagic.js
│   │       ā”œā”€ā”€ faMagicWandSparkles.d.ts
│   │       ā”œā”€ā”€ faMagicWandSparkles.js
│   │       ā”œā”€ā”€ faMagnet.d.ts
│   │       ā”œā”€ā”€ faMagnet.js
│   │       ā”œā”€ā”€ faMagnifyingGlass.d.ts
│   │       ā”œā”€ā”€ faMagnifyingGlass.js
│   │       ā”œā”€ā”€ faMagnifyingGlassArrowRight.d.ts
│   │       ā”œā”€ā”€ faMagnifyingGlassArrowRight.js
│   │       ā”œā”€ā”€ faMagnifyingGlassChart.d.ts
│   │       ā”œā”€ā”€ faMagnifyingGlassChart.js
│   │       ā”œā”€ā”€ faMagnifyingGlassDollar.d.ts
│   │       ā”œā”€ā”€ faMagnifyingGlassDollar.js
│   │       ā”œā”€ā”€ faMagnifyingGlassLocation.d.ts
│   │       ā”œā”€ā”€ faMagnifyingGlassLocation.js
│   │       ā”œā”€ā”€ faMagnifyingGlassMinus.d.ts
│   │       ā”œā”€ā”€ faMagnifyingGlassMinus.js
│   │       ā”œā”€ā”€ faMagnifyingGlassPlus.d.ts
│   │       ā”œā”€ā”€ faMagnifyingGlassPlus.js
│   │       ā”œā”€ā”€ faMailBulk.d.ts
│   │       ā”œā”€ā”€ faMailBulk.js
│   │       ā”œā”€ā”€ faMailForward.d.ts
│   │       ā”œā”€ā”€ faMailForward.js
│   │       ā”œā”€ā”€ faMailReply.d.ts
│   │       ā”œā”€ā”€ faMailReply.js
│   │       ā”œā”€ā”€ faMailReplyAll.d.ts
│   │       ā”œā”€ā”€ faMailReplyAll.js
│   │       ā”œā”€ā”€ faMale.d.ts
│   │       ā”œā”€ā”€ faMale.js
│   │       ā”œā”€ā”€ faManatSign.d.ts
│   │       ā”œā”€ā”€ faManatSign.js
│   │       ā”œā”€ā”€ faMap.d.ts
│   │       ā”œā”€ā”€ faMap.js
│   │       ā”œā”€ā”€ faMapLocation.d.ts
│   │       ā”œā”€ā”€ faMapLocation.js
│   │       ā”œā”€ā”€ faMapLocationDot.d.ts
│   │       ā”œā”€ā”€ faMapLocationDot.js
│   │       ā”œā”€ā”€ faMapMarked.d.ts
│   │       ā”œā”€ā”€ faMapMarked.js
│   │       ā”œā”€ā”€ faMapMarkedAlt.d.ts
│   │       ā”œā”€ā”€ faMapMarkedAlt.js
│   │       ā”œā”€ā”€ faMapMarker.d.ts
│   │       ā”œā”€ā”€ faMapMarker.js
│   │       ā”œā”€ā”€ faMapMarkerAlt.d.ts
│   │       ā”œā”€ā”€ faMapMarkerAlt.js
│   │       ā”œā”€ā”€ faMapPin.d.ts
│   │       ā”œā”€ā”€ faMapPin.js
│   │       ā”œā”€ā”€ faMapSigns.d.ts
│   │       ā”œā”€ā”€ faMapSigns.js
│   │       ā”œā”€ā”€ faMarker.d.ts
│   │       ā”œā”€ā”€ faMarker.js
│   │       ā”œā”€ā”€ faMars.d.ts
│   │       ā”œā”€ā”€ faMars.js
│   │       ā”œā”€ā”€ faMarsAndVenus.d.ts
│   │       ā”œā”€ā”€ faMarsAndVenus.js
│   │       ā”œā”€ā”€ faMarsAndVenusBurst.d.ts
│   │       ā”œā”€ā”€ faMarsAndVenusBurst.js
│   │       ā”œā”€ā”€ faMarsDouble.d.ts
│   │       ā”œā”€ā”€ faMarsDouble.js
│   │       ā”œā”€ā”€ faMarsStroke.d.ts
│   │       ā”œā”€ā”€ faMarsStroke.js
│   │       ā”œā”€ā”€ faMarsStrokeH.d.ts
│   │       ā”œā”€ā”€ faMarsStrokeH.js
│   │       ā”œā”€ā”€ faMarsStrokeRight.d.ts
│   │       ā”œā”€ā”€ faMarsStrokeRight.js
│   │       ā”œā”€ā”€ faMarsStrokeUp.d.ts
│   │       ā”œā”€ā”€ faMarsStrokeUp.js
│   │       ā”œā”€ā”€ faMarsStrokeV.d.ts
│   │       ā”œā”€ā”€ faMarsStrokeV.js
│   │       ā”œā”€ā”€ faMartiniGlass.d.ts
│   │       ā”œā”€ā”€ faMartiniGlass.js
│   │       ā”œā”€ā”€ faMartiniGlassCitrus.d.ts
│   │       ā”œā”€ā”€ faMartiniGlassCitrus.js
│   │       ā”œā”€ā”€ faMartiniGlassEmpty.d.ts
│   │       ā”œā”€ā”€ faMartiniGlassEmpty.js
│   │       ā”œā”€ā”€ faMask.d.ts
│   │       ā”œā”€ā”€ faMask.js
│   │       ā”œā”€ā”€ faMaskFace.d.ts
│   │       ā”œā”€ā”€ faMaskFace.js
│   │       ā”œā”€ā”€ faMaskVentilator.d.ts
│   │       ā”œā”€ā”€ faMaskVentilator.js
│   │       ā”œā”€ā”€ faMasksTheater.d.ts
│   │       ā”œā”€ā”€ faMasksTheater.js
│   │       ā”œā”€ā”€ faMattressPillow.d.ts
│   │       ā”œā”€ā”€ faMattressPillow.js
│   │       ā”œā”€ā”€ faMaximize.d.ts
│   │       ā”œā”€ā”€ faMaximize.js
│   │       ā”œā”€ā”€ faMedal.d.ts
│   │       ā”œā”€ā”€ faMedal.js
│   │       ā”œā”€ā”€ faMedkit.d.ts
│   │       ā”œā”€ā”€ faMedkit.js
│   │       ā”œā”€ā”€ faMeh.d.ts
│   │       ā”œā”€ā”€ faMeh.js
│   │       ā”œā”€ā”€ faMehBlank.d.ts
│   │       ā”œā”€ā”€ faMehBlank.js
│   │       ā”œā”€ā”€ faMehRollingEyes.d.ts
│   │       ā”œā”€ā”€ faMehRollingEyes.js
│   │       ā”œā”€ā”€ faMemory.d.ts
│   │       ā”œā”€ā”€ faMemory.js
│   │       ā”œā”€ā”€ faMenorah.d.ts
│   │       ā”œā”€ā”€ faMenorah.js
│   │       ā”œā”€ā”€ faMercury.d.ts
│   │       ā”œā”€ā”€ faMercury.js
│   │       ā”œā”€ā”€ faMessage.d.ts
│   │       ā”œā”€ā”€ faMessage.js
│   │       ā”œā”€ā”€ faMeteor.d.ts
│   │       ā”œā”€ā”€ faMeteor.js
│   │       ā”œā”€ā”€ faMicrochip.d.ts
│   │       ā”œā”€ā”€ faMicrochip.js
│   │       ā”œā”€ā”€ faMicrophone.d.ts
│   │       ā”œā”€ā”€ faMicrophone.js
│   │       ā”œā”€ā”€ faMicrophoneAlt.d.ts
│   │       ā”œā”€ā”€ faMicrophoneAlt.js
│   │       ā”œā”€ā”€ faMicrophoneAltSlash.d.ts
│   │       ā”œā”€ā”€ faMicrophoneAltSlash.js
│   │       ā”œā”€ā”€ faMicrophoneLines.d.ts
│   │       ā”œā”€ā”€ faMicrophoneLines.js
│   │       ā”œā”€ā”€ faMicrophoneLinesSlash.d.ts
│   │       ā”œā”€ā”€ faMicrophoneLinesSlash.js
│   │       ā”œā”€ā”€ faMicrophoneSlash.d.ts
│   │       ā”œā”€ā”€ faMicrophoneSlash.js
│   │       ā”œā”€ā”€ faMicroscope.d.ts
│   │       ā”œā”€ā”€ faMicroscope.js
│   │       ā”œā”€ā”€ faMillSign.d.ts
│   │       ā”œā”€ā”€ faMillSign.js
│   │       ā”œā”€ā”€ faMinimize.d.ts
│   │       ā”œā”€ā”€ faMinimize.js
│   │       ā”œā”€ā”€ faMinus.d.ts
│   │       ā”œā”€ā”€ faMinus.js
│   │       ā”œā”€ā”€ faMinusCircle.d.ts
│   │       ā”œā”€ā”€ faMinusCircle.js
│   │       ā”œā”€ā”€ faMinusSquare.d.ts
│   │       ā”œā”€ā”€ faMinusSquare.js
│   │       ā”œā”€ā”€ faMitten.d.ts
│   │       ā”œā”€ā”€ faMitten.js
│   │       ā”œā”€ā”€ faMobile.d.ts
│   │       ā”œā”€ā”€ faMobile.js
│   │       ā”œā”€ā”€ faMobileAlt.d.ts
│   │       ā”œā”€ā”€ faMobileAlt.js
│   │       ā”œā”€ā”€ faMobileAndroid.d.ts
│   │       ā”œā”€ā”€ faMobileAndroid.js
│   │       ā”œā”€ā”€ faMobileAndroidAlt.d.ts
│   │       ā”œā”€ā”€ faMobileAndroidAlt.js
│   │       ā”œā”€ā”€ faMobileButton.d.ts
│   │       ā”œā”€ā”€ faMobileButton.js
│   │       ā”œā”€ā”€ faMobilePhone.d.ts
│   │       ā”œā”€ā”€ faMobilePhone.js
│   │       ā”œā”€ā”€ faMobileRetro.d.ts
│   │       ā”œā”€ā”€ faMobileRetro.js
│   │       ā”œā”€ā”€ faMobileScreen.d.ts
│   │       ā”œā”€ā”€ faMobileScreen.js
│   │       ā”œā”€ā”€ faMobileScreenButton.d.ts
│   │       ā”œā”€ā”€ faMobileScreenButton.js
│   │       ā”œā”€ā”€ faMoneyBill.d.ts
│   │       ā”œā”€ā”€ faMoneyBill.js
│   │       ā”œā”€ā”€ faMoneyBill1.d.ts
│   │       ā”œā”€ā”€ faMoneyBill1.js
│   │       ā”œā”€ā”€ faMoneyBill1Wave.d.ts
│   │       ā”œā”€ā”€ faMoneyBill1Wave.js
│   │       ā”œā”€ā”€ faMoneyBillAlt.d.ts
│   │       ā”œā”€ā”€ faMoneyBillAlt.js
│   │       ā”œā”€ā”€ faMoneyBillTransfer.d.ts
│   │       ā”œā”€ā”€ faMoneyBillTransfer.js
│   │       ā”œā”€ā”€ faMoneyBillTrendUp.d.ts
│   │       ā”œā”€ā”€ faMoneyBillTrendUp.js
│   │       ā”œā”€ā”€ faMoneyBillWave.d.ts
│   │       ā”œā”€ā”€ faMoneyBillWave.js
│   │       ā”œā”€ā”€ faMoneyBillWaveAlt.d.ts
│   │       ā”œā”€ā”€ faMoneyBillWaveAlt.js
│   │       ā”œā”€ā”€ faMoneyBillWheat.d.ts
│   │       ā”œā”€ā”€ faMoneyBillWheat.js
│   │       ā”œā”€ā”€ faMoneyBills.d.ts
│   │       ā”œā”€ā”€ faMoneyBills.js
│   │       ā”œā”€ā”€ faMoneyCheck.d.ts
│   │       ā”œā”€ā”€ faMoneyCheck.js
│   │       ā”œā”€ā”€ faMoneyCheckAlt.d.ts
│   │       ā”œā”€ā”€ faMoneyCheckAlt.js
│   │       ā”œā”€ā”€ faMoneyCheckDollar.d.ts
│   │       ā”œā”€ā”€ faMoneyCheckDollar.js
│   │       ā”œā”€ā”€ faMonument.d.ts
│   │       ā”œā”€ā”€ faMonument.js
│   │       ā”œā”€ā”€ faMoon.d.ts
│   │       ā”œā”€ā”€ faMoon.js
│   │       ā”œā”€ā”€ faMortarBoard.d.ts
│   │       ā”œā”€ā”€ faMortarBoard.js
│   │       ā”œā”€ā”€ faMortarPestle.d.ts
│   │       ā”œā”€ā”€ faMortarPestle.js
│   │       ā”œā”€ā”€ faMosque.d.ts
│   │       ā”œā”€ā”€ faMosque.js
│   │       ā”œā”€ā”€ faMosquito.d.ts
│   │       ā”œā”€ā”€ faMosquito.js
│   │       ā”œā”€ā”€ faMosquitoNet.d.ts
│   │       ā”œā”€ā”€ faMosquitoNet.js
│   │       ā”œā”€ā”€ faMotorcycle.d.ts
│   │       ā”œā”€ā”€ faMotorcycle.js
│   │       ā”œā”€ā”€ faMound.d.ts
│   │       ā”œā”€ā”€ faMound.js
│   │       ā”œā”€ā”€ faMountain.d.ts
│   │       ā”œā”€ā”€ faMountain.js
│   │       ā”œā”€ā”€ faMountainCity.d.ts
│   │       ā”œā”€ā”€ faMountainCity.js
│   │       ā”œā”€ā”€ faMountainSun.d.ts
│   │       ā”œā”€ā”€ faMountainSun.js
│   │       ā”œā”€ā”€ faMouse.d.ts
│   │       ā”œā”€ā”€ faMouse.js
│   │       ā”œā”€ā”€ faMousePointer.d.ts
│   │       ā”œā”€ā”€ faMousePointer.js
│   │       ā”œā”€ā”€ faMugHot.d.ts
│   │       ā”œā”€ā”€ faMugHot.js
│   │       ā”œā”€ā”€ faMugSaucer.d.ts
│   │       ā”œā”€ā”€ faMugSaucer.js
│   │       ā”œā”€ā”€ faMultiply.d.ts
│   │       ā”œā”€ā”€ faMultiply.js
│   │       ā”œā”€ā”€ faMuseum.d.ts
│   │       ā”œā”€ā”€ faMuseum.js
│   │       ā”œā”€ā”€ faMusic.d.ts
│   │       ā”œā”€ā”€ faMusic.js
│   │       ā”œā”€ā”€ faN.d.ts
│   │       ā”œā”€ā”€ faN.js
│   │       ā”œā”€ā”€ faNairaSign.d.ts
│   │       ā”œā”€ā”€ faNairaSign.js
│   │       ā”œā”€ā”€ faNavicon.d.ts
│   │       ā”œā”€ā”€ faNavicon.js
│   │       ā”œā”€ā”€ faNetworkWired.d.ts
│   │       ā”œā”€ā”€ faNetworkWired.js
│   │       ā”œā”€ā”€ faNeuter.d.ts
│   │       ā”œā”€ā”€ faNeuter.js
│   │       ā”œā”€ā”€ faNewspaper.d.ts
│   │       ā”œā”€ā”€ faNewspaper.js
│   │       ā”œā”€ā”€ faNotEqual.d.ts
│   │       ā”œā”€ā”€ faNotEqual.js
│   │       ā”œā”€ā”€ faNotdef.d.ts
│   │       ā”œā”€ā”€ faNotdef.js
│   │       ā”œā”€ā”€ faNoteSticky.d.ts
│   │       ā”œā”€ā”€ faNoteSticky.js
│   │       ā”œā”€ā”€ faNotesMedical.d.ts
│   │       ā”œā”€ā”€ faNotesMedical.js
│   │       ā”œā”€ā”€ faO.d.ts
│   │       ā”œā”€ā”€ faO.js
│   │       ā”œā”€ā”€ faObjectGroup.d.ts
│   │       ā”œā”€ā”€ faObjectGroup.js
│   │       ā”œā”€ā”€ faObjectUngroup.d.ts
│   │       ā”œā”€ā”€ faObjectUngroup.js
│   │       ā”œā”€ā”€ faOilCan.d.ts
│   │       ā”œā”€ā”€ faOilCan.js
│   │       ā”œā”€ā”€ faOilWell.d.ts
│   │       ā”œā”€ā”€ faOilWell.js
│   │       ā”œā”€ā”€ faOm.d.ts
│   │       ā”œā”€ā”€ faOm.js
│   │       ā”œā”€ā”€ faOtter.d.ts
│   │       ā”œā”€ā”€ faOtter.js
│   │       ā”œā”€ā”€ faOutdent.d.ts
│   │       ā”œā”€ā”€ faOutdent.js
│   │       ā”œā”€ā”€ faP.d.ts
│   │       ā”œā”€ā”€ faP.js
│   │       ā”œā”€ā”€ faPager.d.ts
│   │       ā”œā”€ā”€ faPager.js
│   │       ā”œā”€ā”€ faPaintRoller.d.ts
│   │       ā”œā”€ā”€ faPaintRoller.js
│   │       ā”œā”€ā”€ faPaintbrush.d.ts
│   │       ā”œā”€ā”€ faPaintbrush.js
│   │       ā”œā”€ā”€ faPalette.d.ts
│   │       ā”œā”€ā”€ faPalette.js
│   │       ā”œā”€ā”€ faPallet.d.ts
│   │       ā”œā”€ā”€ faPallet.js
│   │       ā”œā”€ā”€ faPanorama.d.ts
│   │       ā”œā”€ā”€ faPanorama.js
│   │       ā”œā”€ā”€ faPaperPlane.d.ts
│   │       ā”œā”€ā”€ faPaperPlane.js
│   │       ā”œā”€ā”€ faPaperclip.d.ts
│   │       ā”œā”€ā”€ faPaperclip.js
│   │       ā”œā”€ā”€ faParachuteBox.d.ts
│   │       ā”œā”€ā”€ faParachuteBox.js
│   │       ā”œā”€ā”€ faParagraph.d.ts
│   │       ā”œā”€ā”€ faParagraph.js
│   │       ā”œā”€ā”€ faParking.d.ts
│   │       ā”œā”€ā”€ faParking.js
│   │       ā”œā”€ā”€ faPassport.d.ts
│   │       ā”œā”€ā”€ faPassport.js
│   │       ā”œā”€ā”€ faPastafarianism.d.ts
│   │       ā”œā”€ā”€ faPastafarianism.js
│   │       ā”œā”€ā”€ faPaste.d.ts
│   │       ā”œā”€ā”€ faPaste.js
│   │       ā”œā”€ā”€ faPause.d.ts
│   │       ā”œā”€ā”€ faPause.js
│   │       ā”œā”€ā”€ faPauseCircle.d.ts
│   │       ā”œā”€ā”€ faPauseCircle.js
│   │       ā”œā”€ā”€ faPaw.d.ts
│   │       ā”œā”€ā”€ faPaw.js
│   │       ā”œā”€ā”€ faPeace.d.ts
│   │       ā”œā”€ā”€ faPeace.js
│   │       ā”œā”€ā”€ faPen.d.ts
│   │       ā”œā”€ā”€ faPen.js
│   │       ā”œā”€ā”€ faPenAlt.d.ts
│   │       ā”œā”€ā”€ faPenAlt.js
│   │       ā”œā”€ā”€ faPenClip.d.ts
│   │       ā”œā”€ā”€ faPenClip.js
│   │       ā”œā”€ā”€ faPenFancy.d.ts
│   │       ā”œā”€ā”€ faPenFancy.js
│   │       ā”œā”€ā”€ faPenNib.d.ts
│   │       ā”œā”€ā”€ faPenNib.js
│   │       ā”œā”€ā”€ faPenRuler.d.ts
│   │       ā”œā”€ā”€ faPenRuler.js
│   │       ā”œā”€ā”€ faPenSquare.d.ts
│   │       ā”œā”€ā”€ faPenSquare.js
│   │       ā”œā”€ā”€ faPenToSquare.d.ts
│   │       ā”œā”€ā”€ faPenToSquare.js
│   │       ā”œā”€ā”€ faPencil.d.ts
│   │       ā”œā”€ā”€ faPencil.js
│   │       ā”œā”€ā”€ faPencilAlt.d.ts
│   │       ā”œā”€ā”€ faPencilAlt.js
│   │       ā”œā”€ā”€ faPencilRuler.d.ts
│   │       ā”œā”€ā”€ faPencilRuler.js
│   │       ā”œā”€ā”€ faPencilSquare.d.ts
│   │       ā”œā”€ā”€ faPencilSquare.js
│   │       ā”œā”€ā”€ faPeopleArrows.d.ts
│   │       ā”œā”€ā”€ faPeopleArrows.js
│   │       ā”œā”€ā”€ faPeopleArrowsLeftRight.d.ts
│   │       ā”œā”€ā”€ faPeopleArrowsLeftRight.js
│   │       ā”œā”€ā”€ faPeopleCarry.d.ts
│   │       ā”œā”€ā”€ faPeopleCarry.js
│   │       ā”œā”€ā”€ faPeopleCarryBox.d.ts
│   │       ā”œā”€ā”€ faPeopleCarryBox.js
│   │       ā”œā”€ā”€ faPeopleGroup.d.ts
│   │       ā”œā”€ā”€ faPeopleGroup.js
│   │       ā”œā”€ā”€ faPeopleLine.d.ts
│   │       ā”œā”€ā”€ faPeopleLine.js
│   │       ā”œā”€ā”€ faPeoplePulling.d.ts
│   │       ā”œā”€ā”€ faPeoplePulling.js
│   │       ā”œā”€ā”€ faPeopleRobbery.d.ts
│   │       ā”œā”€ā”€ faPeopleRobbery.js
│   │       ā”œā”€ā”€ faPeopleRoof.d.ts
│   │       ā”œā”€ā”€ faPeopleRoof.js
│   │       ā”œā”€ā”€ faPepperHot.d.ts
│   │       ā”œā”€ā”€ faPepperHot.js
│   │       ā”œā”€ā”€ faPercent.d.ts
│   │       ā”œā”€ā”€ faPercent.js
│   │       ā”œā”€ā”€ faPercentage.d.ts
│   │       ā”œā”€ā”€ faPercentage.js
│   │       ā”œā”€ā”€ faPerson.d.ts
│   │       ā”œā”€ā”€ faPerson.js
│   │       ā”œā”€ā”€ faPersonArrowDownToLine.d.ts
│   │       ā”œā”€ā”€ faPersonArrowDownToLine.js
│   │       ā”œā”€ā”€ faPersonArrowUpFromLine.d.ts
│   │       ā”œā”€ā”€ faPersonArrowUpFromLine.js
│   │       ā”œā”€ā”€ faPersonBiking.d.ts
│   │       ā”œā”€ā”€ faPersonBiking.js
│   │       ā”œā”€ā”€ faPersonBooth.d.ts
│   │       ā”œā”€ā”€ faPersonBooth.js
│   │       ā”œā”€ā”€ faPersonBreastfeeding.d.ts
│   │       ā”œā”€ā”€ faPersonBreastfeeding.js
│   │       ā”œā”€ā”€ faPersonBurst.d.ts
│   │       ā”œā”€ā”€ faPersonBurst.js
│   │       ā”œā”€ā”€ faPersonCane.d.ts
│   │       ā”œā”€ā”€ faPersonCane.js
│   │       ā”œā”€ā”€ faPersonChalkboard.d.ts
│   │       ā”œā”€ā”€ faPersonChalkboard.js
│   │       ā”œā”€ā”€ faPersonCircleCheck.d.ts
│   │       ā”œā”€ā”€ faPersonCircleCheck.js
│   │       ā”œā”€ā”€ faPersonCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faPersonCircleExclamation.js
│   │       ā”œā”€ā”€ faPersonCircleMinus.d.ts
│   │       ā”œā”€ā”€ faPersonCircleMinus.js
│   │       ā”œā”€ā”€ faPersonCirclePlus.d.ts
│   │       ā”œā”€ā”€ faPersonCirclePlus.js
│   │       ā”œā”€ā”€ faPersonCircleQuestion.d.ts
│   │       ā”œā”€ā”€ faPersonCircleQuestion.js
│   │       ā”œā”€ā”€ faPersonCircleXmark.d.ts
│   │       ā”œā”€ā”€ faPersonCircleXmark.js
│   │       ā”œā”€ā”€ faPersonDigging.d.ts
│   │       ā”œā”€ā”€ faPersonDigging.js
│   │       ā”œā”€ā”€ faPersonDotsFromLine.d.ts
│   │       ā”œā”€ā”€ faPersonDotsFromLine.js
│   │       ā”œā”€ā”€ faPersonDress.d.ts
│   │       ā”œā”€ā”€ faPersonDress.js
│   │       ā”œā”€ā”€ faPersonDressBurst.d.ts
│   │       ā”œā”€ā”€ faPersonDressBurst.js
│   │       ā”œā”€ā”€ faPersonDrowning.d.ts
│   │       ā”œā”€ā”€ faPersonDrowning.js
│   │       ā”œā”€ā”€ faPersonFalling.d.ts
│   │       ā”œā”€ā”€ faPersonFalling.js
│   │       ā”œā”€ā”€ faPersonFallingBurst.d.ts
│   │       ā”œā”€ā”€ faPersonFallingBurst.js
│   │       ā”œā”€ā”€ faPersonHalfDress.d.ts
│   │       ā”œā”€ā”€ faPersonHalfDress.js
│   │       ā”œā”€ā”€ faPersonHarassing.d.ts
│   │       ā”œā”€ā”€ faPersonHarassing.js
│   │       ā”œā”€ā”€ faPersonHiking.d.ts
│   │       ā”œā”€ā”€ faPersonHiking.js
│   │       ā”œā”€ā”€ faPersonMilitaryPointing.d.ts
│   │       ā”œā”€ā”€ faPersonMilitaryPointing.js
│   │       ā”œā”€ā”€ faPersonMilitaryRifle.d.ts
│   │       ā”œā”€ā”€ faPersonMilitaryRifle.js
│   │       ā”œā”€ā”€ faPersonMilitaryToPerson.d.ts
│   │       ā”œā”€ā”€ faPersonMilitaryToPerson.js
│   │       ā”œā”€ā”€ faPersonPraying.d.ts
│   │       ā”œā”€ā”€ faPersonPraying.js
│   │       ā”œā”€ā”€ faPersonPregnant.d.ts
│   │       ā”œā”€ā”€ faPersonPregnant.js
│   │       ā”œā”€ā”€ faPersonRays.d.ts
│   │       ā”œā”€ā”€ faPersonRays.js
│   │       ā”œā”€ā”€ faPersonRifle.d.ts
│   │       ā”œā”€ā”€ faPersonRifle.js
│   │       ā”œā”€ā”€ faPersonRunning.d.ts
│   │       ā”œā”€ā”€ faPersonRunning.js
│   │       ā”œā”€ā”€ faPersonShelter.d.ts
│   │       ā”œā”€ā”€ faPersonShelter.js
│   │       ā”œā”€ā”€ faPersonSkating.d.ts
│   │       ā”œā”€ā”€ faPersonSkating.js
│   │       ā”œā”€ā”€ faPersonSkiing.d.ts
│   │       ā”œā”€ā”€ faPersonSkiing.js
│   │       ā”œā”€ā”€ faPersonSkiingNordic.d.ts
│   │       ā”œā”€ā”€ faPersonSkiingNordic.js
│   │       ā”œā”€ā”€ faPersonSnowboarding.d.ts
│   │       ā”œā”€ā”€ faPersonSnowboarding.js
│   │       ā”œā”€ā”€ faPersonSwimming.d.ts
│   │       ā”œā”€ā”€ faPersonSwimming.js
│   │       ā”œā”€ā”€ faPersonThroughWindow.d.ts
│   │       ā”œā”€ā”€ faPersonThroughWindow.js
│   │       ā”œā”€ā”€ faPersonWalking.d.ts
│   │       ā”œā”€ā”€ faPersonWalking.js
│   │       ā”œā”€ā”€ faPersonWalkingArrowLoopLeft.d.ts
│   │       ā”œā”€ā”€ faPersonWalkingArrowLoopLeft.js
│   │       ā”œā”€ā”€ faPersonWalkingArrowRight.d.ts
│   │       ā”œā”€ā”€ faPersonWalkingArrowRight.js
│   │       ā”œā”€ā”€ faPersonWalkingDashedLineArrowRight.d.ts
│   │       ā”œā”€ā”€ faPersonWalkingDashedLineArrowRight.js
│   │       ā”œā”€ā”€ faPersonWalkingLuggage.d.ts
│   │       ā”œā”€ā”€ faPersonWalkingLuggage.js
│   │       ā”œā”€ā”€ faPersonWalkingWithCane.d.ts
│   │       ā”œā”€ā”€ faPersonWalkingWithCane.js
│   │       ā”œā”€ā”€ faPesetaSign.d.ts
│   │       ā”œā”€ā”€ faPesetaSign.js
│   │       ā”œā”€ā”€ faPesoSign.d.ts
│   │       ā”œā”€ā”€ faPesoSign.js
│   │       ā”œā”€ā”€ faPhone.d.ts
│   │       ā”œā”€ā”€ faPhone.js
│   │       ā”œā”€ā”€ faPhoneAlt.d.ts
│   │       ā”œā”€ā”€ faPhoneAlt.js
│   │       ā”œā”€ā”€ faPhoneFlip.d.ts
│   │       ā”œā”€ā”€ faPhoneFlip.js
│   │       ā”œā”€ā”€ faPhoneSlash.d.ts
│   │       ā”œā”€ā”€ faPhoneSlash.js
│   │       ā”œā”€ā”€ faPhoneSquare.d.ts
│   │       ā”œā”€ā”€ faPhoneSquare.js
│   │       ā”œā”€ā”€ faPhoneSquareAlt.d.ts
│   │       ā”œā”€ā”€ faPhoneSquareAlt.js
│   │       ā”œā”€ā”€ faPhoneVolume.d.ts
│   │       ā”œā”€ā”€ faPhoneVolume.js
│   │       ā”œā”€ā”€ faPhotoFilm.d.ts
│   │       ā”œā”€ā”€ faPhotoFilm.js
│   │       ā”œā”€ā”€ faPhotoVideo.d.ts
│   │       ā”œā”€ā”€ faPhotoVideo.js
│   │       ā”œā”€ā”€ faPieChart.d.ts
│   │       ā”œā”€ā”€ faPieChart.js
│   │       ā”œā”€ā”€ faPiggyBank.d.ts
│   │       ā”œā”€ā”€ faPiggyBank.js
│   │       ā”œā”€ā”€ faPills.d.ts
│   │       ā”œā”€ā”€ faPills.js
│   │       ā”œā”€ā”€ faPingPongPaddleBall.d.ts
│   │       ā”œā”€ā”€ faPingPongPaddleBall.js
│   │       ā”œā”€ā”€ faPizzaSlice.d.ts
│   │       ā”œā”€ā”€ faPizzaSlice.js
│   │       ā”œā”€ā”€ faPlaceOfWorship.d.ts
│   │       ā”œā”€ā”€ faPlaceOfWorship.js
│   │       ā”œā”€ā”€ faPlane.d.ts
│   │       ā”œā”€ā”€ faPlane.js
│   │       ā”œā”€ā”€ faPlaneArrival.d.ts
│   │       ā”œā”€ā”€ faPlaneArrival.js
│   │       ā”œā”€ā”€ faPlaneCircleCheck.d.ts
│   │       ā”œā”€ā”€ faPlaneCircleCheck.js
│   │       ā”œā”€ā”€ faPlaneCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faPlaneCircleExclamation.js
│   │       ā”œā”€ā”€ faPlaneCircleXmark.d.ts
│   │       ā”œā”€ā”€ faPlaneCircleXmark.js
│   │       ā”œā”€ā”€ faPlaneDeparture.d.ts
│   │       ā”œā”€ā”€ faPlaneDeparture.js
│   │       ā”œā”€ā”€ faPlaneLock.d.ts
│   │       ā”œā”€ā”€ faPlaneLock.js
│   │       ā”œā”€ā”€ faPlaneSlash.d.ts
│   │       ā”œā”€ā”€ faPlaneSlash.js
│   │       ā”œā”€ā”€ faPlaneUp.d.ts
│   │       ā”œā”€ā”€ faPlaneUp.js
│   │       ā”œā”€ā”€ faPlantWilt.d.ts
│   │       ā”œā”€ā”€ faPlantWilt.js
│   │       ā”œā”€ā”€ faPlateWheat.d.ts
│   │       ā”œā”€ā”€ faPlateWheat.js
│   │       ā”œā”€ā”€ faPlay.d.ts
│   │       ā”œā”€ā”€ faPlay.js
│   │       ā”œā”€ā”€ faPlayCircle.d.ts
│   │       ā”œā”€ā”€ faPlayCircle.js
│   │       ā”œā”€ā”€ faPlug.d.ts
│   │       ā”œā”€ā”€ faPlug.js
│   │       ā”œā”€ā”€ faPlugCircleBolt.d.ts
│   │       ā”œā”€ā”€ faPlugCircleBolt.js
│   │       ā”œā”€ā”€ faPlugCircleCheck.d.ts
│   │       ā”œā”€ā”€ faPlugCircleCheck.js
│   │       ā”œā”€ā”€ faPlugCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faPlugCircleExclamation.js
│   │       ā”œā”€ā”€ faPlugCircleMinus.d.ts
│   │       ā”œā”€ā”€ faPlugCircleMinus.js
│   │       ā”œā”€ā”€ faPlugCirclePlus.d.ts
│   │       ā”œā”€ā”€ faPlugCirclePlus.js
│   │       ā”œā”€ā”€ faPlugCircleXmark.d.ts
│   │       ā”œā”€ā”€ faPlugCircleXmark.js
│   │       ā”œā”€ā”€ faPlus.d.ts
│   │       ā”œā”€ā”€ faPlus.js
│   │       ā”œā”€ā”€ faPlusCircle.d.ts
│   │       ā”œā”€ā”€ faPlusCircle.js
│   │       ā”œā”€ā”€ faPlusMinus.d.ts
│   │       ā”œā”€ā”€ faPlusMinus.js
│   │       ā”œā”€ā”€ faPlusSquare.d.ts
│   │       ā”œā”€ā”€ faPlusSquare.js
│   │       ā”œā”€ā”€ faPodcast.d.ts
│   │       ā”œā”€ā”€ faPodcast.js
│   │       ā”œā”€ā”€ faPoll.d.ts
│   │       ā”œā”€ā”€ faPoll.js
│   │       ā”œā”€ā”€ faPollH.d.ts
│   │       ā”œā”€ā”€ faPollH.js
│   │       ā”œā”€ā”€ faPoo.d.ts
│   │       ā”œā”€ā”€ faPoo.js
│   │       ā”œā”€ā”€ faPooBolt.d.ts
│   │       ā”œā”€ā”€ faPooBolt.js
│   │       ā”œā”€ā”€ faPooStorm.d.ts
│   │       ā”œā”€ā”€ faPooStorm.js
│   │       ā”œā”€ā”€ faPoop.d.ts
│   │       ā”œā”€ā”€ faPoop.js
│   │       ā”œā”€ā”€ faPortrait.d.ts
│   │       ā”œā”€ā”€ faPortrait.js
│   │       ā”œā”€ā”€ faPoundSign.d.ts
│   │       ā”œā”€ā”€ faPoundSign.js
│   │       ā”œā”€ā”€ faPowerOff.d.ts
│   │       ā”œā”€ā”€ faPowerOff.js
│   │       ā”œā”€ā”€ faPray.d.ts
│   │       ā”œā”€ā”€ faPray.js
│   │       ā”œā”€ā”€ faPrayingHands.d.ts
│   │       ā”œā”€ā”€ faPrayingHands.js
│   │       ā”œā”€ā”€ faPrescription.d.ts
│   │       ā”œā”€ā”€ faPrescription.js
│   │       ā”œā”€ā”€ faPrescriptionBottle.d.ts
│   │       ā”œā”€ā”€ faPrescriptionBottle.js
│   │       ā”œā”€ā”€ faPrescriptionBottleAlt.d.ts
│   │       ā”œā”€ā”€ faPrescriptionBottleAlt.js
│   │       ā”œā”€ā”€ faPrescriptionBottleMedical.d.ts
│   │       ā”œā”€ā”€ faPrescriptionBottleMedical.js
│   │       ā”œā”€ā”€ faPrint.d.ts
│   │       ā”œā”€ā”€ faPrint.js
│   │       ā”œā”€ā”€ faProcedures.d.ts
│   │       ā”œā”€ā”€ faProcedures.js
│   │       ā”œā”€ā”€ faProjectDiagram.d.ts
│   │       ā”œā”€ā”€ faProjectDiagram.js
│   │       ā”œā”€ā”€ faPumpMedical.d.ts
│   │       ā”œā”€ā”€ faPumpMedical.js
│   │       ā”œā”€ā”€ faPumpSoap.d.ts
│   │       ā”œā”€ā”€ faPumpSoap.js
│   │       ā”œā”€ā”€ faPuzzlePiece.d.ts
│   │       ā”œā”€ā”€ faPuzzlePiece.js
│   │       ā”œā”€ā”€ faQ.d.ts
│   │       ā”œā”€ā”€ faQ.js
│   │       ā”œā”€ā”€ faQrcode.d.ts
│   │       ā”œā”€ā”€ faQrcode.js
│   │       ā”œā”€ā”€ faQuestion.d.ts
│   │       ā”œā”€ā”€ faQuestion.js
│   │       ā”œā”€ā”€ faQuestionCircle.d.ts
│   │       ā”œā”€ā”€ faQuestionCircle.js
│   │       ā”œā”€ā”€ faQuidditch.d.ts
│   │       ā”œā”€ā”€ faQuidditch.js
│   │       ā”œā”€ā”€ faQuidditchBroomBall.d.ts
│   │       ā”œā”€ā”€ faQuidditchBroomBall.js
│   │       ā”œā”€ā”€ faQuoteLeft.d.ts
│   │       ā”œā”€ā”€ faQuoteLeft.js
│   │       ā”œā”€ā”€ faQuoteLeftAlt.d.ts
│   │       ā”œā”€ā”€ faQuoteLeftAlt.js
│   │       ā”œā”€ā”€ faQuoteRight.d.ts
│   │       ā”œā”€ā”€ faQuoteRight.js
│   │       ā”œā”€ā”€ faQuoteRightAlt.d.ts
│   │       ā”œā”€ā”€ faQuoteRightAlt.js
│   │       ā”œā”€ā”€ faQuran.d.ts
│   │       ā”œā”€ā”€ faQuran.js
│   │       ā”œā”€ā”€ faR.d.ts
│   │       ā”œā”€ā”€ faR.js
│   │       ā”œā”€ā”€ faRadiation.d.ts
│   │       ā”œā”€ā”€ faRadiation.js
│   │       ā”œā”€ā”€ faRadiationAlt.d.ts
│   │       ā”œā”€ā”€ faRadiationAlt.js
│   │       ā”œā”€ā”€ faRadio.d.ts
│   │       ā”œā”€ā”€ faRadio.js
│   │       ā”œā”€ā”€ faRainbow.d.ts
│   │       ā”œā”€ā”€ faRainbow.js
│   │       ā”œā”€ā”€ faRandom.d.ts
│   │       ā”œā”€ā”€ faRandom.js
│   │       ā”œā”€ā”€ faRankingStar.d.ts
│   │       ā”œā”€ā”€ faRankingStar.js
│   │       ā”œā”€ā”€ faReceipt.d.ts
│   │       ā”œā”€ā”€ faReceipt.js
│   │       ā”œā”€ā”€ faRecordVinyl.d.ts
│   │       ā”œā”€ā”€ faRecordVinyl.js
│   │       ā”œā”€ā”€ faRectangleAd.d.ts
│   │       ā”œā”€ā”€ faRectangleAd.js
│   │       ā”œā”€ā”€ faRectangleList.d.ts
│   │       ā”œā”€ā”€ faRectangleList.js
│   │       ā”œā”€ā”€ faRectangleTimes.d.ts
│   │       ā”œā”€ā”€ faRectangleTimes.js
│   │       ā”œā”€ā”€ faRectangleXmark.d.ts
│   │       ā”œā”€ā”€ faRectangleXmark.js
│   │       ā”œā”€ā”€ faRecycle.d.ts
│   │       ā”œā”€ā”€ faRecycle.js
│   │       ā”œā”€ā”€ faRedo.d.ts
│   │       ā”œā”€ā”€ faRedo.js
│   │       ā”œā”€ā”€ faRedoAlt.d.ts
│   │       ā”œā”€ā”€ faRedoAlt.js
│   │       ā”œā”€ā”€ faRefresh.d.ts
│   │       ā”œā”€ā”€ faRefresh.js
│   │       ā”œā”€ā”€ faRegistered.d.ts
│   │       ā”œā”€ā”€ faRegistered.js
│   │       ā”œā”€ā”€ faRemove.d.ts
│   │       ā”œā”€ā”€ faRemove.js
│   │       ā”œā”€ā”€ faRemoveFormat.d.ts
│   │       ā”œā”€ā”€ faRemoveFormat.js
│   │       ā”œā”€ā”€ faReorder.d.ts
│   │       ā”œā”€ā”€ faReorder.js
│   │       ā”œā”€ā”€ faRepeat.d.ts
│   │       ā”œā”€ā”€ faRepeat.js
│   │       ā”œā”€ā”€ faReply.d.ts
│   │       ā”œā”€ā”€ faReply.js
│   │       ā”œā”€ā”€ faReplyAll.d.ts
│   │       ā”œā”€ā”€ faReplyAll.js
│   │       ā”œā”€ā”€ faRepublican.d.ts
│   │       ā”œā”€ā”€ faRepublican.js
│   │       ā”œā”€ā”€ faRestroom.d.ts
│   │       ā”œā”€ā”€ faRestroom.js
│   │       ā”œā”€ā”€ faRetweet.d.ts
│   │       ā”œā”€ā”€ faRetweet.js
│   │       ā”œā”€ā”€ faRibbon.d.ts
│   │       ā”œā”€ā”€ faRibbon.js
│   │       ā”œā”€ā”€ faRightFromBracket.d.ts
│   │       ā”œā”€ā”€ faRightFromBracket.js
│   │       ā”œā”€ā”€ faRightLeft.d.ts
│   │       ā”œā”€ā”€ faRightLeft.js
│   │       ā”œā”€ā”€ faRightLong.d.ts
│   │       ā”œā”€ā”€ faRightLong.js
│   │       ā”œā”€ā”€ faRightToBracket.d.ts
│   │       ā”œā”€ā”€ faRightToBracket.js
│   │       ā”œā”€ā”€ faRing.d.ts
│   │       ā”œā”€ā”€ faRing.js
│   │       ā”œā”€ā”€ faRmb.d.ts
│   │       ā”œā”€ā”€ faRmb.js
│   │       ā”œā”€ā”€ faRoad.d.ts
│   │       ā”œā”€ā”€ faRoad.js
│   │       ā”œā”€ā”€ faRoadBarrier.d.ts
│   │       ā”œā”€ā”€ faRoadBarrier.js
│   │       ā”œā”€ā”€ faRoadBridge.d.ts
│   │       ā”œā”€ā”€ faRoadBridge.js
│   │       ā”œā”€ā”€ faRoadCircleCheck.d.ts
│   │       ā”œā”€ā”€ faRoadCircleCheck.js
│   │       ā”œā”€ā”€ faRoadCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faRoadCircleExclamation.js
│   │       ā”œā”€ā”€ faRoadCircleXmark.d.ts
│   │       ā”œā”€ā”€ faRoadCircleXmark.js
│   │       ā”œā”€ā”€ faRoadLock.d.ts
│   │       ā”œā”€ā”€ faRoadLock.js
│   │       ā”œā”€ā”€ faRoadSpikes.d.ts
│   │       ā”œā”€ā”€ faRoadSpikes.js
│   │       ā”œā”€ā”€ faRobot.d.ts
│   │       ā”œā”€ā”€ faRobot.js
│   │       ā”œā”€ā”€ faRocket.d.ts
│   │       ā”œā”€ā”€ faRocket.js
│   │       ā”œā”€ā”€ faRodAsclepius.d.ts
│   │       ā”œā”€ā”€ faRodAsclepius.js
│   │       ā”œā”€ā”€ faRodSnake.d.ts
│   │       ā”œā”€ā”€ faRodSnake.js
│   │       ā”œā”€ā”€ faRotate.d.ts
│   │       ā”œā”€ā”€ faRotate.js
│   │       ā”œā”€ā”€ faRotateBack.d.ts
│   │       ā”œā”€ā”€ faRotateBack.js
│   │       ā”œā”€ā”€ faRotateBackward.d.ts
│   │       ā”œā”€ā”€ faRotateBackward.js
│   │       ā”œā”€ā”€ faRotateForward.d.ts
│   │       ā”œā”€ā”€ faRotateForward.js
│   │       ā”œā”€ā”€ faRotateLeft.d.ts
│   │       ā”œā”€ā”€ faRotateLeft.js
│   │       ā”œā”€ā”€ faRotateRight.d.ts
│   │       ā”œā”€ā”€ faRotateRight.js
│   │       ā”œā”€ā”€ faRouble.d.ts
│   │       ā”œā”€ā”€ faRouble.js
│   │       ā”œā”€ā”€ faRoute.d.ts
│   │       ā”œā”€ā”€ faRoute.js
│   │       ā”œā”€ā”€ faRss.d.ts
│   │       ā”œā”€ā”€ faRss.js
│   │       ā”œā”€ā”€ faRssSquare.d.ts
│   │       ā”œā”€ā”€ faRssSquare.js
│   │       ā”œā”€ā”€ faRub.d.ts
│   │       ā”œā”€ā”€ faRub.js
│   │       ā”œā”€ā”€ faRuble.d.ts
│   │       ā”œā”€ā”€ faRuble.js
│   │       ā”œā”€ā”€ faRubleSign.d.ts
│   │       ā”œā”€ā”€ faRubleSign.js
│   │       ā”œā”€ā”€ faRug.d.ts
│   │       ā”œā”€ā”€ faRug.js
│   │       ā”œā”€ā”€ faRuler.d.ts
│   │       ā”œā”€ā”€ faRuler.js
│   │       ā”œā”€ā”€ faRulerCombined.d.ts
│   │       ā”œā”€ā”€ faRulerCombined.js
│   │       ā”œā”€ā”€ faRulerHorizontal.d.ts
│   │       ā”œā”€ā”€ faRulerHorizontal.js
│   │       ā”œā”€ā”€ faRulerVertical.d.ts
│   │       ā”œā”€ā”€ faRulerVertical.js
│   │       ā”œā”€ā”€ faRunning.d.ts
│   │       ā”œā”€ā”€ faRunning.js
│   │       ā”œā”€ā”€ faRupee.d.ts
│   │       ā”œā”€ā”€ faRupee.js
│   │       ā”œā”€ā”€ faRupeeSign.d.ts
│   │       ā”œā”€ā”€ faRupeeSign.js
│   │       ā”œā”€ā”€ faRupiahSign.d.ts
│   │       ā”œā”€ā”€ faRupiahSign.js
│   │       ā”œā”€ā”€ faS.d.ts
│   │       ā”œā”€ā”€ faS.js
│   │       ā”œā”€ā”€ faSackDollar.d.ts
│   │       ā”œā”€ā”€ faSackDollar.js
│   │       ā”œā”€ā”€ faSackXmark.d.ts
│   │       ā”œā”€ā”€ faSackXmark.js
│   │       ā”œā”€ā”€ faSadCry.d.ts
│   │       ā”œā”€ā”€ faSadCry.js
│   │       ā”œā”€ā”€ faSadTear.d.ts
│   │       ā”œā”€ā”€ faSadTear.js
│   │       ā”œā”€ā”€ faSailboat.d.ts
│   │       ā”œā”€ā”€ faSailboat.js
│   │       ā”œā”€ā”€ faSatellite.d.ts
│   │       ā”œā”€ā”€ faSatellite.js
│   │       ā”œā”€ā”€ faSatelliteDish.d.ts
│   │       ā”œā”€ā”€ faSatelliteDish.js
│   │       ā”œā”€ā”€ faSave.d.ts
│   │       ā”œā”€ā”€ faSave.js
│   │       ā”œā”€ā”€ faScaleBalanced.d.ts
│   │       ā”œā”€ā”€ faScaleBalanced.js
│   │       ā”œā”€ā”€ faScaleUnbalanced.d.ts
│   │       ā”œā”€ā”€ faScaleUnbalanced.js
│   │       ā”œā”€ā”€ faScaleUnbalancedFlip.d.ts
│   │       ā”œā”€ā”€ faScaleUnbalancedFlip.js
│   │       ā”œā”€ā”€ faSchool.d.ts
│   │       ā”œā”€ā”€ faSchool.js
│   │       ā”œā”€ā”€ faSchoolCircleCheck.d.ts
│   │       ā”œā”€ā”€ faSchoolCircleCheck.js
│   │       ā”œā”€ā”€ faSchoolCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faSchoolCircleExclamation.js
│   │       ā”œā”€ā”€ faSchoolCircleXmark.d.ts
│   │       ā”œā”€ā”€ faSchoolCircleXmark.js
│   │       ā”œā”€ā”€ faSchoolFlag.d.ts
│   │       ā”œā”€ā”€ faSchoolFlag.js
│   │       ā”œā”€ā”€ faSchoolLock.d.ts
│   │       ā”œā”€ā”€ faSchoolLock.js
│   │       ā”œā”€ā”€ faScissors.d.ts
│   │       ā”œā”€ā”€ faScissors.js
│   │       ā”œā”€ā”€ faScrewdriver.d.ts
│   │       ā”œā”€ā”€ faScrewdriver.js
│   │       ā”œā”€ā”€ faScrewdriverWrench.d.ts
│   │       ā”œā”€ā”€ faScrewdriverWrench.js
│   │       ā”œā”€ā”€ faScroll.d.ts
│   │       ā”œā”€ā”€ faScroll.js
│   │       ā”œā”€ā”€ faScrollTorah.d.ts
│   │       ā”œā”€ā”€ faScrollTorah.js
│   │       ā”œā”€ā”€ faSdCard.d.ts
│   │       ā”œā”€ā”€ faSdCard.js
│   │       ā”œā”€ā”€ faSearch.d.ts
│   │       ā”œā”€ā”€ faSearch.js
│   │       ā”œā”€ā”€ faSearchDollar.d.ts
│   │       ā”œā”€ā”€ faSearchDollar.js
│   │       ā”œā”€ā”€ faSearchLocation.d.ts
│   │       ā”œā”€ā”€ faSearchLocation.js
│   │       ā”œā”€ā”€ faSearchMinus.d.ts
│   │       ā”œā”€ā”€ faSearchMinus.js
│   │       ā”œā”€ā”€ faSearchPlus.d.ts
│   │       ā”œā”€ā”€ faSearchPlus.js
│   │       ā”œā”€ā”€ faSection.d.ts
│   │       ā”œā”€ā”€ faSection.js
│   │       ā”œā”€ā”€ faSeedling.d.ts
│   │       ā”œā”€ā”€ faSeedling.js
│   │       ā”œā”€ā”€ faServer.d.ts
│   │       ā”œā”€ā”€ faServer.js
│   │       ā”œā”€ā”€ faShapes.d.ts
│   │       ā”œā”€ā”€ faShapes.js
│   │       ā”œā”€ā”€ faShare.d.ts
│   │       ā”œā”€ā”€ faShare.js
│   │       ā”œā”€ā”€ faShareAlt.d.ts
│   │       ā”œā”€ā”€ faShareAlt.js
│   │       ā”œā”€ā”€ faShareAltSquare.d.ts
│   │       ā”œā”€ā”€ faShareAltSquare.js
│   │       ā”œā”€ā”€ faShareFromSquare.d.ts
│   │       ā”œā”€ā”€ faShareFromSquare.js
│   │       ā”œā”€ā”€ faShareNodes.d.ts
│   │       ā”œā”€ā”€ faShareNodes.js
│   │       ā”œā”€ā”€ faShareSquare.d.ts
│   │       ā”œā”€ā”€ faShareSquare.js
│   │       ā”œā”€ā”€ faSheetPlastic.d.ts
│   │       ā”œā”€ā”€ faSheetPlastic.js
│   │       ā”œā”€ā”€ faShekel.d.ts
│   │       ā”œā”€ā”€ faShekel.js
│   │       ā”œā”€ā”€ faShekelSign.d.ts
│   │       ā”œā”€ā”€ faShekelSign.js
│   │       ā”œā”€ā”€ faSheqel.d.ts
│   │       ā”œā”€ā”€ faSheqel.js
│   │       ā”œā”€ā”€ faSheqelSign.d.ts
│   │       ā”œā”€ā”€ faSheqelSign.js
│   │       ā”œā”€ā”€ faShield.d.ts
│   │       ā”œā”€ā”€ faShield.js
│   │       ā”œā”€ā”€ faShieldAlt.d.ts
│   │       ā”œā”€ā”€ faShieldAlt.js
│   │       ā”œā”€ā”€ faShieldBlank.d.ts
│   │       ā”œā”€ā”€ faShieldBlank.js
│   │       ā”œā”€ā”€ faShieldCat.d.ts
│   │       ā”œā”€ā”€ faShieldCat.js
│   │       ā”œā”€ā”€ faShieldDog.d.ts
│   │       ā”œā”€ā”€ faShieldDog.js
│   │       ā”œā”€ā”€ faShieldHalved.d.ts
│   │       ā”œā”€ā”€ faShieldHalved.js
│   │       ā”œā”€ā”€ faShieldHeart.d.ts
│   │       ā”œā”€ā”€ faShieldHeart.js
│   │       ā”œā”€ā”€ faShieldVirus.d.ts
│   │       ā”œā”€ā”€ faShieldVirus.js
│   │       ā”œā”€ā”€ faShip.d.ts
│   │       ā”œā”€ā”€ faShip.js
│   │       ā”œā”€ā”€ faShippingFast.d.ts
│   │       ā”œā”€ā”€ faShippingFast.js
│   │       ā”œā”€ā”€ faShirt.d.ts
│   │       ā”œā”€ā”€ faShirt.js
│   │       ā”œā”€ā”€ faShoePrints.d.ts
│   │       ā”œā”€ā”€ faShoePrints.js
│   │       ā”œā”€ā”€ faShop.d.ts
│   │       ā”œā”€ā”€ faShop.js
│   │       ā”œā”€ā”€ faShopLock.d.ts
│   │       ā”œā”€ā”€ faShopLock.js
│   │       ā”œā”€ā”€ faShopSlash.d.ts
│   │       ā”œā”€ā”€ faShopSlash.js
│   │       ā”œā”€ā”€ faShoppingBag.d.ts
│   │       ā”œā”€ā”€ faShoppingBag.js
│   │       ā”œā”€ā”€ faShoppingBasket.d.ts
│   │       ā”œā”€ā”€ faShoppingBasket.js
│   │       ā”œā”€ā”€ faShoppingCart.d.ts
│   │       ā”œā”€ā”€ faShoppingCart.js
│   │       ā”œā”€ā”€ faShower.d.ts
│   │       ā”œā”€ā”€ faShower.js
│   │       ā”œā”€ā”€ faShrimp.d.ts
│   │       ā”œā”€ā”€ faShrimp.js
│   │       ā”œā”€ā”€ faShuffle.d.ts
│   │       ā”œā”€ā”€ faShuffle.js
│   │       ā”œā”€ā”€ faShuttleSpace.d.ts
│   │       ā”œā”€ā”€ faShuttleSpace.js
│   │       ā”œā”€ā”€ faShuttleVan.d.ts
│   │       ā”œā”€ā”€ faShuttleVan.js
│   │       ā”œā”€ā”€ faSign.d.ts
│   │       ā”œā”€ā”€ faSign.js
│   │       ā”œā”€ā”€ faSignHanging.d.ts
│   │       ā”œā”€ā”€ faSignHanging.js
│   │       ā”œā”€ā”€ faSignIn.d.ts
│   │       ā”œā”€ā”€ faSignIn.js
│   │       ā”œā”€ā”€ faSignInAlt.d.ts
│   │       ā”œā”€ā”€ faSignInAlt.js
│   │       ā”œā”€ā”€ faSignLanguage.d.ts
│   │       ā”œā”€ā”€ faSignLanguage.js
│   │       ā”œā”€ā”€ faSignOut.d.ts
│   │       ā”œā”€ā”€ faSignOut.js
│   │       ā”œā”€ā”€ faSignOutAlt.d.ts
│   │       ā”œā”€ā”€ faSignOutAlt.js
│   │       ā”œā”€ā”€ faSignal.d.ts
│   │       ā”œā”€ā”€ faSignal.js
│   │       ā”œā”€ā”€ faSignal5.d.ts
│   │       ā”œā”€ā”€ faSignal5.js
│   │       ā”œā”€ā”€ faSignalPerfect.d.ts
│   │       ā”œā”€ā”€ faSignalPerfect.js
│   │       ā”œā”€ā”€ faSignature.d.ts
│   │       ā”œā”€ā”€ faSignature.js
│   │       ā”œā”€ā”€ faSigning.d.ts
│   │       ā”œā”€ā”€ faSigning.js
│   │       ā”œā”€ā”€ faSignsPost.d.ts
│   │       ā”œā”€ā”€ faSignsPost.js
│   │       ā”œā”€ā”€ faSimCard.d.ts
│   │       ā”œā”€ā”€ faSimCard.js
│   │       ā”œā”€ā”€ faSink.d.ts
│   │       ā”œā”€ā”€ faSink.js
│   │       ā”œā”€ā”€ faSitemap.d.ts
│   │       ā”œā”€ā”€ faSitemap.js
│   │       ā”œā”€ā”€ faSkating.d.ts
│   │       ā”œā”€ā”€ faSkating.js
│   │       ā”œā”€ā”€ faSkiing.d.ts
│   │       ā”œā”€ā”€ faSkiing.js
│   │       ā”œā”€ā”€ faSkiingNordic.d.ts
│   │       ā”œā”€ā”€ faSkiingNordic.js
│   │       ā”œā”€ā”€ faSkull.d.ts
│   │       ā”œā”€ā”€ faSkull.js
│   │       ā”œā”€ā”€ faSkullCrossbones.d.ts
│   │       ā”œā”€ā”€ faSkullCrossbones.js
│   │       ā”œā”€ā”€ faSlash.d.ts
│   │       ā”œā”€ā”€ faSlash.js
│   │       ā”œā”€ā”€ faSleigh.d.ts
│   │       ā”œā”€ā”€ faSleigh.js
│   │       ā”œā”€ā”€ faSliders.d.ts
│   │       ā”œā”€ā”€ faSliders.js
│   │       ā”œā”€ā”€ faSlidersH.d.ts
│   │       ā”œā”€ā”€ faSlidersH.js
│   │       ā”œā”€ā”€ faSmile.d.ts
│   │       ā”œā”€ā”€ faSmile.js
│   │       ā”œā”€ā”€ faSmileBeam.d.ts
│   │       ā”œā”€ā”€ faSmileBeam.js
│   │       ā”œā”€ā”€ faSmileWink.d.ts
│   │       ā”œā”€ā”€ faSmileWink.js
│   │       ā”œā”€ā”€ faSmog.d.ts
│   │       ā”œā”€ā”€ faSmog.js
│   │       ā”œā”€ā”€ faSmoking.d.ts
│   │       ā”œā”€ā”€ faSmoking.js
│   │       ā”œā”€ā”€ faSmokingBan.d.ts
│   │       ā”œā”€ā”€ faSmokingBan.js
│   │       ā”œā”€ā”€ faSms.d.ts
│   │       ā”œā”€ā”€ faSms.js
│   │       ā”œā”€ā”€ faSnowboarding.d.ts
│   │       ā”œā”€ā”€ faSnowboarding.js
│   │       ā”œā”€ā”€ faSnowflake.d.ts
│   │       ā”œā”€ā”€ faSnowflake.js
│   │       ā”œā”€ā”€ faSnowman.d.ts
│   │       ā”œā”€ā”€ faSnowman.js
│   │       ā”œā”€ā”€ faSnowplow.d.ts
│   │       ā”œā”€ā”€ faSnowplow.js
│   │       ā”œā”€ā”€ faSoap.d.ts
│   │       ā”œā”€ā”€ faSoap.js
│   │       ā”œā”€ā”€ faSoccerBall.d.ts
│   │       ā”œā”€ā”€ faSoccerBall.js
│   │       ā”œā”€ā”€ faSocks.d.ts
│   │       ā”œā”€ā”€ faSocks.js
│   │       ā”œā”€ā”€ faSolarPanel.d.ts
│   │       ā”œā”€ā”€ faSolarPanel.js
│   │       ā”œā”€ā”€ faSort.d.ts
│   │       ā”œā”€ā”€ faSort.js
│   │       ā”œā”€ā”€ faSortAlphaAsc.d.ts
│   │       ā”œā”€ā”€ faSortAlphaAsc.js
│   │       ā”œā”€ā”€ faSortAlphaDesc.d.ts
│   │       ā”œā”€ā”€ faSortAlphaDesc.js
│   │       ā”œā”€ā”€ faSortAlphaDown.d.ts
│   │       ā”œā”€ā”€ faSortAlphaDown.js
│   │       ā”œā”€ā”€ faSortAlphaDownAlt.d.ts
│   │       ā”œā”€ā”€ faSortAlphaDownAlt.js
│   │       ā”œā”€ā”€ faSortAlphaUp.d.ts
│   │       ā”œā”€ā”€ faSortAlphaUp.js
│   │       ā”œā”€ā”€ faSortAlphaUpAlt.d.ts
│   │       ā”œā”€ā”€ faSortAlphaUpAlt.js
│   │       ā”œā”€ā”€ faSortAmountAsc.d.ts
│   │       ā”œā”€ā”€ faSortAmountAsc.js
│   │       ā”œā”€ā”€ faSortAmountDesc.d.ts
│   │       ā”œā”€ā”€ faSortAmountDesc.js
│   │       ā”œā”€ā”€ faSortAmountDown.d.ts
│   │       ā”œā”€ā”€ faSortAmountDown.js
│   │       ā”œā”€ā”€ faSortAmountDownAlt.d.ts
│   │       ā”œā”€ā”€ faSortAmountDownAlt.js
│   │       ā”œā”€ā”€ faSortAmountUp.d.ts
│   │       ā”œā”€ā”€ faSortAmountUp.js
│   │       ā”œā”€ā”€ faSortAmountUpAlt.d.ts
│   │       ā”œā”€ā”€ faSortAmountUpAlt.js
│   │       ā”œā”€ā”€ faSortAsc.d.ts
│   │       ā”œā”€ā”€ faSortAsc.js
│   │       ā”œā”€ā”€ faSortDesc.d.ts
│   │       ā”œā”€ā”€ faSortDesc.js
│   │       ā”œā”€ā”€ faSortDown.d.ts
│   │       ā”œā”€ā”€ faSortDown.js
│   │       ā”œā”€ā”€ faSortNumericAsc.d.ts
│   │       ā”œā”€ā”€ faSortNumericAsc.js
│   │       ā”œā”€ā”€ faSortNumericDesc.d.ts
│   │       ā”œā”€ā”€ faSortNumericDesc.js
│   │       ā”œā”€ā”€ faSortNumericDown.d.ts
│   │       ā”œā”€ā”€ faSortNumericDown.js
│   │       ā”œā”€ā”€ faSortNumericDownAlt.d.ts
│   │       ā”œā”€ā”€ faSortNumericDownAlt.js
│   │       ā”œā”€ā”€ faSortNumericUp.d.ts
│   │       ā”œā”€ā”€ faSortNumericUp.js
│   │       ā”œā”€ā”€ faSortNumericUpAlt.d.ts
│   │       ā”œā”€ā”€ faSortNumericUpAlt.js
│   │       ā”œā”€ā”€ faSortUp.d.ts
│   │       ā”œā”€ā”€ faSortUp.js
│   │       ā”œā”€ā”€ faSpa.d.ts
│   │       ā”œā”€ā”€ faSpa.js
│   │       ā”œā”€ā”€ faSpaceShuttle.d.ts
│   │       ā”œā”€ā”€ faSpaceShuttle.js
│   │       ā”œā”€ā”€ faSpaghettiMonsterFlying.d.ts
│   │       ā”œā”€ā”€ faSpaghettiMonsterFlying.js
│   │       ā”œā”€ā”€ faSpellCheck.d.ts
│   │       ā”œā”€ā”€ faSpellCheck.js
│   │       ā”œā”€ā”€ faSpider.d.ts
│   │       ā”œā”€ā”€ faSpider.js
│   │       ā”œā”€ā”€ faSpinner.d.ts
│   │       ā”œā”€ā”€ faSpinner.js
│   │       ā”œā”€ā”€ faSplotch.d.ts
│   │       ā”œā”€ā”€ faSplotch.js
│   │       ā”œā”€ā”€ faSpoon.d.ts
│   │       ā”œā”€ā”€ faSpoon.js
│   │       ā”œā”€ā”€ faSprayCan.d.ts
│   │       ā”œā”€ā”€ faSprayCan.js
│   │       ā”œā”€ā”€ faSprayCanSparkles.d.ts
│   │       ā”œā”€ā”€ faSprayCanSparkles.js
│   │       ā”œā”€ā”€ faSprout.d.ts
│   │       ā”œā”€ā”€ faSprout.js
│   │       ā”œā”€ā”€ faSquare.d.ts
│   │       ā”œā”€ā”€ faSquare.js
│   │       ā”œā”€ā”€ faSquareArrowUpRight.d.ts
│   │       ā”œā”€ā”€ faSquareArrowUpRight.js
│   │       ā”œā”€ā”€ faSquareBinary.d.ts
│   │       ā”œā”€ā”€ faSquareBinary.js
│   │       ā”œā”€ā”€ faSquareCaretDown.d.ts
│   │       ā”œā”€ā”€ faSquareCaretDown.js
│   │       ā”œā”€ā”€ faSquareCaretLeft.d.ts
│   │       ā”œā”€ā”€ faSquareCaretLeft.js
│   │       ā”œā”€ā”€ faSquareCaretRight.d.ts
│   │       ā”œā”€ā”€ faSquareCaretRight.js
│   │       ā”œā”€ā”€ faSquareCaretUp.d.ts
│   │       ā”œā”€ā”€ faSquareCaretUp.js
│   │       ā”œā”€ā”€ faSquareCheck.d.ts
│   │       ā”œā”€ā”€ faSquareCheck.js
│   │       ā”œā”€ā”€ faSquareEnvelope.d.ts
│   │       ā”œā”€ā”€ faSquareEnvelope.js
│   │       ā”œā”€ā”€ faSquareFull.d.ts
│   │       ā”œā”€ā”€ faSquareFull.js
│   │       ā”œā”€ā”€ faSquareH.d.ts
│   │       ā”œā”€ā”€ faSquareH.js
│   │       ā”œā”€ā”€ faSquareMinus.d.ts
│   │       ā”œā”€ā”€ faSquareMinus.js
│   │       ā”œā”€ā”€ faSquareNfi.d.ts
│   │       ā”œā”€ā”€ faSquareNfi.js
│   │       ā”œā”€ā”€ faSquareParking.d.ts
│   │       ā”œā”€ā”€ faSquareParking.js
│   │       ā”œā”€ā”€ faSquarePen.d.ts
│   │       ā”œā”€ā”€ faSquarePen.js
│   │       ā”œā”€ā”€ faSquarePersonConfined.d.ts
│   │       ā”œā”€ā”€ faSquarePersonConfined.js
│   │       ā”œā”€ā”€ faSquarePhone.d.ts
│   │       ā”œā”€ā”€ faSquarePhone.js
│   │       ā”œā”€ā”€ faSquarePhoneFlip.d.ts
│   │       ā”œā”€ā”€ faSquarePhoneFlip.js
│   │       ā”œā”€ā”€ faSquarePlus.d.ts
│   │       ā”œā”€ā”€ faSquarePlus.js
│   │       ā”œā”€ā”€ faSquarePollHorizontal.d.ts
│   │       ā”œā”€ā”€ faSquarePollHorizontal.js
│   │       ā”œā”€ā”€ faSquarePollVertical.d.ts
│   │       ā”œā”€ā”€ faSquarePollVertical.js
│   │       ā”œā”€ā”€ faSquareRootAlt.d.ts
│   │       ā”œā”€ā”€ faSquareRootAlt.js
│   │       ā”œā”€ā”€ faSquareRootVariable.d.ts
│   │       ā”œā”€ā”€ faSquareRootVariable.js
│   │       ā”œā”€ā”€ faSquareRss.d.ts
│   │       ā”œā”€ā”€ faSquareRss.js
│   │       ā”œā”€ā”€ faSquareShareNodes.d.ts
│   │       ā”œā”€ā”€ faSquareShareNodes.js
│   │       ā”œā”€ā”€ faSquareUpRight.d.ts
│   │       ā”œā”€ā”€ faSquareUpRight.js
│   │       ā”œā”€ā”€ faSquareVirus.d.ts
│   │       ā”œā”€ā”€ faSquareVirus.js
│   │       ā”œā”€ā”€ faSquareXmark.d.ts
│   │       ā”œā”€ā”€ faSquareXmark.js
│   │       ā”œā”€ā”€ faStaffAesculapius.d.ts
│   │       ā”œā”€ā”€ faStaffAesculapius.js
│   │       ā”œā”€ā”€ faStaffSnake.d.ts
│   │       ā”œā”€ā”€ faStaffSnake.js
│   │       ā”œā”€ā”€ faStairs.d.ts
│   │       ā”œā”€ā”€ faStairs.js
│   │       ā”œā”€ā”€ faStamp.d.ts
│   │       ā”œā”€ā”€ faStamp.js
│   │       ā”œā”€ā”€ faStapler.d.ts
│   │       ā”œā”€ā”€ faStapler.js
│   │       ā”œā”€ā”€ faStar.d.ts
│   │       ā”œā”€ā”€ faStar.js
│   │       ā”œā”€ā”€ faStarAndCrescent.d.ts
│   │       ā”œā”€ā”€ faStarAndCrescent.js
│   │       ā”œā”€ā”€ faStarHalf.d.ts
│   │       ā”œā”€ā”€ faStarHalf.js
│   │       ā”œā”€ā”€ faStarHalfAlt.d.ts
│   │       ā”œā”€ā”€ faStarHalfAlt.js
│   │       ā”œā”€ā”€ faStarHalfStroke.d.ts
│   │       ā”œā”€ā”€ faStarHalfStroke.js
│   │       ā”œā”€ā”€ faStarOfDavid.d.ts
│   │       ā”œā”€ā”€ faStarOfDavid.js
│   │       ā”œā”€ā”€ faStarOfLife.d.ts
│   │       ā”œā”€ā”€ faStarOfLife.js
│   │       ā”œā”€ā”€ faStepBackward.d.ts
│   │       ā”œā”€ā”€ faStepBackward.js
│   │       ā”œā”€ā”€ faStepForward.d.ts
│   │       ā”œā”€ā”€ faStepForward.js
│   │       ā”œā”€ā”€ faSterlingSign.d.ts
│   │       ā”œā”€ā”€ faSterlingSign.js
│   │       ā”œā”€ā”€ faStethoscope.d.ts
│   │       ā”œā”€ā”€ faStethoscope.js
│   │       ā”œā”€ā”€ faStickyNote.d.ts
│   │       ā”œā”€ā”€ faStickyNote.js
│   │       ā”œā”€ā”€ faStop.d.ts
│   │       ā”œā”€ā”€ faStop.js
│   │       ā”œā”€ā”€ faStopCircle.d.ts
│   │       ā”œā”€ā”€ faStopCircle.js
│   │       ā”œā”€ā”€ faStopwatch.d.ts
│   │       ā”œā”€ā”€ faStopwatch.js
│   │       ā”œā”€ā”€ faStopwatch20.d.ts
│   │       ā”œā”€ā”€ faStopwatch20.js
│   │       ā”œā”€ā”€ faStore.d.ts
│   │       ā”œā”€ā”€ faStore.js
│   │       ā”œā”€ā”€ faStoreAlt.d.ts
│   │       ā”œā”€ā”€ faStoreAlt.js
│   │       ā”œā”€ā”€ faStoreAltSlash.d.ts
│   │       ā”œā”€ā”€ faStoreAltSlash.js
│   │       ā”œā”€ā”€ faStoreSlash.d.ts
│   │       ā”œā”€ā”€ faStoreSlash.js
│   │       ā”œā”€ā”€ faStream.d.ts
│   │       ā”œā”€ā”€ faStream.js
│   │       ā”œā”€ā”€ faStreetView.d.ts
│   │       ā”œā”€ā”€ faStreetView.js
│   │       ā”œā”€ā”€ faStrikethrough.d.ts
│   │       ā”œā”€ā”€ faStrikethrough.js
│   │       ā”œā”€ā”€ faStroopwafel.d.ts
│   │       ā”œā”€ā”€ faStroopwafel.js
│   │       ā”œā”€ā”€ faSubscript.d.ts
│   │       ā”œā”€ā”€ faSubscript.js
│   │       ā”œā”€ā”€ faSubtract.d.ts
│   │       ā”œā”€ā”€ faSubtract.js
│   │       ā”œā”€ā”€ faSubway.d.ts
│   │       ā”œā”€ā”€ faSubway.js
│   │       ā”œā”€ā”€ faSuitcase.d.ts
│   │       ā”œā”€ā”€ faSuitcase.js
│   │       ā”œā”€ā”€ faSuitcaseMedical.d.ts
│   │       ā”œā”€ā”€ faSuitcaseMedical.js
│   │       ā”œā”€ā”€ faSuitcaseRolling.d.ts
│   │       ā”œā”€ā”€ faSuitcaseRolling.js
│   │       ā”œā”€ā”€ faSun.d.ts
│   │       ā”œā”€ā”€ faSun.js
│   │       ā”œā”€ā”€ faSunPlantWilt.d.ts
│   │       ā”œā”€ā”€ faSunPlantWilt.js
│   │       ā”œā”€ā”€ faSuperscript.d.ts
│   │       ā”œā”€ā”€ faSuperscript.js
│   │       ā”œā”€ā”€ faSurprise.d.ts
│   │       ā”œā”€ā”€ faSurprise.js
│   │       ā”œā”€ā”€ faSwatchbook.d.ts
│   │       ā”œā”€ā”€ faSwatchbook.js
│   │       ā”œā”€ā”€ faSwimmer.d.ts
│   │       ā”œā”€ā”€ faSwimmer.js
│   │       ā”œā”€ā”€ faSwimmingPool.d.ts
│   │       ā”œā”€ā”€ faSwimmingPool.js
│   │       ā”œā”€ā”€ faSynagogue.d.ts
│   │       ā”œā”€ā”€ faSynagogue.js
│   │       ā”œā”€ā”€ faSync.d.ts
│   │       ā”œā”€ā”€ faSync.js
│   │       ā”œā”€ā”€ faSyncAlt.d.ts
│   │       ā”œā”€ā”€ faSyncAlt.js
│   │       ā”œā”€ā”€ faSyringe.d.ts
│   │       ā”œā”€ā”€ faSyringe.js
│   │       ā”œā”€ā”€ faT.d.ts
│   │       ā”œā”€ā”€ faT.js
│   │       ā”œā”€ā”€ faTShirt.d.ts
│   │       ā”œā”€ā”€ faTShirt.js
│   │       ā”œā”€ā”€ faTable.d.ts
│   │       ā”œā”€ā”€ faTable.js
│   │       ā”œā”€ā”€ faTableCells.d.ts
│   │       ā”œā”€ā”€ faTableCells.js
│   │       ā”œā”€ā”€ faTableCellsColumnLock.d.ts
│   │       ā”œā”€ā”€ faTableCellsColumnLock.js
│   │       ā”œā”€ā”€ faTableCellsLarge.d.ts
│   │       ā”œā”€ā”€ faTableCellsLarge.js
│   │       ā”œā”€ā”€ faTableCellsRowLock.d.ts
│   │       ā”œā”€ā”€ faTableCellsRowLock.js
│   │       ā”œā”€ā”€ faTableCellsRowUnlock.d.ts
│   │       ā”œā”€ā”€ faTableCellsRowUnlock.js
│   │       ā”œā”€ā”€ faTableColumns.d.ts
│   │       ā”œā”€ā”€ faTableColumns.js
│   │       ā”œā”€ā”€ faTableList.d.ts
│   │       ā”œā”€ā”€ faTableList.js
│   │       ā”œā”€ā”€ faTableTennis.d.ts
│   │       ā”œā”€ā”€ faTableTennis.js
│   │       ā”œā”€ā”€ faTableTennisPaddleBall.d.ts
│   │       ā”œā”€ā”€ faTableTennisPaddleBall.js
│   │       ā”œā”€ā”€ faTablet.d.ts
│   │       ā”œā”€ā”€ faTablet.js
│   │       ā”œā”€ā”€ faTabletAlt.d.ts
│   │       ā”œā”€ā”€ faTabletAlt.js
│   │       ā”œā”€ā”€ faTabletAndroid.d.ts
│   │       ā”œā”€ā”€ faTabletAndroid.js
│   │       ā”œā”€ā”€ faTabletButton.d.ts
│   │       ā”œā”€ā”€ faTabletButton.js
│   │       ā”œā”€ā”€ faTabletScreenButton.d.ts
│   │       ā”œā”€ā”€ faTabletScreenButton.js
│   │       ā”œā”€ā”€ faTablets.d.ts
│   │       ā”œā”€ā”€ faTablets.js
│   │       ā”œā”€ā”€ faTachographDigital.d.ts
│   │       ā”œā”€ā”€ faTachographDigital.js
│   │       ā”œā”€ā”€ faTachometer.d.ts
│   │       ā”œā”€ā”€ faTachometer.js
│   │       ā”œā”€ā”€ faTachometerAlt.d.ts
│   │       ā”œā”€ā”€ faTachometerAlt.js
│   │       ā”œā”€ā”€ faTachometerAltAverage.d.ts
│   │       ā”œā”€ā”€ faTachometerAltAverage.js
│   │       ā”œā”€ā”€ faTachometerAltFast.d.ts
│   │       ā”œā”€ā”€ faTachometerAltFast.js
│   │       ā”œā”€ā”€ faTachometerAverage.d.ts
│   │       ā”œā”€ā”€ faTachometerAverage.js
│   │       ā”œā”€ā”€ faTachometerFast.d.ts
│   │       ā”œā”€ā”€ faTachometerFast.js
│   │       ā”œā”€ā”€ faTag.d.ts
│   │       ā”œā”€ā”€ faTag.js
│   │       ā”œā”€ā”€ faTags.d.ts
│   │       ā”œā”€ā”€ faTags.js
│   │       ā”œā”€ā”€ faTanakh.d.ts
│   │       ā”œā”€ā”€ faTanakh.js
│   │       ā”œā”€ā”€ faTape.d.ts
│   │       ā”œā”€ā”€ faTape.js
│   │       ā”œā”€ā”€ faTarp.d.ts
│   │       ā”œā”€ā”€ faTarp.js
│   │       ā”œā”€ā”€ faTarpDroplet.d.ts
│   │       ā”œā”€ā”€ faTarpDroplet.js
│   │       ā”œā”€ā”€ faTasks.d.ts
│   │       ā”œā”€ā”€ faTasks.js
│   │       ā”œā”€ā”€ faTasksAlt.d.ts
│   │       ā”œā”€ā”€ faTasksAlt.js
│   │       ā”œā”€ā”€ faTaxi.d.ts
│   │       ā”œā”€ā”€ faTaxi.js
│   │       ā”œā”€ā”€ faTeeth.d.ts
│   │       ā”œā”€ā”€ faTeeth.js
│   │       ā”œā”€ā”€ faTeethOpen.d.ts
│   │       ā”œā”€ā”€ faTeethOpen.js
│   │       ā”œā”€ā”€ faTeletype.d.ts
│   │       ā”œā”€ā”€ faTeletype.js
│   │       ā”œā”€ā”€ faTelevision.d.ts
│   │       ā”œā”€ā”€ faTelevision.js
│   │       ā”œā”€ā”€ faTemperature0.d.ts
│   │       ā”œā”€ā”€ faTemperature0.js
│   │       ā”œā”€ā”€ faTemperature1.d.ts
│   │       ā”œā”€ā”€ faTemperature1.js
│   │       ā”œā”€ā”€ faTemperature2.d.ts
│   │       ā”œā”€ā”€ faTemperature2.js
│   │       ā”œā”€ā”€ faTemperature3.d.ts
│   │       ā”œā”€ā”€ faTemperature3.js
│   │       ā”œā”€ā”€ faTemperature4.d.ts
│   │       ā”œā”€ā”€ faTemperature4.js
│   │       ā”œā”€ā”€ faTemperatureArrowDown.d.ts
│   │       ā”œā”€ā”€ faTemperatureArrowDown.js
│   │       ā”œā”€ā”€ faTemperatureArrowUp.d.ts
│   │       ā”œā”€ā”€ faTemperatureArrowUp.js
│   │       ā”œā”€ā”€ faTemperatureDown.d.ts
│   │       ā”œā”€ā”€ faTemperatureDown.js
│   │       ā”œā”€ā”€ faTemperatureEmpty.d.ts
│   │       ā”œā”€ā”€ faTemperatureEmpty.js
│   │       ā”œā”€ā”€ faTemperatureFull.d.ts
│   │       ā”œā”€ā”€ faTemperatureFull.js
│   │       ā”œā”€ā”€ faTemperatureHalf.d.ts
│   │       ā”œā”€ā”€ faTemperatureHalf.js
│   │       ā”œā”€ā”€ faTemperatureHigh.d.ts
│   │       ā”œā”€ā”€ faTemperatureHigh.js
│   │       ā”œā”€ā”€ faTemperatureLow.d.ts
│   │       ā”œā”€ā”€ faTemperatureLow.js
│   │       ā”œā”€ā”€ faTemperatureQuarter.d.ts
│   │       ā”œā”€ā”€ faTemperatureQuarter.js
│   │       ā”œā”€ā”€ faTemperatureThreeQuarters.d.ts
│   │       ā”œā”€ā”€ faTemperatureThreeQuarters.js
│   │       ā”œā”€ā”€ faTemperatureUp.d.ts
│   │       ā”œā”€ā”€ faTemperatureUp.js
│   │       ā”œā”€ā”€ faTenge.d.ts
│   │       ā”œā”€ā”€ faTenge.js
│   │       ā”œā”€ā”€ faTengeSign.d.ts
│   │       ā”œā”€ā”€ faTengeSign.js
│   │       ā”œā”€ā”€ faTent.d.ts
│   │       ā”œā”€ā”€ faTent.js
│   │       ā”œā”€ā”€ faTentArrowDownToLine.d.ts
│   │       ā”œā”€ā”€ faTentArrowDownToLine.js
│   │       ā”œā”€ā”€ faTentArrowLeftRight.d.ts
│   │       ā”œā”€ā”€ faTentArrowLeftRight.js
│   │       ā”œā”€ā”€ faTentArrowTurnLeft.d.ts
│   │       ā”œā”€ā”€ faTentArrowTurnLeft.js
│   │       ā”œā”€ā”€ faTentArrowsDown.d.ts
│   │       ā”œā”€ā”€ faTentArrowsDown.js
│   │       ā”œā”€ā”€ faTents.d.ts
│   │       ā”œā”€ā”€ faTents.js
│   │       ā”œā”€ā”€ faTerminal.d.ts
│   │       ā”œā”€ā”€ faTerminal.js
│   │       ā”œā”€ā”€ faTextHeight.d.ts
│   │       ā”œā”€ā”€ faTextHeight.js
│   │       ā”œā”€ā”€ faTextSlash.d.ts
│   │       ā”œā”€ā”€ faTextSlash.js
│   │       ā”œā”€ā”€ faTextWidth.d.ts
│   │       ā”œā”€ā”€ faTextWidth.js
│   │       ā”œā”€ā”€ faTh.d.ts
│   │       ā”œā”€ā”€ faTh.js
│   │       ā”œā”€ā”€ faThLarge.d.ts
│   │       ā”œā”€ā”€ faThLarge.js
│   │       ā”œā”€ā”€ faThList.d.ts
│   │       ā”œā”€ā”€ faThList.js
│   │       ā”œā”€ā”€ faTheaterMasks.d.ts
│   │       ā”œā”€ā”€ faTheaterMasks.js
│   │       ā”œā”€ā”€ faThermometer.d.ts
│   │       ā”œā”€ā”€ faThermometer.js
│   │       ā”œā”€ā”€ faThermometer0.d.ts
│   │       ā”œā”€ā”€ faThermometer0.js
│   │       ā”œā”€ā”€ faThermometer1.d.ts
│   │       ā”œā”€ā”€ faThermometer1.js
│   │       ā”œā”€ā”€ faThermometer2.d.ts
│   │       ā”œā”€ā”€ faThermometer2.js
│   │       ā”œā”€ā”€ faThermometer3.d.ts
│   │       ā”œā”€ā”€ faThermometer3.js
│   │       ā”œā”€ā”€ faThermometer4.d.ts
│   │       ā”œā”€ā”€ faThermometer4.js
│   │       ā”œā”€ā”€ faThermometerEmpty.d.ts
│   │       ā”œā”€ā”€ faThermometerEmpty.js
│   │       ā”œā”€ā”€ faThermometerFull.d.ts
│   │       ā”œā”€ā”€ faThermometerFull.js
│   │       ā”œā”€ā”€ faThermometerHalf.d.ts
│   │       ā”œā”€ā”€ faThermometerHalf.js
│   │       ā”œā”€ā”€ faThermometerQuarter.d.ts
│   │       ā”œā”€ā”€ faThermometerQuarter.js
│   │       ā”œā”€ā”€ faThermometerThreeQuarters.d.ts
│   │       ā”œā”€ā”€ faThermometerThreeQuarters.js
│   │       ā”œā”€ā”€ faThumbsDown.d.ts
│   │       ā”œā”€ā”€ faThumbsDown.js
│   │       ā”œā”€ā”€ faThumbsUp.d.ts
│   │       ā”œā”€ā”€ faThumbsUp.js
│   │       ā”œā”€ā”€ faThumbtack.d.ts
│   │       ā”œā”€ā”€ faThumbtack.js
│   │       ā”œā”€ā”€ faThumbtackSlash.d.ts
│   │       ā”œā”€ā”€ faThumbtackSlash.js
│   │       ā”œā”€ā”€ faThunderstorm.d.ts
│   │       ā”œā”€ā”€ faThunderstorm.js
│   │       ā”œā”€ā”€ faTicket.d.ts
│   │       ā”œā”€ā”€ faTicket.js
│   │       ā”œā”€ā”€ faTicketAlt.d.ts
│   │       ā”œā”€ā”€ faTicketAlt.js
│   │       ā”œā”€ā”€ faTicketSimple.d.ts
│   │       ā”œā”€ā”€ faTicketSimple.js
│   │       ā”œā”€ā”€ faTimeline.d.ts
│   │       ā”œā”€ā”€ faTimeline.js
│   │       ā”œā”€ā”€ faTimes.d.ts
│   │       ā”œā”€ā”€ faTimes.js
│   │       ā”œā”€ā”€ faTimesCircle.d.ts
│   │       ā”œā”€ā”€ faTimesCircle.js
│   │       ā”œā”€ā”€ faTimesRectangle.d.ts
│   │       ā”œā”€ā”€ faTimesRectangle.js
│   │       ā”œā”€ā”€ faTimesSquare.d.ts
│   │       ā”œā”€ā”€ faTimesSquare.js
│   │       ā”œā”€ā”€ faTint.d.ts
│   │       ā”œā”€ā”€ faTint.js
│   │       ā”œā”€ā”€ faTintSlash.d.ts
│   │       ā”œā”€ā”€ faTintSlash.js
│   │       ā”œā”€ā”€ faTired.d.ts
│   │       ā”œā”€ā”€ faTired.js
│   │       ā”œā”€ā”€ faToggleOff.d.ts
│   │       ā”œā”€ā”€ faToggleOff.js
│   │       ā”œā”€ā”€ faToggleOn.d.ts
│   │       ā”œā”€ā”€ faToggleOn.js
│   │       ā”œā”€ā”€ faToilet.d.ts
│   │       ā”œā”€ā”€ faToilet.js
│   │       ā”œā”€ā”€ faToiletPaper.d.ts
│   │       ā”œā”€ā”€ faToiletPaper.js
│   │       ā”œā”€ā”€ faToiletPaperSlash.d.ts
│   │       ā”œā”€ā”€ faToiletPaperSlash.js
│   │       ā”œā”€ā”€ faToiletPortable.d.ts
│   │       ā”œā”€ā”€ faToiletPortable.js
│   │       ā”œā”€ā”€ faToiletsPortable.d.ts
│   │       ā”œā”€ā”€ faToiletsPortable.js
│   │       ā”œā”€ā”€ faToolbox.d.ts
│   │       ā”œā”€ā”€ faToolbox.js
│   │       ā”œā”€ā”€ faTools.d.ts
│   │       ā”œā”€ā”€ faTools.js
│   │       ā”œā”€ā”€ faTooth.d.ts
│   │       ā”œā”€ā”€ faTooth.js
│   │       ā”œā”€ā”€ faTorah.d.ts
│   │       ā”œā”€ā”€ faTorah.js
│   │       ā”œā”€ā”€ faToriiGate.d.ts
│   │       ā”œā”€ā”€ faToriiGate.js
│   │       ā”œā”€ā”€ faTornado.d.ts
│   │       ā”œā”€ā”€ faTornado.js
│   │       ā”œā”€ā”€ faTowerBroadcast.d.ts
│   │       ā”œā”€ā”€ faTowerBroadcast.js
│   │       ā”œā”€ā”€ faTowerCell.d.ts
│   │       ā”œā”€ā”€ faTowerCell.js
│   │       ā”œā”€ā”€ faTowerObservation.d.ts
│   │       ā”œā”€ā”€ faTowerObservation.js
│   │       ā”œā”€ā”€ faTractor.d.ts
│   │       ā”œā”€ā”€ faTractor.js
│   │       ā”œā”€ā”€ faTrademark.d.ts
│   │       ā”œā”€ā”€ faTrademark.js
│   │       ā”œā”€ā”€ faTrafficLight.d.ts
│   │       ā”œā”€ā”€ faTrafficLight.js
│   │       ā”œā”€ā”€ faTrailer.d.ts
│   │       ā”œā”€ā”€ faTrailer.js
│   │       ā”œā”€ā”€ faTrain.d.ts
│   │       ā”œā”€ā”€ faTrain.js
│   │       ā”œā”€ā”€ faTrainSubway.d.ts
│   │       ā”œā”€ā”€ faTrainSubway.js
│   │       ā”œā”€ā”€ faTrainTram.d.ts
│   │       ā”œā”€ā”€ faTrainTram.js
│   │       ā”œā”€ā”€ faTram.d.ts
│   │       ā”œā”€ā”€ faTram.js
│   │       ā”œā”€ā”€ faTransgender.d.ts
│   │       ā”œā”€ā”€ faTransgender.js
│   │       ā”œā”€ā”€ faTransgenderAlt.d.ts
│   │       ā”œā”€ā”€ faTransgenderAlt.js
│   │       ā”œā”€ā”€ faTrash.d.ts
│   │       ā”œā”€ā”€ faTrash.js
│   │       ā”œā”€ā”€ faTrashAlt.d.ts
│   │       ā”œā”€ā”€ faTrashAlt.js
│   │       ā”œā”€ā”€ faTrashArrowUp.d.ts
│   │       ā”œā”€ā”€ faTrashArrowUp.js
│   │       ā”œā”€ā”€ faTrashCan.d.ts
│   │       ā”œā”€ā”€ faTrashCan.js
│   │       ā”œā”€ā”€ faTrashCanArrowUp.d.ts
│   │       ā”œā”€ā”€ faTrashCanArrowUp.js
│   │       ā”œā”€ā”€ faTrashRestore.d.ts
│   │       ā”œā”€ā”€ faTrashRestore.js
│   │       ā”œā”€ā”€ faTrashRestoreAlt.d.ts
│   │       ā”œā”€ā”€ faTrashRestoreAlt.js
│   │       ā”œā”€ā”€ faTree.d.ts
│   │       ā”œā”€ā”€ faTree.js
│   │       ā”œā”€ā”€ faTreeCity.d.ts
│   │       ā”œā”€ā”€ faTreeCity.js
│   │       ā”œā”€ā”€ faTriangleCircleSquare.d.ts
│   │       ā”œā”€ā”€ faTriangleCircleSquare.js
│   │       ā”œā”€ā”€ faTriangleExclamation.d.ts
│   │       ā”œā”€ā”€ faTriangleExclamation.js
│   │       ā”œā”€ā”€ faTrophy.d.ts
│   │       ā”œā”€ā”€ faTrophy.js
│   │       ā”œā”€ā”€ faTrowel.d.ts
│   │       ā”œā”€ā”€ faTrowel.js
│   │       ā”œā”€ā”€ faTrowelBricks.d.ts
│   │       ā”œā”€ā”€ faTrowelBricks.js
│   │       ā”œā”€ā”€ faTruck.d.ts
│   │       ā”œā”€ā”€ faTruck.js
│   │       ā”œā”€ā”€ faTruckArrowRight.d.ts
│   │       ā”œā”€ā”€ faTruckArrowRight.js
│   │       ā”œā”€ā”€ faTruckDroplet.d.ts
│   │       ā”œā”€ā”€ faTruckDroplet.js
│   │       ā”œā”€ā”€ faTruckFast.d.ts
│   │       ā”œā”€ā”€ faTruckFast.js
│   │       ā”œā”€ā”€ faTruckField.d.ts
│   │       ā”œā”€ā”€ faTruckField.js
│   │       ā”œā”€ā”€ faTruckFieldUn.d.ts
│   │       ā”œā”€ā”€ faTruckFieldUn.js
│   │       ā”œā”€ā”€ faTruckFront.d.ts
│   │       ā”œā”€ā”€ faTruckFront.js
│   │       ā”œā”€ā”€ faTruckLoading.d.ts
│   │       ā”œā”€ā”€ faTruckLoading.js
│   │       ā”œā”€ā”€ faTruckMedical.d.ts
│   │       ā”œā”€ā”€ faTruckMedical.js
│   │       ā”œā”€ā”€ faTruckMonster.d.ts
│   │       ā”œā”€ā”€ faTruckMonster.js
│   │       ā”œā”€ā”€ faTruckMoving.d.ts
│   │       ā”œā”€ā”€ faTruckMoving.js
│   │       ā”œā”€ā”€ faTruckPickup.d.ts
│   │       ā”œā”€ā”€ faTruckPickup.js
│   │       ā”œā”€ā”€ faTruckPlane.d.ts
│   │       ā”œā”€ā”€ faTruckPlane.js
│   │       ā”œā”€ā”€ faTruckRampBox.d.ts
│   │       ā”œā”€ā”€ faTruckRampBox.js
│   │       ā”œā”€ā”€ faTry.d.ts
│   │       ā”œā”€ā”€ faTry.js
│   │       ā”œā”€ā”€ faTty.d.ts
│   │       ā”œā”€ā”€ faTty.js
│   │       ā”œā”€ā”€ faTurkishLira.d.ts
│   │       ā”œā”€ā”€ faTurkishLira.js
│   │       ā”œā”€ā”€ faTurkishLiraSign.d.ts
│   │       ā”œā”€ā”€ faTurkishLiraSign.js
│   │       ā”œā”€ā”€ faTurnDown.d.ts
│   │       ā”œā”€ā”€ faTurnDown.js
│   │       ā”œā”€ā”€ faTurnUp.d.ts
│   │       ā”œā”€ā”€ faTurnUp.js
│   │       ā”œā”€ā”€ faTv.d.ts
│   │       ā”œā”€ā”€ faTv.js
│   │       ā”œā”€ā”€ faTvAlt.d.ts
│   │       ā”œā”€ā”€ faTvAlt.js
│   │       ā”œā”€ā”€ faU.d.ts
│   │       ā”œā”€ā”€ faU.js
│   │       ā”œā”€ā”€ faUmbrella.d.ts
│   │       ā”œā”€ā”€ faUmbrella.js
│   │       ā”œā”€ā”€ faUmbrellaBeach.d.ts
│   │       ā”œā”€ā”€ faUmbrellaBeach.js
│   │       ā”œā”€ā”€ faUnderline.d.ts
│   │       ā”œā”€ā”€ faUnderline.js
│   │       ā”œā”€ā”€ faUndo.d.ts
│   │       ā”œā”€ā”€ faUndo.js
│   │       ā”œā”€ā”€ faUndoAlt.d.ts
│   │       ā”œā”€ā”€ faUndoAlt.js
│   │       ā”œā”€ā”€ faUniversalAccess.d.ts
│   │       ā”œā”€ā”€ faUniversalAccess.js
│   │       ā”œā”€ā”€ faUniversity.d.ts
│   │       ā”œā”€ā”€ faUniversity.js
│   │       ā”œā”€ā”€ faUnlink.d.ts
│   │       ā”œā”€ā”€ faUnlink.js
│   │       ā”œā”€ā”€ faUnlock.d.ts
│   │       ā”œā”€ā”€ faUnlock.js
│   │       ā”œā”€ā”€ faUnlockAlt.d.ts
│   │       ā”œā”€ā”€ faUnlockAlt.js
│   │       ā”œā”€ā”€ faUnlockKeyhole.d.ts
│   │       ā”œā”€ā”€ faUnlockKeyhole.js
│   │       ā”œā”€ā”€ faUnsorted.d.ts
│   │       ā”œā”€ā”€ faUnsorted.js
│   │       ā”œā”€ā”€ faUpDown.d.ts
│   │       ā”œā”€ā”€ faUpDown.js
│   │       ā”œā”€ā”€ faUpDownLeftRight.d.ts
│   │       ā”œā”€ā”€ faUpDownLeftRight.js
│   │       ā”œā”€ā”€ faUpLong.d.ts
│   │       ā”œā”€ā”€ faUpLong.js
│   │       ā”œā”€ā”€ faUpRightAndDownLeftFromCenter.d.ts
│   │       ā”œā”€ā”€ faUpRightAndDownLeftFromCenter.js
│   │       ā”œā”€ā”€ faUpRightFromSquare.d.ts
│   │       ā”œā”€ā”€ faUpRightFromSquare.js
│   │       ā”œā”€ā”€ faUpload.d.ts
│   │       ā”œā”€ā”€ faUpload.js
│   │       ā”œā”€ā”€ faUsd.d.ts
│   │       ā”œā”€ā”€ faUsd.js
│   │       ā”œā”€ā”€ faUser.d.ts
│   │       ā”œā”€ā”€ faUser.js
│   │       ā”œā”€ā”€ faUserAlt.d.ts
│   │       ā”œā”€ā”€ faUserAlt.js
│   │       ā”œā”€ā”€ faUserAltSlash.d.ts
│   │       ā”œā”€ā”€ faUserAltSlash.js
│   │       ā”œā”€ā”€ faUserAstronaut.d.ts
│   │       ā”œā”€ā”€ faUserAstronaut.js
│   │       ā”œā”€ā”€ faUserCheck.d.ts
│   │       ā”œā”€ā”€ faUserCheck.js
│   │       ā”œā”€ā”€ faUserCircle.d.ts
│   │       ā”œā”€ā”€ faUserCircle.js
│   │       ā”œā”€ā”€ faUserClock.d.ts
│   │       ā”œā”€ā”€ faUserClock.js
│   │       ā”œā”€ā”€ faUserCog.d.ts
│   │       ā”œā”€ā”€ faUserCog.js
│   │       ā”œā”€ā”€ faUserDoctor.d.ts
│   │       ā”œā”€ā”€ faUserDoctor.js
│   │       ā”œā”€ā”€ faUserEdit.d.ts
│   │       ā”œā”€ā”€ faUserEdit.js
│   │       ā”œā”€ā”€ faUserFriends.d.ts
│   │       ā”œā”€ā”€ faUserFriends.js
│   │       ā”œā”€ā”€ faUserGear.d.ts
│   │       ā”œā”€ā”€ faUserGear.js
│   │       ā”œā”€ā”€ faUserGraduate.d.ts
│   │       ā”œā”€ā”€ faUserGraduate.js
│   │       ā”œā”€ā”€ faUserGroup.d.ts
│   │       ā”œā”€ā”€ faUserGroup.js
│   │       ā”œā”€ā”€ faUserInjured.d.ts
│   │       ā”œā”€ā”€ faUserInjured.js
│   │       ā”œā”€ā”€ faUserLarge.d.ts
│   │       ā”œā”€ā”€ faUserLarge.js
│   │       ā”œā”€ā”€ faUserLargeSlash.d.ts
│   │       ā”œā”€ā”€ faUserLargeSlash.js
│   │       ā”œā”€ā”€ faUserLock.d.ts
│   │       ā”œā”€ā”€ faUserLock.js
│   │       ā”œā”€ā”€ faUserMd.d.ts
│   │       ā”œā”€ā”€ faUserMd.js
│   │       ā”œā”€ā”€ faUserMinus.d.ts
│   │       ā”œā”€ā”€ faUserMinus.js
│   │       ā”œā”€ā”€ faUserNinja.d.ts
│   │       ā”œā”€ā”€ faUserNinja.js
│   │       ā”œā”€ā”€ faUserNurse.d.ts
│   │       ā”œā”€ā”€ faUserNurse.js
│   │       ā”œā”€ā”€ faUserPen.d.ts
│   │       ā”œā”€ā”€ faUserPen.js
│   │       ā”œā”€ā”€ faUserPlus.d.ts
│   │       ā”œā”€ā”€ faUserPlus.js
│   │       ā”œā”€ā”€ faUserSecret.d.ts
│   │       ā”œā”€ā”€ faUserSecret.js
│   │       ā”œā”€ā”€ faUserShield.d.ts
│   │       ā”œā”€ā”€ faUserShield.js
│   │       ā”œā”€ā”€ faUserSlash.d.ts
│   │       ā”œā”€ā”€ faUserSlash.js
│   │       ā”œā”€ā”€ faUserTag.d.ts
│   │       ā”œā”€ā”€ faUserTag.js
│   │       ā”œā”€ā”€ faUserTie.d.ts
│   │       ā”œā”€ā”€ faUserTie.js
│   │       ā”œā”€ā”€ faUserTimes.d.ts
│   │       ā”œā”€ā”€ faUserTimes.js
│   │       ā”œā”€ā”€ faUserXmark.d.ts
│   │       ā”œā”€ā”€ faUserXmark.js
│   │       ā”œā”€ā”€ faUsers.d.ts
│   │       ā”œā”€ā”€ faUsers.js
│   │       ā”œā”€ā”€ faUsersBetweenLines.d.ts
│   │       ā”œā”€ā”€ faUsersBetweenLines.js
│   │       ā”œā”€ā”€ faUsersCog.d.ts
│   │       ā”œā”€ā”€ faUsersCog.js
│   │       ā”œā”€ā”€ faUsersGear.d.ts
│   │       ā”œā”€ā”€ faUsersGear.js
│   │       ā”œā”€ā”€ faUsersLine.d.ts
│   │       ā”œā”€ā”€ faUsersLine.js
│   │       ā”œā”€ā”€ faUsersRays.d.ts
│   │       ā”œā”€ā”€ faUsersRays.js
│   │       ā”œā”€ā”€ faUsersRectangle.d.ts
│   │       ā”œā”€ā”€ faUsersRectangle.js
│   │       ā”œā”€ā”€ faUsersSlash.d.ts
│   │       ā”œā”€ā”€ faUsersSlash.js
│   │       ā”œā”€ā”€ faUsersViewfinder.d.ts
│   │       ā”œā”€ā”€ faUsersViewfinder.js
│   │       ā”œā”€ā”€ faUtensilSpoon.d.ts
│   │       ā”œā”€ā”€ faUtensilSpoon.js
│   │       ā”œā”€ā”€ faUtensils.d.ts
│   │       ā”œā”€ā”€ faUtensils.js
│   │       ā”œā”€ā”€ faV.d.ts
│   │       ā”œā”€ā”€ faV.js
│   │       ā”œā”€ā”€ faVanShuttle.d.ts
│   │       ā”œā”€ā”€ faVanShuttle.js
│   │       ā”œā”€ā”€ faVault.d.ts
│   │       ā”œā”€ā”€ faVault.js
│   │       ā”œā”€ā”€ faVcard.d.ts
│   │       ā”œā”€ā”€ faVcard.js
│   │       ā”œā”€ā”€ faVectorSquare.d.ts
│   │       ā”œā”€ā”€ faVectorSquare.js
│   │       ā”œā”€ā”€ faVenus.d.ts
│   │       ā”œā”€ā”€ faVenus.js
│   │       ā”œā”€ā”€ faVenusDouble.d.ts
│   │       ā”œā”€ā”€ faVenusDouble.js
│   │       ā”œā”€ā”€ faVenusMars.d.ts
│   │       ā”œā”€ā”€ faVenusMars.js
│   │       ā”œā”€ā”€ faVest.d.ts
│   │       ā”œā”€ā”€ faVest.js
│   │       ā”œā”€ā”€ faVestPatches.d.ts
│   │       ā”œā”€ā”€ faVestPatches.js
│   │       ā”œā”€ā”€ faVial.d.ts
│   │       ā”œā”€ā”€ faVial.js
│   │       ā”œā”€ā”€ faVialCircleCheck.d.ts
│   │       ā”œā”€ā”€ faVialCircleCheck.js
│   │       ā”œā”€ā”€ faVialVirus.d.ts
│   │       ā”œā”€ā”€ faVialVirus.js
│   │       ā”œā”€ā”€ faVials.d.ts
│   │       ā”œā”€ā”€ faVials.js
│   │       ā”œā”€ā”€ faVideo.d.ts
│   │       ā”œā”€ā”€ faVideo.js
│   │       ā”œā”€ā”€ faVideoCamera.d.ts
│   │       ā”œā”€ā”€ faVideoCamera.js
│   │       ā”œā”€ā”€ faVideoSlash.d.ts
│   │       ā”œā”€ā”€ faVideoSlash.js
│   │       ā”œā”€ā”€ faVihara.d.ts
│   │       ā”œā”€ā”€ faVihara.js
│   │       ā”œā”€ā”€ faVirus.d.ts
│   │       ā”œā”€ā”€ faVirus.js
│   │       ā”œā”€ā”€ faVirusCovid.d.ts
│   │       ā”œā”€ā”€ faVirusCovid.js
│   │       ā”œā”€ā”€ faVirusCovidSlash.d.ts
│   │       ā”œā”€ā”€ faVirusCovidSlash.js
│   │       ā”œā”€ā”€ faVirusSlash.d.ts
│   │       ā”œā”€ā”€ faVirusSlash.js
│   │       ā”œā”€ā”€ faViruses.d.ts
│   │       ā”œā”€ā”€ faViruses.js
│   │       ā”œā”€ā”€ faVoicemail.d.ts
│   │       ā”œā”€ā”€ faVoicemail.js
│   │       ā”œā”€ā”€ faVolcano.d.ts
│   │       ā”œā”€ā”€ faVolcano.js
│   │       ā”œā”€ā”€ faVolleyball.d.ts
│   │       ā”œā”€ā”€ faVolleyball.js
│   │       ā”œā”€ā”€ faVolleyballBall.d.ts
│   │       ā”œā”€ā”€ faVolleyballBall.js
│   │       ā”œā”€ā”€ faVolumeControlPhone.d.ts
│   │       ā”œā”€ā”€ faVolumeControlPhone.js
│   │       ā”œā”€ā”€ faVolumeDown.d.ts
│   │       ā”œā”€ā”€ faVolumeDown.js
│   │       ā”œā”€ā”€ faVolumeHigh.d.ts
│   │       ā”œā”€ā”€ faVolumeHigh.js
│   │       ā”œā”€ā”€ faVolumeLow.d.ts
│   │       ā”œā”€ā”€ faVolumeLow.js
│   │       ā”œā”€ā”€ faVolumeMute.d.ts
│   │       ā”œā”€ā”€ faVolumeMute.js
│   │       ā”œā”€ā”€ faVolumeOff.d.ts
│   │       ā”œā”€ā”€ faVolumeOff.js
│   │       ā”œā”€ā”€ faVolumeTimes.d.ts
│   │       ā”œā”€ā”€ faVolumeTimes.js
│   │       ā”œā”€ā”€ faVolumeUp.d.ts
│   │       ā”œā”€ā”€ faVolumeUp.js
│   │       ā”œā”€ā”€ faVolumeXmark.d.ts
│   │       ā”œā”€ā”€ faVolumeXmark.js
│   │       ā”œā”€ā”€ faVoteYea.d.ts
│   │       ā”œā”€ā”€ faVoteYea.js
│   │       ā”œā”€ā”€ faVrCardboard.d.ts
│   │       ā”œā”€ā”€ faVrCardboard.js
│   │       ā”œā”€ā”€ faW.d.ts
│   │       ā”œā”€ā”€ faW.js
│   │       ā”œā”€ā”€ faWalkieTalkie.d.ts
│   │       ā”œā”€ā”€ faWalkieTalkie.js
│   │       ā”œā”€ā”€ faWalking.d.ts
│   │       ā”œā”€ā”€ faWalking.js
│   │       ā”œā”€ā”€ faWallet.d.ts
│   │       ā”œā”€ā”€ faWallet.js
│   │       ā”œā”€ā”€ faWandMagic.d.ts
│   │       ā”œā”€ā”€ faWandMagic.js
│   │       ā”œā”€ā”€ faWandMagicSparkles.d.ts
│   │       ā”œā”€ā”€ faWandMagicSparkles.js
│   │       ā”œā”€ā”€ faWandSparkles.d.ts
│   │       ā”œā”€ā”€ faWandSparkles.js
│   │       ā”œā”€ā”€ faWarehouse.d.ts
│   │       ā”œā”€ā”€ faWarehouse.js
│   │       ā”œā”€ā”€ faWarning.d.ts
│   │       ā”œā”€ā”€ faWarning.js
│   │       ā”œā”€ā”€ faWater.d.ts
│   │       ā”œā”€ā”€ faWater.js
│   │       ā”œā”€ā”€ faWaterLadder.d.ts
│   │       ā”œā”€ā”€ faWaterLadder.js
│   │       ā”œā”€ā”€ faWaveSquare.d.ts
│   │       ā”œā”€ā”€ faWaveSquare.js
│   │       ā”œā”€ā”€ faWebAwesome.d.ts
│   │       ā”œā”€ā”€ faWebAwesome.js
│   │       ā”œā”€ā”€ faWeight.d.ts
│   │       ā”œā”€ā”€ faWeight.js
│   │       ā”œā”€ā”€ faWeightHanging.d.ts
│   │       ā”œā”€ā”€ faWeightHanging.js
│   │       ā”œā”€ā”€ faWeightScale.d.ts
│   │       ā”œā”€ā”€ faWeightScale.js
│   │       ā”œā”€ā”€ faWheatAlt.d.ts
│   │       ā”œā”€ā”€ faWheatAlt.js
│   │       ā”œā”€ā”€ faWheatAwn.d.ts
│   │       ā”œā”€ā”€ faWheatAwn.js
│   │       ā”œā”€ā”€ faWheatAwnCircleExclamation.d.ts
│   │       ā”œā”€ā”€ faWheatAwnCircleExclamation.js
│   │       ā”œā”€ā”€ faWheelchair.d.ts
│   │       ā”œā”€ā”€ faWheelchair.js
│   │       ā”œā”€ā”€ faWheelchairAlt.d.ts
│   │       ā”œā”€ā”€ faWheelchairAlt.js
│   │       ā”œā”€ā”€ faWheelchairMove.d.ts
│   │       ā”œā”€ā”€ faWheelchairMove.js
│   │       ā”œā”€ā”€ faWhiskeyGlass.d.ts
│   │       ā”œā”€ā”€ faWhiskeyGlass.js
│   │       ā”œā”€ā”€ faWifi.d.ts
│   │       ā”œā”€ā”€ faWifi.js
│   │       ā”œā”€ā”€ faWifi3.d.ts
│   │       ā”œā”€ā”€ faWifi3.js
│   │       ā”œā”€ā”€ faWifiStrong.d.ts
│   │       ā”œā”€ā”€ faWifiStrong.js
│   │       ā”œā”€ā”€ faWind.d.ts
│   │       ā”œā”€ā”€ faWind.js
│   │       ā”œā”€ā”€ faWindowClose.d.ts
│   │       ā”œā”€ā”€ faWindowClose.js
│   │       ā”œā”€ā”€ faWindowMaximize.d.ts
│   │       ā”œā”€ā”€ faWindowMaximize.js
│   │       ā”œā”€ā”€ faWindowMinimize.d.ts
│   │       ā”œā”€ā”€ faWindowMinimize.js
│   │       ā”œā”€ā”€ faWindowRestore.d.ts
│   │       ā”œā”€ā”€ faWindowRestore.js
│   │       ā”œā”€ā”€ faWineBottle.d.ts
│   │       ā”œā”€ā”€ faWineBottle.js
│   │       ā”œā”€ā”€ faWineGlass.d.ts
│   │       ā”œā”€ā”€ faWineGlass.js
│   │       ā”œā”€ā”€ faWineGlassAlt.d.ts
│   │       ā”œā”€ā”€ faWineGlassAlt.js
│   │       ā”œā”€ā”€ faWineGlassEmpty.d.ts
│   │       ā”œā”€ā”€ faWineGlassEmpty.js
│   │       ā”œā”€ā”€ faWon.d.ts
│   │       ā”œā”€ā”€ faWon.js
│   │       ā”œā”€ā”€ faWonSign.d.ts
│   │       ā”œā”€ā”€ faWonSign.js
│   │       ā”œā”€ā”€ faWorm.d.ts
│   │       ā”œā”€ā”€ faWorm.js
│   │       ā”œā”€ā”€ faWrench.d.ts
│   │       ā”œā”€ā”€ faWrench.js
│   │       ā”œā”€ā”€ faX.d.ts
│   │       ā”œā”€ā”€ faX.js
│   │       ā”œā”€ā”€ faXRay.d.ts
│   │       ā”œā”€ā”€ faXRay.js
│   │       ā”œā”€ā”€ faXmark.d.ts
│   │       ā”œā”€ā”€ faXmark.js
│   │       ā”œā”€ā”€ faXmarkCircle.d.ts
│   │       ā”œā”€ā”€ faXmarkCircle.js
│   │       ā”œā”€ā”€ faXmarkSquare.d.ts
│   │       ā”œā”€ā”€ faXmarkSquare.js
│   │       ā”œā”€ā”€ faXmarksLines.d.ts
│   │       ā”œā”€ā”€ faXmarksLines.js
│   │       ā”œā”€ā”€ faY.d.ts
│   │       ā”œā”€ā”€ faY.js
│   │       ā”œā”€ā”€ faYen.d.ts
│   │       ā”œā”€ā”€ faYen.js
│   │       ā”œā”€ā”€ faYenSign.d.ts
│   │       ā”œā”€ā”€ faYenSign.js
│   │       ā”œā”€ā”€ faYinYang.d.ts
│   │       ā”œā”€ā”€ faYinYang.js
│   │       ā”œā”€ā”€ faZ.d.ts
│   │       ā”œā”€ā”€ faZ.js
│   │       ā”œā”€ā”€ faZap.d.ts
│   │       ā”œā”€ā”€ faZap.js
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ index.mjs
│   │       └── package.json
│   ā”œā”€ā”€ @humanfs
│   │   ā”œā”€ā”€ core
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ errors.d.ts
│   │   │   │   ā”œā”€ā”€ fsx.d.ts
│   │   │   │   ā”œā”€ā”€ hfs.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   └── path.d.ts
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ errors.js
│   │   │       ā”œā”€ā”€ hfs.js
│   │   │       ā”œā”€ā”€ index.js
│   │   │       └── path.js
│   │   └── node
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ node-fsx.d.ts
│   │       │   └── node-hfs.d.ts
│   │       ā”œā”€ā”€ node_modules
│   │       │   └── @humanwhocodes
│   │       │       └── retry
│   │       │           ā”œā”€ā”€ LICENSE
│   │       │           ā”œā”€ā”€ README.md
│   │       │           ā”œā”€ā”€ dist
│   │       │           │   ā”œā”€ā”€ retrier.cjs
│   │       │           │   ā”œā”€ā”€ retrier.d.cts
│   │       │           │   ā”œā”€ā”€ retrier.d.ts
│   │       │           │   ā”œā”€ā”€ retrier.js
│   │       │           │   ā”œā”€ā”€ retrier.min.js
│   │       │           │   └── retrier.mjs
│   │       │           └── package.json
│   │       ā”œā”€ā”€ package.json
│   │       └── src
│   │           ā”œā”€ā”€ index.js
│   │           └── node-hfs.js
│   ā”œā”€ā”€ @humanwhocodes
│   │   ā”œā”€ā”€ module-importer
│   │   │   ā”œā”€ā”€ CHANGELOG.md
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ module-importer.cjs
│   │   │   │   ā”œā”€ā”€ module-importer.d.cts
│   │   │   │   ā”œā”€ā”€ module-importer.d.ts
│   │   │   │   └── module-importer.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── src
│   │   │       ā”œā”€ā”€ module-importer.cjs
│   │   │       └── module-importer.js
│   │   └── retry
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ retrier.cjs
│   │       │   ā”œā”€ā”€ retrier.d.cts
│   │       │   ā”œā”€ā”€ retrier.d.ts
│   │       │   ā”œā”€ā”€ retrier.js
│   │       │   ā”œā”€ā”€ retrier.min.js
│   │       │   └── retrier.mjs
│   │       └── package.json
│   ā”œā”€ā”€ @iconify
│   │   ā”œā”€ā”€ types
│   │   │   ā”œā”€ā”€ .prettierrc
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ license.txt
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ pnpm-lock.yaml
│   │   │   ā”œā”€ā”€ provider.d.ts
│   │   │   ā”œā”€ā”€ provider.js
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   └── types.js
│   │   └── utils
│   │       ā”œā”€ā”€ lib
│   │       │   ā”œā”€ā”€ colors
│   │       │   │   ā”œā”€ā”€ index.cjs
│   │       │   │   ā”œā”€ā”€ index.d.cts
│   │       │   │   ā”œā”€ā”€ index.d.mts
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.mjs
│   │       │   │   ā”œā”€ā”€ keywords.cjs
│   │       │   │   ā”œā”€ā”€ keywords.d.cts
│   │       │   │   ā”œā”€ā”€ keywords.d.mts
│   │       │   │   ā”œā”€ā”€ keywords.d.ts
│   │       │   │   ā”œā”€ā”€ keywords.mjs
│   │       │   │   ā”œā”€ā”€ types.cjs
│   │       │   │   ā”œā”€ā”€ types.d.cts
│   │       │   │   ā”œā”€ā”€ types.d.mts
│   │       │   │   ā”œā”€ā”€ types.d.ts
│   │       │   │   └── types.mjs
│   │       │   ā”œā”€ā”€ css
│   │       │   │   ā”œā”€ā”€ common.cjs
│   │       │   │   ā”œā”€ā”€ common.d.cts
│   │       │   │   ā”œā”€ā”€ common.d.mts
│   │       │   │   ā”œā”€ā”€ common.d.ts
│   │       │   │   ā”œā”€ā”€ common.mjs
│   │       │   │   ā”œā”€ā”€ format.cjs
│   │       │   │   ā”œā”€ā”€ format.d.cts
│   │       │   │   ā”œā”€ā”€ format.d.mts
│   │       │   │   ā”œā”€ā”€ format.d.ts
│   │       │   │   ā”œā”€ā”€ format.mjs
│   │       │   │   ā”œā”€ā”€ icon.cjs
│   │       │   │   ā”œā”€ā”€ icon.d.cts
│   │       │   │   ā”œā”€ā”€ icon.d.mts
│   │       │   │   ā”œā”€ā”€ icon.d.ts
│   │       │   │   ā”œā”€ā”€ icon.mjs
│   │       │   │   ā”œā”€ā”€ icons.cjs
│   │       │   │   ā”œā”€ā”€ icons.d.cts
│   │       │   │   ā”œā”€ā”€ icons.d.mts
│   │       │   │   ā”œā”€ā”€ icons.d.ts
│   │       │   │   ā”œā”€ā”€ icons.mjs
│   │       │   │   ā”œā”€ā”€ types.cjs
│   │       │   │   ā”œā”€ā”€ types.d.cts
│   │       │   │   ā”œā”€ā”€ types.d.mts
│   │       │   │   ā”œā”€ā”€ types.d.ts
│   │       │   │   └── types.mjs
│   │       │   ā”œā”€ā”€ customisations
│   │       │   │   ā”œā”€ā”€ bool.cjs
│   │       │   │   ā”œā”€ā”€ bool.d.cts
│   │       │   │   ā”œā”€ā”€ bool.d.mts
│   │       │   │   ā”œā”€ā”€ bool.d.ts
│   │       │   │   ā”œā”€ā”€ bool.mjs
│   │       │   │   ā”œā”€ā”€ defaults.cjs
│   │       │   │   ā”œā”€ā”€ defaults.d.cts
│   │       │   │   ā”œā”€ā”€ defaults.d.mts
│   │       │   │   ā”œā”€ā”€ defaults.d.ts
│   │       │   │   ā”œā”€ā”€ defaults.mjs
│   │       │   │   ā”œā”€ā”€ flip.cjs
│   │       │   │   ā”œā”€ā”€ flip.d.cts
│   │       │   │   ā”œā”€ā”€ flip.d.mts
│   │       │   │   ā”œā”€ā”€ flip.d.ts
│   │       │   │   ā”œā”€ā”€ flip.mjs
│   │       │   │   ā”œā”€ā”€ merge.cjs
│   │       │   │   ā”œā”€ā”€ merge.d.cts
│   │       │   │   ā”œā”€ā”€ merge.d.mts
│   │       │   │   ā”œā”€ā”€ merge.d.ts
│   │       │   │   ā”œā”€ā”€ merge.mjs
│   │       │   │   ā”œā”€ā”€ rotate.cjs
│   │       │   │   ā”œā”€ā”€ rotate.d.cts
│   │       │   │   ā”œā”€ā”€ rotate.d.mts
│   │       │   │   ā”œā”€ā”€ rotate.d.ts
│   │       │   │   └── rotate.mjs
│   │       │   ā”œā”€ā”€ emoji
│   │       │   │   ā”œā”€ā”€ cleanup.cjs
│   │       │   │   ā”œā”€ā”€ cleanup.d.cts
│   │       │   │   ā”œā”€ā”€ cleanup.d.mts
│   │       │   │   ā”œā”€ā”€ cleanup.d.ts
│   │       │   │   ā”œā”€ā”€ cleanup.mjs
│   │       │   │   ā”œā”€ā”€ convert.cjs
│   │       │   │   ā”œā”€ā”€ convert.d.cts
│   │       │   │   ā”œā”€ā”€ convert.d.mts
│   │       │   │   ā”œā”€ā”€ convert.d.ts
│   │       │   │   ā”œā”€ā”€ convert.mjs
│   │       │   │   ā”œā”€ā”€ data.cjs
│   │       │   │   ā”œā”€ā”€ data.d.cts
│   │       │   │   ā”œā”€ā”€ data.d.mts
│   │       │   │   ā”œā”€ā”€ data.d.ts
│   │       │   │   ā”œā”€ā”€ data.mjs
│   │       │   │   ā”œā”€ā”€ format.cjs
│   │       │   │   ā”œā”€ā”€ format.d.cts
│   │       │   │   ā”œā”€ā”€ format.d.mts
│   │       │   │   ā”œā”€ā”€ format.d.ts
│   │       │   │   ā”œā”€ā”€ format.mjs
│   │       │   │   ā”œā”€ā”€ parse.cjs
│   │       │   │   ā”œā”€ā”€ parse.d.cts
│   │       │   │   ā”œā”€ā”€ parse.d.mts
│   │       │   │   ā”œā”€ā”€ parse.d.ts
│   │       │   │   ā”œā”€ā”€ parse.mjs
│   │       │   │   ā”œā”€ā”€ regex
│   │       │   │   │   ā”œā”€ā”€ base.cjs
│   │       │   │   │   ā”œā”€ā”€ base.d.cts
│   │       │   │   │   ā”œā”€ā”€ base.d.mts
│   │       │   │   │   ā”œā”€ā”€ base.d.ts
│   │       │   │   │   ā”œā”€ā”€ base.mjs
│   │       │   │   │   ā”œā”€ā”€ create.cjs
│   │       │   │   │   ā”œā”€ā”€ create.d.cts
│   │       │   │   │   ā”œā”€ā”€ create.d.mts
│   │       │   │   │   ā”œā”€ā”€ create.d.ts
│   │       │   │   │   ā”œā”€ā”€ create.mjs
│   │       │   │   │   ā”œā”€ā”€ numbers.cjs
│   │       │   │   │   ā”œā”€ā”€ numbers.d.cts
│   │       │   │   │   ā”œā”€ā”€ numbers.d.mts
│   │       │   │   │   ā”œā”€ā”€ numbers.d.ts
│   │       │   │   │   ā”œā”€ā”€ numbers.mjs
│   │       │   │   │   ā”œā”€ā”€ similar.cjs
│   │       │   │   │   ā”œā”€ā”€ similar.d.cts
│   │       │   │   │   ā”œā”€ā”€ similar.d.mts
│   │       │   │   │   ā”œā”€ā”€ similar.d.ts
│   │       │   │   │   ā”œā”€ā”€ similar.mjs
│   │       │   │   │   ā”œā”€ā”€ tree.cjs
│   │       │   │   │   ā”œā”€ā”€ tree.d.cts
│   │       │   │   │   ā”œā”€ā”€ tree.d.mts
│   │       │   │   │   ā”œā”€ā”€ tree.d.ts
│   │       │   │   │   └── tree.mjs
│   │       │   │   ā”œā”€ā”€ replace
│   │       │   │   │   ā”œā”€ā”€ find.cjs
│   │       │   │   │   ā”œā”€ā”€ find.d.cts
│   │       │   │   │   ā”œā”€ā”€ find.d.mts
│   │       │   │   │   ā”œā”€ā”€ find.d.ts
│   │       │   │   │   ā”œā”€ā”€ find.mjs
│   │       │   │   │   ā”œā”€ā”€ replace.cjs
│   │       │   │   │   ā”œā”€ā”€ replace.d.cts
│   │       │   │   │   ā”œā”€ā”€ replace.d.mts
│   │       │   │   │   ā”œā”€ā”€ replace.d.ts
│   │       │   │   │   └── replace.mjs
│   │       │   │   └── test
│   │       │   │       ā”œā”€ā”€ components.cjs
│   │       │   │       ā”œā”€ā”€ components.d.cts
│   │       │   │       ā”œā”€ā”€ components.d.mts
│   │       │   │       ā”œā”€ā”€ components.d.ts
│   │       │   │       ā”œā”€ā”€ components.mjs
│   │       │   │       ā”œā”€ā”€ missing.cjs
│   │       │   │       ā”œā”€ā”€ missing.d.cts
│   │       │   │       ā”œā”€ā”€ missing.d.mts
│   │       │   │       ā”œā”€ā”€ missing.d.ts
│   │       │   │       ā”œā”€ā”€ missing.mjs
│   │       │   │       ā”œā”€ā”€ name.cjs
│   │       │   │       ā”œā”€ā”€ name.d.cts
│   │       │   │       ā”œā”€ā”€ name.d.mts
│   │       │   │       ā”œā”€ā”€ name.d.ts
│   │       │   │       ā”œā”€ā”€ name.mjs
│   │       │   │       ā”œā”€ā”€ parse.cjs
│   │       │   │       ā”œā”€ā”€ parse.d.cts
│   │       │   │       ā”œā”€ā”€ parse.d.mts
│   │       │   │       ā”œā”€ā”€ parse.d.ts
│   │       │   │       ā”œā”€ā”€ parse.mjs
│   │       │   │       ā”œā”€ā”€ similar.cjs
│   │       │   │       ā”œā”€ā”€ similar.d.cts
│   │       │   │       ā”œā”€ā”€ similar.d.mts
│   │       │   │       ā”œā”€ā”€ similar.d.ts
│   │       │   │       ā”œā”€ā”€ similar.mjs
│   │       │   │       ā”œā”€ā”€ tree.cjs
│   │       │   │       ā”œā”€ā”€ tree.d.cts
│   │       │   │       ā”œā”€ā”€ tree.d.mts
│   │       │   │       ā”œā”€ā”€ tree.d.ts
│   │       │   │       ā”œā”€ā”€ tree.mjs
│   │       │   │       ā”œā”€ā”€ variations.cjs
│   │       │   │       ā”œā”€ā”€ variations.d.cts
│   │       │   │       ā”œā”€ā”€ variations.d.mts
│   │       │   │       ā”œā”€ā”€ variations.d.ts
│   │       │   │       └── variations.mjs
│   │       │   ā”œā”€ā”€ icon
│   │       │   │   ā”œā”€ā”€ defaults.cjs
│   │       │   │   ā”œā”€ā”€ defaults.d.cts
│   │       │   │   ā”œā”€ā”€ defaults.d.mts
│   │       │   │   ā”œā”€ā”€ defaults.d.ts
│   │       │   │   ā”œā”€ā”€ defaults.mjs
│   │       │   │   ā”œā”€ā”€ merge.cjs
│   │       │   │   ā”œā”€ā”€ merge.d.cts
│   │       │   │   ā”œā”€ā”€ merge.d.mts
│   │       │   │   ā”œā”€ā”€ merge.d.ts
│   │       │   │   ā”œā”€ā”€ merge.mjs
│   │       │   │   ā”œā”€ā”€ name.cjs
│   │       │   │   ā”œā”€ā”€ name.d.cts
│   │       │   │   ā”œā”€ā”€ name.d.mts
│   │       │   │   ā”œā”€ā”€ name.d.ts
│   │       │   │   ā”œā”€ā”€ name.mjs
│   │       │   │   ā”œā”€ā”€ square.cjs
│   │       │   │   ā”œā”€ā”€ square.d.cts
│   │       │   │   ā”œā”€ā”€ square.d.mts
│   │       │   │   ā”œā”€ā”€ square.d.ts
│   │       │   │   ā”œā”€ā”€ square.mjs
│   │       │   │   ā”œā”€ā”€ transformations.cjs
│   │       │   │   ā”œā”€ā”€ transformations.d.cts
│   │       │   │   ā”œā”€ā”€ transformations.d.mts
│   │       │   │   ā”œā”€ā”€ transformations.d.ts
│   │       │   │   └── transformations.mjs
│   │       │   ā”œā”€ā”€ icon-set
│   │       │   │   ā”œā”€ā”€ convert-info.cjs
│   │       │   │   ā”œā”€ā”€ convert-info.d.cts
│   │       │   │   ā”œā”€ā”€ convert-info.d.mts
│   │       │   │   ā”œā”€ā”€ convert-info.d.ts
│   │       │   │   ā”œā”€ā”€ convert-info.mjs
│   │       │   │   ā”œā”€ā”€ expand.cjs
│   │       │   │   ā”œā”€ā”€ expand.d.cts
│   │       │   │   ā”œā”€ā”€ expand.d.mts
│   │       │   │   ā”œā”€ā”€ expand.d.ts
│   │       │   │   ā”œā”€ā”€ expand.mjs
│   │       │   │   ā”œā”€ā”€ get-icon.cjs
│   │       │   │   ā”œā”€ā”€ get-icon.d.cts
│   │       │   │   ā”œā”€ā”€ get-icon.d.mts
│   │       │   │   ā”œā”€ā”€ get-icon.d.ts
│   │       │   │   ā”œā”€ā”€ get-icon.mjs
│   │       │   │   ā”œā”€ā”€ get-icons.cjs
│   │       │   │   ā”œā”€ā”€ get-icons.d.cts
│   │       │   │   ā”œā”€ā”€ get-icons.d.mts
│   │       │   │   ā”œā”€ā”€ get-icons.d.ts
│   │       │   │   ā”œā”€ā”€ get-icons.mjs
│   │       │   │   ā”œā”€ā”€ minify.cjs
│   │       │   │   ā”œā”€ā”€ minify.d.cts
│   │       │   │   ā”œā”€ā”€ minify.d.mts
│   │       │   │   ā”œā”€ā”€ minify.d.ts
│   │       │   │   ā”œā”€ā”€ minify.mjs
│   │       │   │   ā”œā”€ā”€ parse.cjs
│   │       │   │   ā”œā”€ā”€ parse.d.cts
│   │       │   │   ā”œā”€ā”€ parse.d.mts
│   │       │   │   ā”œā”€ā”€ parse.d.ts
│   │       │   │   ā”œā”€ā”€ parse.mjs
│   │       │   │   ā”œā”€ā”€ tree.cjs
│   │       │   │   ā”œā”€ā”€ tree.d.cts
│   │       │   │   ā”œā”€ā”€ tree.d.mts
│   │       │   │   ā”œā”€ā”€ tree.d.ts
│   │       │   │   ā”œā”€ā”€ tree.mjs
│   │       │   │   ā”œā”€ā”€ validate-basic.cjs
│   │       │   │   ā”œā”€ā”€ validate-basic.d.cts
│   │       │   │   ā”œā”€ā”€ validate-basic.d.mts
│   │       │   │   ā”œā”€ā”€ validate-basic.d.ts
│   │       │   │   ā”œā”€ā”€ validate-basic.mjs
│   │       │   │   ā”œā”€ā”€ validate.cjs
│   │       │   │   ā”œā”€ā”€ validate.d.cts
│   │       │   │   ā”œā”€ā”€ validate.d.mts
│   │       │   │   ā”œā”€ā”€ validate.d.ts
│   │       │   │   └── validate.mjs
│   │       │   ā”œā”€ā”€ index.cjs
│   │       │   ā”œā”€ā”€ index.d.cts
│   │       │   ā”œā”€ā”€ index.d.mts
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.mjs
│   │       │   ā”œā”€ā”€ loader
│   │       │   │   ā”œā”€ā”€ custom.cjs
│   │       │   │   ā”œā”€ā”€ custom.d.cts
│   │       │   │   ā”œā”€ā”€ custom.d.mts
│   │       │   │   ā”œā”€ā”€ custom.d.ts
│   │       │   │   ā”œā”€ā”€ custom.mjs
│   │       │   │   ā”œā”€ā”€ external-pkg.cjs
│   │       │   │   ā”œā”€ā”€ external-pkg.d.cts
│   │       │   │   ā”œā”€ā”€ external-pkg.d.mts
│   │       │   │   ā”œā”€ā”€ external-pkg.d.ts
│   │       │   │   ā”œā”€ā”€ external-pkg.mjs
│   │       │   │   ā”œā”€ā”€ fs.cjs
│   │       │   │   ā”œā”€ā”€ fs.d.cts
│   │       │   │   ā”œā”€ā”€ fs.d.mts
│   │       │   │   ā”œā”€ā”€ fs.d.ts
│   │       │   │   ā”œā”€ā”€ fs.mjs
│   │       │   │   ā”œā”€ā”€ install-pkg.cjs
│   │       │   │   ā”œā”€ā”€ install-pkg.d.cts
│   │       │   │   ā”œā”€ā”€ install-pkg.d.mts
│   │       │   │   ā”œā”€ā”€ install-pkg.d.ts
│   │       │   │   ā”œā”€ā”€ install-pkg.mjs
│   │       │   │   ā”œā”€ā”€ loader.cjs
│   │       │   │   ā”œā”€ā”€ loader.d.cts
│   │       │   │   ā”œā”€ā”€ loader.d.mts
│   │       │   │   ā”œā”€ā”€ loader.d.ts
│   │       │   │   ā”œā”€ā”€ loader.mjs
│   │       │   │   ā”œā”€ā”€ modern.cjs
│   │       │   │   ā”œā”€ā”€ modern.d.cts
│   │       │   │   ā”œā”€ā”€ modern.d.mts
│   │       │   │   ā”œā”€ā”€ modern.d.ts
│   │       │   │   ā”œā”€ā”€ modern.mjs
│   │       │   │   ā”œā”€ā”€ node-loader.cjs
│   │       │   │   ā”œā”€ā”€ node-loader.d.cts
│   │       │   │   ā”œā”€ā”€ node-loader.d.mts
│   │       │   │   ā”œā”€ā”€ node-loader.d.ts
│   │       │   │   ā”œā”€ā”€ node-loader.mjs
│   │       │   │   ā”œā”€ā”€ node-loaders.cjs
│   │       │   │   ā”œā”€ā”€ node-loaders.d.cts
│   │       │   │   ā”œā”€ā”€ node-loaders.d.mts
│   │       │   │   ā”œā”€ā”€ node-loaders.d.ts
│   │       │   │   ā”œā”€ā”€ node-loaders.mjs
│   │       │   │   ā”œā”€ā”€ types.cjs
│   │       │   │   ā”œā”€ā”€ types.d.cts
│   │       │   │   ā”œā”€ā”€ types.d.mts
│   │       │   │   ā”œā”€ā”€ types.d.ts
│   │       │   │   ā”œā”€ā”€ types.mjs
│   │       │   │   ā”œā”€ā”€ utils.cjs
│   │       │   │   ā”œā”€ā”€ utils.d.cts
│   │       │   │   ā”œā”€ā”€ utils.d.mts
│   │       │   │   ā”œā”€ā”€ utils.d.ts
│   │       │   │   ā”œā”€ā”€ utils.mjs
│   │       │   │   ā”œā”€ā”€ warn.cjs
│   │       │   │   ā”œā”€ā”€ warn.d.cts
│   │       │   │   ā”œā”€ā”€ warn.d.mts
│   │       │   │   ā”œā”€ā”€ warn.d.ts
│   │       │   │   └── warn.mjs
│   │       │   ā”œā”€ā”€ misc
│   │       │   │   ā”œā”€ā”€ licenses.cjs
│   │       │   │   ā”œā”€ā”€ licenses.d.cts
│   │       │   │   ā”œā”€ā”€ licenses.d.mts
│   │       │   │   ā”œā”€ā”€ licenses.d.ts
│   │       │   │   ā”œā”€ā”€ licenses.mjs
│   │       │   │   ā”œā”€ā”€ objects.cjs
│   │       │   │   ā”œā”€ā”€ objects.d.cts
│   │       │   │   ā”œā”€ā”€ objects.d.mts
│   │       │   │   ā”œā”€ā”€ objects.d.ts
│   │       │   │   ā”œā”€ā”€ objects.mjs
│   │       │   │   ā”œā”€ā”€ strings.cjs
│   │       │   │   ā”œā”€ā”€ strings.d.cts
│   │       │   │   ā”œā”€ā”€ strings.d.mts
│   │       │   │   ā”œā”€ā”€ strings.d.ts
│   │       │   │   ā”œā”€ā”€ strings.mjs
│   │       │   │   ā”œā”€ā”€ title.cjs
│   │       │   │   ā”œā”€ā”€ title.d.cts
│   │       │   │   ā”œā”€ā”€ title.d.mts
│   │       │   │   ā”œā”€ā”€ title.d.ts
│   │       │   │   └── title.mjs
│   │       │   └── svg
│   │       │       ā”œā”€ā”€ build.cjs
│   │       │       ā”œā”€ā”€ build.d.cts
│   │       │       ā”œā”€ā”€ build.d.mts
│   │       │       ā”œā”€ā”€ build.d.ts
│   │       │       ā”œā”€ā”€ build.mjs
│   │       │       ā”œā”€ā”€ defs.cjs
│   │       │       ā”œā”€ā”€ defs.d.cts
│   │       │       ā”œā”€ā”€ defs.d.mts
│   │       │       ā”œā”€ā”€ defs.d.ts
│   │       │       ā”œā”€ā”€ defs.mjs
│   │       │       ā”œā”€ā”€ encode-svg-for-css.cjs
│   │       │       ā”œā”€ā”€ encode-svg-for-css.d.cts
│   │       │       ā”œā”€ā”€ encode-svg-for-css.d.mts
│   │       │       ā”œā”€ā”€ encode-svg-for-css.d.ts
│   │       │       ā”œā”€ā”€ encode-svg-for-css.mjs
│   │       │       ā”œā”€ā”€ html.cjs
│   │       │       ā”œā”€ā”€ html.d.cts
│   │       │       ā”œā”€ā”€ html.d.mts
│   │       │       ā”œā”€ā”€ html.d.ts
│   │       │       ā”œā”€ā”€ html.mjs
│   │       │       ā”œā”€ā”€ id.cjs
│   │       │       ā”œā”€ā”€ id.d.cts
│   │       │       ā”œā”€ā”€ id.d.mts
│   │       │       ā”œā”€ā”€ id.d.ts
│   │       │       ā”œā”€ā”€ id.mjs
│   │       │       ā”œā”€ā”€ inner-html.cjs
│   │       │       ā”œā”€ā”€ inner-html.d.cts
│   │       │       ā”œā”€ā”€ inner-html.d.mts
│   │       │       ā”œā”€ā”€ inner-html.d.ts
│   │       │       ā”œā”€ā”€ inner-html.mjs
│   │       │       ā”œā”€ā”€ parse.cjs
│   │       │       ā”œā”€ā”€ parse.d.cts
│   │       │       ā”œā”€ā”€ parse.d.mts
│   │       │       ā”œā”€ā”€ parse.d.ts
│   │       │       ā”œā”€ā”€ parse.mjs
│   │       │       ā”œā”€ā”€ pretty.cjs
│   │       │       ā”œā”€ā”€ pretty.d.cts
│   │       │       ā”œā”€ā”€ pretty.d.mts
│   │       │       ā”œā”€ā”€ pretty.d.ts
│   │       │       ā”œā”€ā”€ pretty.mjs
│   │       │       ā”œā”€ā”€ size.cjs
│   │       │       ā”œā”€ā”€ size.d.cts
│   │       │       ā”œā”€ā”€ size.d.mts
│   │       │       ā”œā”€ā”€ size.d.ts
│   │       │       ā”œā”€ā”€ size.mjs
│   │       │       ā”œā”€ā”€ trim.cjs
│   │       │       ā”œā”€ā”€ trim.d.cts
│   │       │       ā”œā”€ā”€ trim.d.mts
│   │       │       ā”œā”€ā”€ trim.d.ts
│   │       │       ā”œā”€ā”€ trim.mjs
│   │       │       ā”œā”€ā”€ url.cjs
│   │       │       ā”œā”€ā”€ url.d.cts
│   │       │       ā”œā”€ā”€ url.d.mts
│   │       │       ā”œā”€ā”€ url.d.ts
│   │       │       ā”œā”€ā”€ url.mjs
│   │       │       ā”œā”€ā”€ viewbox.cjs
│   │       │       ā”œā”€ā”€ viewbox.d.cts
│   │       │       ā”œā”€ā”€ viewbox.d.mts
│   │       │       ā”œā”€ā”€ viewbox.d.ts
│   │       │       └── viewbox.mjs
│   │       ā”œā”€ā”€ license.txt
│   │       ā”œā”€ā”€ node_modules
│   │       │   └── globals
│   │       │       ā”œā”€ā”€ globals.json
│   │       │       ā”œā”€ā”€ index.d.ts
│   │       │       ā”œā”€ā”€ index.js
│   │       │       ā”œā”€ā”€ license
│   │       │       ā”œā”€ā”€ package.json
│   │       │       └── readme.md
│   │       ā”œā”€ā”€ package.json
│   │       └── readme.md
│   ā”œā”€ā”€ @img
│   │   ā”œā”€ā”€ sharp-libvips-linux-x64
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   ā”œā”€ā”€ glib-2.0
│   │   │   │   │   └── include
│   │   │   │   │       └── glibconfig.h
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── libvips-cpp.so.42
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── versions.json
│   │   ā”œā”€ā”€ sharp-libvips-linuxmusl-x64
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   ā”œā”€ā”€ glib-2.0
│   │   │   │   │   └── include
│   │   │   │   │       └── glibconfig.h
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── libvips-cpp.so.42
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── versions.json
│   │   ā”œā”€ā”€ sharp-linux-x64
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ lib
│   │   │   │   └── sharp-linux-x64.node
│   │   │   └── package.json
│   │   └── sharp-linuxmusl-x64
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ lib
│   │       │   └── sharp-linuxmusl-x64.node
│   │       └── package.json
│   ā”œā”€ā”€ @isaacs
│   │   └── cliui
│   │       ā”œā”€ā”€ LICENSE.txt
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ build
│   │       │   ā”œā”€ā”€ index.cjs
│   │       │   ā”œā”€ā”€ index.d.cts
│   │       │   └── lib
│   │       │       └── index.js
│   │       ā”œā”€ā”€ index.mjs
│   │       ā”œā”€ā”€ node_modules
│   │       │   ā”œā”€ā”€ emoji-regex
│   │       │   │   ā”œā”€ā”€ LICENSE-MIT.txt
│   │       │   │   ā”œā”€ā”€ README.md
│   │       │   │   ā”œā”€ā”€ RGI_Emoji.d.ts
│   │       │   │   ā”œā”€ā”€ RGI_Emoji.js
│   │       │   │   ā”œā”€ā”€ es2015
│   │       │   │   │   ā”œā”€ā”€ RGI_Emoji.d.ts
│   │       │   │   │   ā”œā”€ā”€ RGI_Emoji.js
│   │       │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   ā”œā”€ā”€ index.js
│   │       │   │   │   ā”œā”€ā”€ text.d.ts
│   │       │   │   │   └── text.js
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ package.json
│   │       │   │   ā”œā”€ā”€ text.d.ts
│   │       │   │   └── text.js
│   │       │   ā”œā”€ā”€ string-width
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ license
│   │       │   │   ā”œā”€ā”€ package.json
│   │       │   │   └── readme.md
│   │       │   └── wrap-ansi
│   │       │       ā”œā”€ā”€ index.d.ts
│   │       │       ā”œā”€ā”€ index.js
│   │       │       ā”œā”€ā”€ license
│   │       │       ā”œā”€ā”€ package.json
│   │       │       └── readme.md
│   │       └── package.json
│   ā”œā”€ā”€ @istanbuljs
│   │   └── schema
│   │       ā”œā”€ā”€ CHANGELOG.md
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ default-exclude.js
│   │       ā”œā”€ā”€ default-extension.js
│   │       ā”œā”€ā”€ index.js
│   │       └── package.json
│   ā”œā”€ā”€ @jridgewell
│   │   ā”œā”€ā”€ gen-mapping
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ gen-mapping.mjs
│   │   │   │   ā”œā”€ā”€ gen-mapping.mjs.map
│   │   │   │   ā”œā”€ā”€ gen-mapping.umd.js
│   │   │   │   ā”œā”€ā”€ gen-mapping.umd.js.map
│   │   │   │   └── types
│   │   │   │       ā”œā”€ā”€ gen-mapping.d.ts
│   │   │   │       ā”œā”€ā”€ set-array.d.ts
│   │   │   │       ā”œā”€ā”€ sourcemap-segment.d.ts
│   │   │   │       └── types.d.ts
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ src
│   │   │   │   ā”œā”€ā”€ gen-mapping.ts
│   │   │   │   ā”œā”€ā”€ set-array.ts
│   │   │   │   ā”œā”€ā”€ sourcemap-segment.ts
│   │   │   │   └── types.ts
│   │   │   └── types
│   │   │       ā”œā”€ā”€ gen-mapping.d.cts
│   │   │       ā”œā”€ā”€ gen-mapping.d.cts.map
│   │   │       ā”œā”€ā”€ gen-mapping.d.mts
│   │   │       ā”œā”€ā”€ gen-mapping.d.mts.map
│   │   │       ā”œā”€ā”€ set-array.d.cts
│   │   │       ā”œā”€ā”€ set-array.d.cts.map
│   │   │       ā”œā”€ā”€ set-array.d.mts
│   │   │       ā”œā”€ā”€ set-array.d.mts.map
│   │   │       ā”œā”€ā”€ sourcemap-segment.d.cts
│   │   │       ā”œā”€ā”€ sourcemap-segment.d.cts.map
│   │   │       ā”œā”€ā”€ sourcemap-segment.d.mts
│   │   │       ā”œā”€ā”€ sourcemap-segment.d.mts.map
│   │   │       ā”œā”€ā”€ types.d.cts
│   │   │       ā”œā”€ā”€ types.d.cts.map
│   │   │       ā”œā”€ā”€ types.d.mts
│   │   │       └── types.d.mts.map
│   │   ā”œā”€ā”€ resolve-uri
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ resolve-uri.mjs
│   │   │   │   ā”œā”€ā”€ resolve-uri.mjs.map
│   │   │   │   ā”œā”€ā”€ resolve-uri.umd.js
│   │   │   │   ā”œā”€ā”€ resolve-uri.umd.js.map
│   │   │   │   └── types
│   │   │   │       └── resolve-uri.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ source-map
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ source-map.mjs
│   │   │   │   ā”œā”€ā”€ source-map.mjs.map
│   │   │   │   ā”œā”€ā”€ source-map.umd.js
│   │   │   │   └── source-map.umd.js.map
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ src
│   │   │   │   └── source-map.ts
│   │   │   └── types
│   │   │       ā”œā”€ā”€ source-map.d.cts
│   │   │       ā”œā”€ā”€ source-map.d.cts.map
│   │   │       ā”œā”€ā”€ source-map.d.mts
│   │   │       └── source-map.d.mts.map
│   │   ā”œā”€ā”€ sourcemap-codec
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ sourcemap-codec.mjs
│   │   │   │   ā”œā”€ā”€ sourcemap-codec.mjs.map
│   │   │   │   ā”œā”€ā”€ sourcemap-codec.umd.js
│   │   │   │   └── sourcemap-codec.umd.js.map
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ src
│   │   │   │   ā”œā”€ā”€ scopes.ts
│   │   │   │   ā”œā”€ā”€ sourcemap-codec.ts
│   │   │   │   ā”œā”€ā”€ strings.ts
│   │   │   │   └── vlq.ts
│   │   │   └── types
│   │   │       ā”œā”€ā”€ scopes.d.cts
│   │   │       ā”œā”€ā”€ scopes.d.cts.map
│   │   │       ā”œā”€ā”€ scopes.d.mts
│   │   │       ā”œā”€ā”€ scopes.d.mts.map
│   │   │       ā”œā”€ā”€ sourcemap-codec.d.cts
│   │   │       ā”œā”€ā”€ sourcemap-codec.d.cts.map
│   │   │       ā”œā”€ā”€ sourcemap-codec.d.mts
│   │   │       ā”œā”€ā”€ sourcemap-codec.d.mts.map
│   │   │       ā”œā”€ā”€ strings.d.cts
│   │   │       ā”œā”€ā”€ strings.d.cts.map
│   │   │       ā”œā”€ā”€ strings.d.mts
│   │   │       ā”œā”€ā”€ strings.d.mts.map
│   │   │       ā”œā”€ā”€ vlq.d.cts
│   │   │       ā”œā”€ā”€ vlq.d.cts.map
│   │   │       ā”œā”€ā”€ vlq.d.mts
│   │   │       └── vlq.d.mts.map
│   │   └── trace-mapping
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ trace-mapping.mjs
│   │       │   ā”œā”€ā”€ trace-mapping.mjs.map
│   │       │   ā”œā”€ā”€ trace-mapping.umd.js
│   │       │   └── trace-mapping.umd.js.map
│   │       ā”œā”€ā”€ package.json
│   │       ā”œā”€ā”€ src
│   │       │   ā”œā”€ā”€ binary-search.ts
│   │       │   ā”œā”€ā”€ by-source.ts
│   │       │   ā”œā”€ā”€ flatten-map.ts
│   │       │   ā”œā”€ā”€ resolve.ts
│   │       │   ā”œā”€ā”€ sort.ts
│   │       │   ā”œā”€ā”€ sourcemap-segment.ts
│   │       │   ā”œā”€ā”€ strip-filename.ts
│   │       │   ā”œā”€ā”€ trace-mapping.ts
│   │       │   └── types.ts
│   │       └── types
│   │           ā”œā”€ā”€ binary-search.d.cts
│   │           ā”œā”€ā”€ binary-search.d.cts.map
│   │           ā”œā”€ā”€ binary-search.d.mts
│   │           ā”œā”€ā”€ binary-search.d.mts.map
│   │           ā”œā”€ā”€ by-source.d.cts
│   │           ā”œā”€ā”€ by-source.d.cts.map
│   │           ā”œā”€ā”€ by-source.d.mts
│   │           ā”œā”€ā”€ by-source.d.mts.map
│   │           ā”œā”€ā”€ flatten-map.d.cts
│   │           ā”œā”€ā”€ flatten-map.d.cts.map
│   │           ā”œā”€ā”€ flatten-map.d.mts
│   │           ā”œā”€ā”€ flatten-map.d.mts.map
│   │           ā”œā”€ā”€ resolve.d.cts
│   │           ā”œā”€ā”€ resolve.d.cts.map
│   │           ā”œā”€ā”€ resolve.d.mts
│   │           ā”œā”€ā”€ resolve.d.mts.map
│   │           ā”œā”€ā”€ sort.d.cts
│   │           ā”œā”€ā”€ sort.d.cts.map
│   │           ā”œā”€ā”€ sort.d.mts
│   │           ā”œā”€ā”€ sort.d.mts.map
│   │           ā”œā”€ā”€ sourcemap-segment.d.cts
│   │           ā”œā”€ā”€ sourcemap-segment.d.cts.map
│   │           ā”œā”€ā”€ sourcemap-segment.d.mts
│   │           ā”œā”€ā”€ sourcemap-segment.d.mts.map
│   │           ā”œā”€ā”€ strip-filename.d.cts
│   │           ā”œā”€ā”€ strip-filename.d.cts.map
│   │           ā”œā”€ā”€ strip-filename.d.mts
│   │           ā”œā”€ā”€ strip-filename.d.mts.map
│   │           ā”œā”€ā”€ trace-mapping.d.cts
│   │           ā”œā”€ā”€ trace-mapping.d.cts.map
│   │           ā”œā”€ā”€ trace-mapping.d.mts
│   │           ā”œā”€ā”€ trace-mapping.d.mts.map
│   │           ā”œā”€ā”€ types.d.cts
│   │           ā”œā”€ā”€ types.d.cts.map
│   │           ā”œā”€ā”€ types.d.mts
│   │           └── types.d.mts.map
│   ā”œā”€ā”€ @kevingimbel
│   │   └── eleventy-plugin-mermaid
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ mermaid-11ty.js
│   │       └── package.json
│   ā”œā”€ā”€ @mermaid-js
│   │   └── parser
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ chunks
│   │       │   │   ā”œā”€ā”€ mermaid-parser.core
│   │       │   │   │   ā”œā”€ā”€ architecture-O4VJ6CD3.mjs
│   │       │   │   │   ā”œā”€ā”€ architecture-O4VJ6CD3.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-4KMFLZZN.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-4KMFLZZN.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-BN7GFLIU.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-BN7GFLIU.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-JEIROHC2.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-JEIROHC2.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-KMC2YHZD.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-KMC2YHZD.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-T44TD3VJ.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-T44TD3VJ.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-WFRQ32O7.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-WFRQ32O7.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-WFWHJNB7.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-WFWHJNB7.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-XRWGC2XP.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-XRWGC2XP.mjs.map
│   │       │   │   │   ā”œā”€ā”€ gitGraph-ZV4HHKMB.mjs
│   │       │   │   │   ā”œā”€ā”€ gitGraph-ZV4HHKMB.mjs.map
│   │       │   │   │   ā”œā”€ā”€ info-63CPKGFF.mjs
│   │       │   │   │   ā”œā”€ā”€ info-63CPKGFF.mjs.map
│   │       │   │   │   ā”œā”€ā”€ packet-HUATNLJX.mjs
│   │       │   │   │   ā”œā”€ā”€ packet-HUATNLJX.mjs.map
│   │       │   │   │   ā”œā”€ā”€ pie-WTHONI2E.mjs
│   │       │   │   │   ā”œā”€ā”€ pie-WTHONI2E.mjs.map
│   │       │   │   │   ā”œā”€ā”€ radar-NJJJXTRR.mjs
│   │       │   │   │   ā”œā”€ā”€ radar-NJJJXTRR.mjs.map
│   │       │   │   │   ā”œā”€ā”€ treemap-75Q7IDZK.mjs
│   │       │   │   │   └── treemap-75Q7IDZK.mjs.map
│   │       │   │   ā”œā”€ā”€ mermaid-parser.esm
│   │       │   │   │   ā”œā”€ā”€ architecture-J7DJDIMT.mjs
│   │       │   │   │   ā”œā”€ā”€ architecture-J7DJDIMT.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-6JAFRMS4.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-6JAFRMS4.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-ATVU6GUO.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-ATVU6GUO.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-E6BFGAZB.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-E6BFGAZB.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-HZVAV7TV.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-HZVAV7TV.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-KQEQRWEF.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-KQEQRWEF.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-KULZ7DQI.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-KULZ7DQI.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-WVIFXK7E.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-WVIFXK7E.mjs.map
│   │       │   │   │   ā”œā”€ā”€ chunk-ZP5T76W3.mjs
│   │       │   │   │   ā”œā”€ā”€ chunk-ZP5T76W3.mjs.map
│   │       │   │   │   ā”œā”€ā”€ gitGraph-OIBXFEDD.mjs
│   │       │   │   │   ā”œā”€ā”€ gitGraph-OIBXFEDD.mjs.map
│   │       │   │   │   ā”œā”€ā”€ info-UQISSPIN.mjs
│   │       │   │   │   ā”œā”€ā”€ info-UQISSPIN.mjs.map
│   │       │   │   │   ā”œā”€ā”€ packet-JSF7BOEX.mjs
│   │       │   │   │   ā”œā”€ā”€ packet-JSF7BOEX.mjs.map
│   │       │   │   │   ā”œā”€ā”€ pie-QIQ4QLST.mjs
│   │       │   │   │   ā”œā”€ā”€ pie-QIQ4QLST.mjs.map
│   │       │   │   │   ā”œā”€ā”€ radar-E5BWNQJE.mjs
│   │       │   │   │   ā”œā”€ā”€ radar-E5BWNQJE.mjs.map
│   │       │   │   │   ā”œā”€ā”€ treemap-YYIW57UO.mjs
│   │       │   │   │   └── treemap-YYIW57UO.mjs.map
│   │       │   │   └── mermaid-parser.esm.min
│   │       │   │       ā”œā”€ā”€ architecture-FU5HYLCZ.mjs
│   │       │   │       ā”œā”€ā”€ architecture-FU5HYLCZ.mjs.map
│   │       │   │       ā”œā”€ā”€ chunk-CT2MDY5Y.mjs
│   │       │   │       ā”œā”€ā”€ chunk-CT2MDY5Y.mjs.map
│   │       │   │       ā”œā”€ā”€ chunk-CX7FH56F.mjs
│   │       │   │       ā”œā”€ā”€ chunk-CX7FH56F.mjs.map
│   │       │   │       ā”œā”€ā”€ chunk-EHKIH7Q3.mjs
│   │       │   │       ā”œā”€ā”€ chunk-EHKIH7Q3.mjs.map
│   │       │   │       ā”œā”€ā”€ chunk-F25RAXUP.mjs
│   │       │   │       ā”œā”€ā”€ chunk-F25RAXUP.mjs.map
│   │       │   │       ā”œā”€ā”€ chunk-KS5BQUQM.mjs
│   │       │   │       ā”œā”€ā”€ chunk-KS5BQUQM.mjs.map
│   │       │   │       ā”œā”€ā”€ chunk-RVR6ABWL.mjs
│   │       │   │       ā”œā”€ā”€ chunk-RVR6ABWL.mjs.map
│   │       │   │       ā”œā”€ā”€ chunk-T65YDB4T.mjs
│   │       │   │       ā”œā”€ā”€ chunk-T65YDB4T.mjs.map
│   │       │   │       ā”œā”€ā”€ chunk-YKHX5XWM.mjs
│   │       │   │       ā”œā”€ā”€ chunk-YKHX5XWM.mjs.map
│   │       │   │       ā”œā”€ā”€ gitGraph-56UUAWHE.mjs
│   │       │   │       ā”œā”€ā”€ gitGraph-56UUAWHE.mjs.map
│   │       │   │       ā”œā”€ā”€ info-5OV7KV3E.mjs
│   │       │   │       ā”œā”€ā”€ info-5OV7KV3E.mjs.map
│   │       │   │       ā”œā”€ā”€ packet-LES5I6CZ.mjs
│   │       │   │       ā”œā”€ā”€ packet-LES5I6CZ.mjs.map
│   │       │   │       ā”œā”€ā”€ pie-L5XLBAPG.mjs
│   │       │   │       ā”œā”€ā”€ pie-L5XLBAPG.mjs.map
│   │       │   │       ā”œā”€ā”€ radar-MSWLDYLH.mjs
│   │       │   │       ā”œā”€ā”€ radar-MSWLDYLH.mjs.map
│   │       │   │       ā”œā”€ā”€ treemap-2RLXC6CK.mjs
│   │       │   │       └── treemap-2RLXC6CK.mjs.map
│   │       │   ā”œā”€ā”€ mermaid-parser.core.mjs
│   │       │   ā”œā”€ā”€ mermaid-parser.core.mjs.map
│   │       │   ā”œā”€ā”€ mermaid-parser.esm.min.mjs
│   │       │   ā”œā”€ā”€ mermaid-parser.esm.min.mjs.map
│   │       │   ā”œā”€ā”€ mermaid-parser.esm.mjs
│   │       │   ā”œā”€ā”€ mermaid-parser.esm.mjs.map
│   │       │   ā”œā”€ā”€ src
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ language
│   │       │   │   │   ā”œā”€ā”€ architecture
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ module.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ tokenBuilder.d.ts
│   │       │   │   │   │   └── valueConverter.d.ts
│   │       │   │   │   ā”œā”€ā”€ common
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ matcher.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ tokenBuilder.d.ts
│   │       │   │   │   │   └── valueConverter.d.ts
│   │       │   │   │   ā”œā”€ā”€ generated
│   │       │   │   │   │   ā”œā”€ā”€ ast.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ grammar.d.ts
│   │       │   │   │   │   └── module.d.ts
│   │       │   │   │   ā”œā”€ā”€ gitGraph
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ module.d.ts
│   │       │   │   │   │   └── tokenBuilder.d.ts
│   │       │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   ā”œā”€ā”€ info
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ module.d.ts
│   │       │   │   │   │   └── tokenBuilder.d.ts
│   │       │   │   │   ā”œā”€ā”€ packet
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ module.d.ts
│   │       │   │   │   │   └── tokenBuilder.d.ts
│   │       │   │   │   ā”œā”€ā”€ pie
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ module.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ tokenBuilder.d.ts
│   │       │   │   │   │   └── valueConverter.d.ts
│   │       │   │   │   ā”œā”€ā”€ radar
│   │       │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   │   │   ā”œā”€ā”€ module.d.ts
│   │       │   │   │   │   └── tokenBuilder.d.ts
│   │       │   │   │   └── treemap
│   │       │   │   │       ā”œā”€ā”€ index.d.ts
│   │       │   │   │       ā”œā”€ā”€ module.d.ts
│   │       │   │   │       ā”œā”€ā”€ tokenBuilder.d.ts
│   │       │   │   │       ā”œā”€ā”€ treemap-validator.d.ts
│   │       │   │   │       └── valueConverter.d.ts
│   │       │   │   └── parse.d.ts
│   │       │   └── tests
│   │       │       ā”œā”€ā”€ architecture.test.d.ts
│   │       │       ā”œā”€ā”€ gitGraph.test.d.ts
│   │       │       ā”œā”€ā”€ info.test.d.ts
│   │       │       ā”œā”€ā”€ packet.test.d.ts
│   │       │       ā”œā”€ā”€ pie.test.d.ts
│   │       │       ā”œā”€ā”€ radar.test.d.ts
│   │       │       ā”œā”€ā”€ test-util.d.ts
│   │       │       └── treemap.test.d.ts
│   │       └── package.json
│   ā”œā”€ā”€ @mixmark-io
│   │   └── domino
│   │       ā”œā”€ā”€ .gitmodules
│   │       ā”œā”€ā”€ .mocharc.json
│   │       ā”œā”€ā”€ .nvmrc
│   │       ā”œā”€ā”€ .yarn
│   │       │   ā”œā”€ā”€ plugins
│   │       │   │   └── @yarnpkg
│   │       │   │       └── plugin-version.cjs
│   │       │   └── versions
│   │       │       └── 78b6ef77.yml
│   │       ā”œā”€ā”€ CHANGELOG.md
│   │       ā”œā”€ā”€ CONTRIBUTING.md
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ lib
│   │       │   ā”œā”€ā”€ CSSStyleDeclaration.js
│   │       │   ā”œā”€ā”€ CharacterData.js
│   │       │   ā”œā”€ā”€ ChildNode.js
│   │       │   ā”œā”€ā”€ Comment.js
│   │       │   ā”œā”€ā”€ ContainerNode.js
│   │       │   ā”œā”€ā”€ CustomEvent.js
│   │       │   ā”œā”€ā”€ DOMException.js
│   │       │   ā”œā”€ā”€ DOMImplementation.js
│   │       │   ā”œā”€ā”€ DOMTokenList.js
│   │       │   ā”œā”€ā”€ Document.js
│   │       │   ā”œā”€ā”€ DocumentFragment.js
│   │       │   ā”œā”€ā”€ DocumentType.js
│   │       │   ā”œā”€ā”€ Element.js
│   │       │   ā”œā”€ā”€ Event.js
│   │       │   ā”œā”€ā”€ EventTarget.js
│   │       │   ā”œā”€ā”€ FilteredElementList.js
│   │       │   ā”œā”€ā”€ HTMLParser.js
│   │       │   ā”œā”€ā”€ Leaf.js
│   │       │   ā”œā”€ā”€ LinkedList.js
│   │       │   ā”œā”€ā”€ Location.js
│   │       │   ā”œā”€ā”€ MouseEvent.js
│   │       │   ā”œā”€ā”€ MutationConstants.js
│   │       │   ā”œā”€ā”€ NamedNodeMap.js
│   │       │   ā”œā”€ā”€ NavigatorID.js
│   │       │   ā”œā”€ā”€ Node.js
│   │       │   ā”œā”€ā”€ NodeFilter.js
│   │       │   ā”œā”€ā”€ NodeIterator.js
│   │       │   ā”œā”€ā”€ NodeList.es5.js
│   │       │   ā”œā”€ā”€ NodeList.es6.js
│   │       │   ā”œā”€ā”€ NodeList.js
│   │       │   ā”œā”€ā”€ NodeTraversal.js
│   │       │   ā”œā”€ā”€ NodeUtils.js
│   │       │   ā”œā”€ā”€ NonDocumentTypeChildNode.js
│   │       │   ā”œā”€ā”€ ProcessingInstruction.js
│   │       │   ā”œā”€ā”€ Text.js
│   │       │   ā”œā”€ā”€ TreeWalker.js
│   │       │   ā”œā”€ā”€ UIEvent.js
│   │       │   ā”œā”€ā”€ URL.js
│   │       │   ā”œā”€ā”€ URLUtils.js
│   │       │   ā”œā”€ā”€ Window.js
│   │       │   ā”œā”€ā”€ WindowTimers.js
│   │       │   ā”œā”€ā”€ attributes.js
│   │       │   ā”œā”€ā”€ config.js
│   │       │   ā”œā”€ā”€ defineElement.js
│   │       │   ā”œā”€ā”€ events.js
│   │       │   ā”œā”€ā”€ htmlelts.js
│   │       │   ā”œā”€ā”€ impl.js
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ select.js
│   │       │   ā”œā”€ā”€ style_parser.js
│   │       │   ā”œā”€ā”€ svg.js
│   │       │   ā”œā”€ā”€ utils.js
│   │       │   └── xmlnames.js
│   │       ā”œā”€ā”€ package.json
│   │       └── test
│   │           ā”œā”€ā”€ domino.js
│   │           ā”œā”€ā”€ fixture
│   │           │   ā”œā”€ā”€ doc.html
│   │           │   ā”œā”€ā”€ jquery-1.9.1.js
│   │           │   └── jquery-2.2.0.js
│   │           ā”œā”€ā”€ html5lib-tests.json
│   │           ā”œā”€ā”€ index.js
│   │           ā”œā”€ā”€ parsing.js
│   │           ā”œā”€ā”€ tools
│   │           │   ā”œā”€ā”€ update-entities.js
│   │           │   └── update-html5lib-tests.js
│   │           ā”œā”€ā”€ w3c
│   │           │   ā”œā”€ā”€ README.md
│   │           │   ā”œā”€ā”€ harness
│   │           │   │   ā”œā”€ā”€ DomTestCase.js
│   │           │   │   └── index.js
│   │           │   ā”œā”€ā”€ index.js
│   │           │   └── level1
│   │           │       ā”œā”€ā”€ core
│   │           │       │   ā”œā”€ā”€ documentgetdoctypenodtd.js
│   │           │       │   ā”œā”€ā”€ documentinvalidcharacterexceptioncreatepi.js
│   │           │       │   ā”œā”€ā”€ documentinvalidcharacterexceptioncreatepi1.js
│   │           │       │   ā”œā”€ā”€ files
│   │           │       │   │   ā”œā”€ā”€ .cvsignore
│   │           │       │   │   ā”œā”€ā”€ hc_nodtdstaff.html
│   │           │       │   │   ā”œā”€ā”€ hc_staff.html
│   │           │       │   │   └── staff.dtd
│   │           │       │   ā”œā”€ā”€ hc_characterdataappenddata.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataappenddatagetdata.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatadeletedatabegining.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatadeletedataend.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatadeletedataexceedslength.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatadeletedatagetlengthanddata.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatadeletedatamiddle.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatagetdata.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatagetlength.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrdeletedatacountnegative.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrdeletedataoffsetgreater.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrdeletedataoffsetnegative.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrinsertdataoffsetgreater.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrinsertdataoffsetnegative.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrreplacedatacountnegative.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrreplacedataoffsetgreater.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrreplacedataoffsetnegative.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrsubstringcountnegative.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrsubstringnegativeoffset.js
│   │           │       │   ā”œā”€ā”€ hc_characterdataindexsizeerrsubstringoffsetgreater.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatainsertdatabeginning.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatainsertdataend.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatainsertdatamiddle.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatareplacedatabegining.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatareplacedataend.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatareplacedataexceedslengthofarg.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatareplacedataexceedslengthofdata.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatareplacedatamiddle.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatasetnodevalue.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatasubstringexceedsvalue.js
│   │           │       │   ā”œā”€ā”€ hc_characterdatasubstringvalue.js
│   │           │       │   ā”œā”€ā”€ hc_commentgetcomment.js
│   │           │       │   ā”œā”€ā”€ hc_documentcreatecomment.js
│   │           │       │   ā”œā”€ā”€ hc_documentcreatedocumentfragment.js
│   │           │       │   ā”œā”€ā”€ hc_documentcreateelement.js
│   │           │       │   ā”œā”€ā”€ hc_documentcreateelementcasesensitive.js
│   │           │       │   ā”œā”€ā”€ hc_documentcreatetextnode.js
│   │           │       │   ā”œā”€ā”€ hc_documentgetdoctype.js
│   │           │       │   ā”œā”€ā”€ hc_documentgetelementsbytagnamelength.js
│   │           │       │   ā”œā”€ā”€ hc_documentgetelementsbytagnametotallength.js
│   │           │       │   ā”œā”€ā”€ hc_documentgetelementsbytagnamevalue.js
│   │           │       │   ā”œā”€ā”€ hc_documentgetimplementation.js
│   │           │       │   ā”œā”€ā”€ hc_documentgetrootnode.js
│   │           │       │   ā”œā”€ā”€ hc_documentinvalidcharacterexceptioncreateelement.js
│   │           │       │   ā”œā”€ā”€ hc_documentinvalidcharacterexceptioncreateelement1.js
│   │           │       │   ā”œā”€ā”€ hc_domimplementationfeaturenoversion.js
│   │           │       │   ā”œā”€ā”€ hc_domimplementationfeaturenull.js
│   │           │       │   ā”œā”€ā”€ hc_domimplementationfeaturexml.js
│   │           │       │   ā”œā”€ā”€ hc_elementaddnewattribute.js
│   │           │       │   ā”œā”€ā”€ hc_elementchangeattributevalue.js
│   │           │       │   ā”œā”€ā”€ hc_elementgetelementsbytagname.js
│   │           │       │   ā”œā”€ā”€ hc_elementgetelementsbytagnameaccessnodelist.js
│   │           │       │   ā”œā”€ā”€ hc_elementgetelementsbytagnamenomatch.js
│   │           │       │   ā”œā”€ā”€ hc_elementgetelementsbytagnamespecialvalue.js
│   │           │       │   ā”œā”€ā”€ hc_elementgettagname.js
│   │           │       │   ā”œā”€ā”€ hc_elementinvalidcharacterexception.js
│   │           │       │   ā”œā”€ā”€ hc_elementinvalidcharacterexception1.js
│   │           │       │   ā”œā”€ā”€ hc_elementnormalize.js
│   │           │       │   ā”œā”€ā”€ hc_elementremoveattribute.js
│   │           │       │   ā”œā”€ā”€ hc_elementretrieveallattributes.js
│   │           │       │   ā”œā”€ā”€ hc_elementretrieveattrvalue.js
│   │           │       │   ā”œā”€ā”€ hc_elementretrievetagname.js
│   │           │       │   ā”œā”€ā”€ hc_entitiesremovenameditem1.js
│   │           │       │   ā”œā”€ā”€ hc_entitiessetnameditem1.js
│   │           │       │   ā”œā”€ā”€ hc_namednodemapchildnoderange.js
│   │           │       │   ā”œā”€ā”€ hc_namednodemapnumberofnodes.js
│   │           │       │   ā”œā”€ā”€ hc_nodeappendchild.js
│   │           │       │   ā”œā”€ā”€ hc_nodeappendchildchildexists.js
│   │           │       │   ā”œā”€ā”€ hc_nodeappendchilddocfragment.js
│   │           │       │   ā”œā”€ā”€ hc_nodeappendchildgetnodename.js
│   │           │       │   ā”œā”€ā”€ hc_nodeappendchildnewchilddiffdocument.js
│   │           │       │   ā”œā”€ā”€ hc_nodeappendchildnodeancestor.js
│   │           │       │   ā”œā”€ā”€ hc_nodeattributenodeattribute.js
│   │           │       │   ā”œā”€ā”€ hc_nodechildnodes.js
│   │           │       │   ā”œā”€ā”€ hc_nodechildnodesappendchild.js
│   │           │       │   ā”œā”€ā”€ hc_nodechildnodesempty.js
│   │           │       │   ā”œā”€ā”€ hc_nodecloneattributescopied.js
│   │           │       │   ā”œā”€ā”€ hc_nodeclonefalsenocopytext.js
│   │           │       │   ā”œā”€ā”€ hc_nodeclonegetparentnull.js
│   │           │       │   ā”œā”€ā”€ hc_nodeclonenodefalse.js
│   │           │       │   ā”œā”€ā”€ hc_nodeclonenodetrue.js
│   │           │       │   ā”œā”€ā”€ hc_nodeclonetruecopytext.js
│   │           │       │   ā”œā”€ā”€ hc_nodecommentnodeattributes.js
│   │           │       │   ā”œā”€ā”€ hc_nodecommentnodename.js
│   │           │       │   ā”œā”€ā”€ hc_nodecommentnodetype.js
│   │           │       │   ā”œā”€ā”€ hc_nodecommentnodevalue.js
│   │           │       │   ā”œā”€ā”€ hc_nodedocumentfragmentnodename.js
│   │           │       │   ā”œā”€ā”€ hc_nodedocumentfragmentnodetype.js
│   │           │       │   ā”œā”€ā”€ hc_nodedocumentfragmentnodevalue.js
│   │           │       │   ā”œā”€ā”€ hc_nodedocumentnodeattribute.js
│   │           │       │   ā”œā”€ā”€ hc_nodedocumentnodename.js
│   │           │       │   ā”œā”€ā”€ hc_nodedocumentnodetype.js
│   │           │       │   ā”œā”€ā”€ hc_nodedocumentnodevalue.js
│   │           │       │   ā”œā”€ā”€ hc_nodeelementnodeattributes.js
│   │           │       │   ā”œā”€ā”€ hc_nodeelementnodename.js
│   │           │       │   ā”œā”€ā”€ hc_nodeelementnodetype.js
│   │           │       │   ā”œā”€ā”€ hc_nodeelementnodevalue.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetfirstchild.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetfirstchildnull.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetlastchild.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetlastchildnull.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetnextsibling.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetnextsiblingnull.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetownerdocument.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetownerdocumentnull.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetprevioussibling.js
│   │           │       │   ā”œā”€ā”€ hc_nodegetprevioussiblingnull.js
│   │           │       │   ā”œā”€ā”€ hc_nodehaschildnodes.js
│   │           │       │   ā”œā”€ā”€ hc_nodehaschildnodesfalse.js
│   │           │       │   ā”œā”€ā”€ hc_nodeinsertbefore.js
│   │           │       │   ā”œā”€ā”€ hc_nodeinsertbeforedocfragment.js
│   │           │       │   ā”œā”€ā”€ hc_nodeinsertbeforenewchilddiffdocument.js
│   │           │       │   ā”œā”€ā”€ hc_nodeinsertbeforenewchildexists.js
│   │           │       │   ā”œā”€ā”€ hc_nodeinsertbeforenodeancestor.js
│   │           │       │   ā”œā”€ā”€ hc_nodeinsertbeforenodename.js
│   │           │       │   ā”œā”€ā”€ hc_nodeinsertbeforerefchildnonexistent.js
│   │           │       │   ā”œā”€ā”€ hc_nodeinsertbeforerefchildnull.js
│   │           │       │   ā”œā”€ā”€ hc_nodelistindexequalzero.js
│   │           │       │   ā”œā”€ā”€ hc_nodelistindexgetlength.js
│   │           │       │   ā”œā”€ā”€ hc_nodelistindexgetlengthofemptylist.js
│   │           │       │   ā”œā”€ā”€ hc_nodelistindexnotzero.js
│   │           │       │   ā”œā”€ā”€ hc_nodelistreturnfirstitem.js
│   │           │       │   ā”œā”€ā”€ hc_nodelistreturnlastitem.js
│   │           │       │   ā”œā”€ā”€ hc_nodelisttraverselist.js
│   │           │       │   ā”œā”€ā”€ hc_nodeparentnode.js
│   │           │       │   ā”œā”€ā”€ hc_nodeparentnodenull.js
│   │           │       │   ā”œā”€ā”€ hc_noderemovechild.js
│   │           │       │   ā”œā”€ā”€ hc_noderemovechildgetnodename.js
│   │           │       │   ā”œā”€ā”€ hc_noderemovechildnode.js
│   │           │       │   ā”œā”€ā”€ hc_noderemovechildoldchildnonexistent.js
│   │           │       │   ā”œā”€ā”€ hc_nodereplacechild.js
│   │           │       │   ā”œā”€ā”€ hc_nodereplacechildnewchilddiffdocument.js
│   │           │       │   ā”œā”€ā”€ hc_nodereplacechildnewchildexists.js
│   │           │       │   ā”œā”€ā”€ hc_nodereplacechildnodeancestor.js
│   │           │       │   ā”œā”€ā”€ hc_nodereplacechildnodename.js
│   │           │       │   ā”œā”€ā”€ hc_nodereplacechildoldchildnonexistent.js
│   │           │       │   ā”œā”€ā”€ hc_nodetextnodeattribute.js
│   │           │       │   ā”œā”€ā”€ hc_nodetextnodename.js
│   │           │       │   ā”œā”€ā”€ hc_nodetextnodetype.js
│   │           │       │   ā”œā”€ā”€ hc_nodetextnodevalue.js
│   │           │       │   ā”œā”€ā”€ hc_nodevalue01.js
│   │           │       │   ā”œā”€ā”€ hc_nodevalue02.js
│   │           │       │   ā”œā”€ā”€ hc_nodevalue04.js
│   │           │       │   ā”œā”€ā”€ hc_nodevalue05.js
│   │           │       │   ā”œā”€ā”€ hc_nodevalue06.js
│   │           │       │   ā”œā”€ā”€ hc_nodevalue07.js
│   │           │       │   ā”œā”€ā”€ hc_nodevalue08.js
│   │           │       │   ā”œā”€ā”€ hc_notationsremovenameditem1.js
│   │           │       │   ā”œā”€ā”€ hc_notationssetnameditem1.js
│   │           │       │   ā”œā”€ā”€ hc_textindexsizeerrnegativeoffset.js
│   │           │       │   ā”œā”€ā”€ hc_textindexsizeerroffsetoutofbounds.js
│   │           │       │   ā”œā”€ā”€ hc_textparseintolistofelements.js
│   │           │       │   ā”œā”€ā”€ hc_textsplittextfour.js
│   │           │       │   ā”œā”€ā”€ hc_textsplittextone.js
│   │           │       │   ā”œā”€ā”€ hc_textsplittextthree.js
│   │           │       │   ā”œā”€ā”€ hc_textsplittexttwo.js
│   │           │       │   ā”œā”€ā”€ hc_textwithnomarkup.js
│   │           │       │   └── obsolete
│   │           │       │       ā”œā”€ā”€ documentinvalidcharacterexceptioncreateentref.js
│   │           │       │       ā”œā”€ā”€ documentinvalidcharacterexceptioncreateentref1.js
│   │           │       │       ā”œā”€ā”€ hc_attrappendchild1.js
│   │           │       │       ā”œā”€ā”€ hc_attrappendchild2.js
│   │           │       │       ā”œā”€ā”€ hc_attrappendchild3.js
│   │           │       │       ā”œā”€ā”€ hc_attrappendchild4.js
│   │           │       │       ā”œā”€ā”€ hc_attrappendchild5.js
│   │           │       │       ā”œā”€ā”€ hc_attrappendchild6.js
│   │           │       │       ā”œā”€ā”€ hc_attrchildnodes1.js
│   │           │       │       ā”œā”€ā”€ hc_attrchildnodes2.js
│   │           │       │       ā”œā”€ā”€ hc_attrclonenode1.js
│   │           │       │       ā”œā”€ā”€ hc_attrcreatedocumentfragment.js
│   │           │       │       ā”œā”€ā”€ hc_attrcreatetextnode.js
│   │           │       │       ā”œā”€ā”€ hc_attrcreatetextnode2.js
│   │           │       │       ā”œā”€ā”€ hc_attreffectivevalue.js
│   │           │       │       ā”œā”€ā”€ hc_attrfirstchild.js
│   │           │       │       ā”œā”€ā”€ hc_attrgetvalue1.js
│   │           │       │       ā”œā”€ā”€ hc_attrgetvalue2.js
│   │           │       │       ā”œā”€ā”€ hc_attrhaschildnodes.js
│   │           │       │       ā”œā”€ā”€ hc_attrinsertbefore1.js
│   │           │       │       ā”œā”€ā”€ hc_attrinsertbefore2.js
│   │           │       │       ā”œā”€ā”€ hc_attrinsertbefore3.js
│   │           │       │       ā”œā”€ā”€ hc_attrinsertbefore4.js
│   │           │       │       ā”œā”€ā”€ hc_attrinsertbefore5.js
│   │           │       │       ā”œā”€ā”€ hc_attrinsertbefore6.js
│   │           │       │       ā”œā”€ā”€ hc_attrinsertbefore7.js
│   │           │       │       ā”œā”€ā”€ hc_attrlastchild.js
│   │           │       │       ā”œā”€ā”€ hc_attrname.js
│   │           │       │       ā”œā”€ā”€ hc_attrnextsiblingnull.js
│   │           │       │       ā”œā”€ā”€ hc_attrnormalize.js
│   │           │       │       ā”œā”€ā”€ hc_attrparentnodenull.js
│   │           │       │       ā”œā”€ā”€ hc_attrprevioussiblingnull.js
│   │           │       │       ā”œā”€ā”€ hc_attrremovechild1.js
│   │           │       │       ā”œā”€ā”€ hc_attrremovechild2.js
│   │           │       │       ā”œā”€ā”€ hc_attrreplacechild1.js
│   │           │       │       ā”œā”€ā”€ hc_attrreplacechild2.js
│   │           │       │       ā”œā”€ā”€ hc_attrsetvalue1.js
│   │           │       │       ā”œā”€ā”€ hc_attrsetvalue2.js
│   │           │       │       ā”œā”€ā”€ hc_attrspecifiedvalue.js
│   │           │       │       ā”œā”€ā”€ hc_attrspecifiedvaluechanged.js
│   │           │       │       ā”œā”€ā”€ hc_documentcreateattribute.js
│   │           │       │       ā”œā”€ā”€ hc_documentinvalidcharacterexceptioncreateattribute.js
│   │           │       │       ā”œā”€ā”€ hc_documentinvalidcharacterexceptioncreateattribute1.js
│   │           │       │       ā”œā”€ā”€ hc_elementassociatedattribute.js
│   │           │       │       ā”œā”€ā”€ hc_elementcreatenewattribute.js
│   │           │       │       ā”œā”€ā”€ hc_elementgetattributenode.js
│   │           │       │       ā”œā”€ā”€ hc_elementgetattributenodenull.js
│   │           │       │       ā”œā”€ā”€ hc_elementgetelementempty.js
│   │           │       │       ā”œā”€ā”€ hc_elementinuseattributeerr.js
│   │           │       │       ā”œā”€ā”€ hc_elementnormalize2.js
│   │           │       │       ā”œā”€ā”€ hc_elementnotfounderr.js
│   │           │       │       ā”œā”€ā”€ hc_elementremoveattributeaftercreate.js
│   │           │       │       ā”œā”€ā”€ hc_elementremoveattributenode.js
│   │           │       │       ā”œā”€ā”€ hc_elementreplaceattributewithself.js
│   │           │       │       ā”œā”€ā”€ hc_elementreplaceexistingattribute.js
│   │           │       │       ā”œā”€ā”€ hc_elementreplaceexistingattributegevalue.js
│   │           │       │       ā”œā”€ā”€ hc_elementsetattributenodenull.js
│   │           │       │       ā”œā”€ā”€ hc_elementwrongdocumenterr.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapgetnameditem.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapinuseattributeerr.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapnotfounderr.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapremovenameditem.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapreturnattrnode.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapreturnfirstitem.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapreturnlastitem.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapreturnnull.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapsetnameditem.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapsetnameditemreturnvalue.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapsetnameditemthatexists.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapsetnameditemwithnewvalue.js
│   │           │       │       ā”œā”€ā”€ hc_namednodemapwrongdocumenterr.js
│   │           │       │       ā”œā”€ā”€ hc_nodeappendchildinvalidnodetype.js
│   │           │       │       ā”œā”€ā”€ hc_nodeattributenodename.js
│   │           │       │       ā”œā”€ā”€ hc_nodeattributenodetype.js
│   │           │       │       ā”œā”€ā”€ hc_nodeattributenodevalue.js
│   │           │       │       ā”œā”€ā”€ hc_nodeinsertbeforeinvalidnodetype.js
│   │           │       │       ā”œā”€ā”€ hc_nodereplacechildinvalidnodetype.js
│   │           │       │       └── hc_nodevalue03.js
│   │           │       └── html
│   │           │           ā”œā”€ā”€ HTMLAnchorElement01.js
│   │           │           ā”œā”€ā”€ HTMLAnchorElement04.js
│   │           │           ā”œā”€ā”€ HTMLAnchorElement05.js
│   │           │           ā”œā”€ā”€ HTMLAnchorElement07.js
│   │           │           ā”œā”€ā”€ HTMLAnchorElement10.js
│   │           │           ā”œā”€ā”€ HTMLAnchorElement11.js
│   │           │           ā”œā”€ā”€ HTMLAnchorElement12.js
│   │           │           ā”œā”€ā”€ HTMLAnchorElement13.js
│   │           │           ā”œā”€ā”€ HTMLAnchorElement14.js
│   │           │           ā”œā”€ā”€ HTMLAreaElement01.js
│   │           │           ā”œā”€ā”€ HTMLAreaElement02.js
│   │           │           ā”œā”€ā”€ HTMLAreaElement03.js
│   │           │           ā”œā”€ā”€ HTMLAreaElement04.js
│   │           │           ā”œā”€ā”€ HTMLAreaElement05.js
│   │           │           ā”œā”€ā”€ HTMLAreaElement06.js
│   │           │           ā”œā”€ā”€ HTMLAreaElement07.js
│   │           │           ā”œā”€ā”€ HTMLAreaElement08.js
│   │           │           ā”œā”€ā”€ HTMLButtonElement01.js
│   │           │           ā”œā”€ā”€ HTMLButtonElement02.js
│   │           │           ā”œā”€ā”€ HTMLButtonElement03.js
│   │           │           ā”œā”€ā”€ HTMLButtonElement04.js
│   │           │           ā”œā”€ā”€ HTMLButtonElement05.js
│   │           │           ā”œā”€ā”€ HTMLButtonElement06.js
│   │           │           ā”œā”€ā”€ HTMLButtonElement07.js
│   │           │           ā”œā”€ā”€ HTMLButtonElement08.js
│   │           │           ā”œā”€ā”€ HTMLDocument01.js
│   │           │           ā”œā”€ā”€ HTMLDocument05.js
│   │           │           ā”œā”€ā”€ HTMLDocument15.js
│   │           │           ā”œā”€ā”€ HTMLDocument16.js
│   │           │           ā”œā”€ā”€ HTMLDocument17.js
│   │           │           ā”œā”€ā”€ HTMLDocument18.js
│   │           │           ā”œā”€ā”€ HTMLDocument19.js
│   │           │           ā”œā”€ā”€ HTMLDocument20.js
│   │           │           ā”œā”€ā”€ HTMLDocument21.js
│   │           │           ā”œā”€ā”€ HTMLElement01.js
│   │           │           ā”œā”€ā”€ HTMLElement02.js
│   │           │           ā”œā”€ā”€ HTMLElement03.js
│   │           │           ā”œā”€ā”€ HTMLElement04.js
│   │           │           ā”œā”€ā”€ HTMLElement05.js
│   │           │           ā”œā”€ā”€ HTMLElement06.js
│   │           │           ā”œā”€ā”€ HTMLElement07.js
│   │           │           ā”œā”€ā”€ HTMLElement08.js
│   │           │           ā”œā”€ā”€ HTMLElement09.js
│   │           │           ā”œā”€ā”€ HTMLElement10.js
│   │           │           ā”œā”€ā”€ HTMLElement100.js
│   │           │           ā”œā”€ā”€ HTMLElement101.js
│   │           │           ā”œā”€ā”€ HTMLElement102.js
│   │           │           ā”œā”€ā”€ HTMLElement103.js
│   │           │           ā”œā”€ā”€ HTMLElement104.js
│   │           │           ā”œā”€ā”€ HTMLElement105.js
│   │           │           ā”œā”€ā”€ HTMLElement106.js
│   │           │           ā”œā”€ā”€ HTMLElement107.js
│   │           │           ā”œā”€ā”€ HTMLElement108.js
│   │           │           ā”œā”€ā”€ HTMLElement109.js
│   │           │           ā”œā”€ā”€ HTMLElement11.js
│   │           │           ā”œā”€ā”€ HTMLElement110.js
│   │           │           ā”œā”€ā”€ HTMLElement111.js
│   │           │           ā”œā”€ā”€ HTMLElement112.js
│   │           │           ā”œā”€ā”€ HTMLElement113.js
│   │           │           ā”œā”€ā”€ HTMLElement114.js
│   │           │           ā”œā”€ā”€ HTMLElement115.js
│   │           │           ā”œā”€ā”€ HTMLElement116.js
│   │           │           ā”œā”€ā”€ HTMLElement117.js
│   │           │           ā”œā”€ā”€ HTMLElement118.js
│   │           │           ā”œā”€ā”€ HTMLElement119.js
│   │           │           ā”œā”€ā”€ HTMLElement12.js
│   │           │           ā”œā”€ā”€ HTMLElement120.js
│   │           │           ā”œā”€ā”€ HTMLElement121.js
│   │           │           ā”œā”€ā”€ HTMLElement122.js
│   │           │           ā”œā”€ā”€ HTMLElement123.js
│   │           │           ā”œā”€ā”€ HTMLElement124.js
│   │           │           ā”œā”€ā”€ HTMLElement125.js
│   │           │           ā”œā”€ā”€ HTMLElement126.js
│   │           │           ā”œā”€ā”€ HTMLElement127.js
│   │           │           ā”œā”€ā”€ HTMLElement128.js
│   │           │           ā”œā”€ā”€ HTMLElement129.js
│   │           │           ā”œā”€ā”€ HTMLElement13.js
│   │           │           ā”œā”€ā”€ HTMLElement130.js
│   │           │           ā”œā”€ā”€ HTMLElement131.js
│   │           │           ā”œā”€ā”€ HTMLElement132.js
│   │           │           ā”œā”€ā”€ HTMLElement133.js
│   │           │           ā”œā”€ā”€ HTMLElement134.js
│   │           │           ā”œā”€ā”€ HTMLElement135.js
│   │           │           ā”œā”€ā”€ HTMLElement136.js
│   │           │           ā”œā”€ā”€ HTMLElement137.js
│   │           │           ā”œā”€ā”€ HTMLElement138.js
│   │           │           ā”œā”€ā”€ HTMLElement139.js
│   │           │           ā”œā”€ā”€ HTMLElement14.js
│   │           │           ā”œā”€ā”€ HTMLElement140.js
│   │           │           ā”œā”€ā”€ HTMLElement141.js
│   │           │           ā”œā”€ā”€ HTMLElement142.js
│   │           │           ā”œā”€ā”€ HTMLElement143.js
│   │           │           ā”œā”€ā”€ HTMLElement144.js
│   │           │           ā”œā”€ā”€ HTMLElement145.js
│   │           │           ā”œā”€ā”€ HTMLElement15.js
│   │           │           ā”œā”€ā”€ HTMLElement16.js
│   │           │           ā”œā”€ā”€ HTMLElement17.js
│   │           │           ā”œā”€ā”€ HTMLElement18.js
│   │           │           ā”œā”€ā”€ HTMLElement19.js
│   │           │           ā”œā”€ā”€ HTMLElement20.js
│   │           │           ā”œā”€ā”€ HTMLElement21.js
│   │           │           ā”œā”€ā”€ HTMLElement22.js
│   │           │           ā”œā”€ā”€ HTMLElement23.js
│   │           │           ā”œā”€ā”€ HTMLElement24.js
│   │           │           ā”œā”€ā”€ HTMLElement25.js
│   │           │           ā”œā”€ā”€ HTMLElement26.js
│   │           │           ā”œā”€ā”€ HTMLElement27.js
│   │           │           ā”œā”€ā”€ HTMLElement28.js
│   │           │           ā”œā”€ā”€ HTMLElement29.js
│   │           │           ā”œā”€ā”€ HTMLElement30.js
│   │           │           ā”œā”€ā”€ HTMLElement31.js
│   │           │           ā”œā”€ā”€ HTMLElement32.js
│   │           │           ā”œā”€ā”€ HTMLElement33.js
│   │           │           ā”œā”€ā”€ HTMLElement34.js
│   │           │           ā”œā”€ā”€ HTMLElement35.js
│   │           │           ā”œā”€ā”€ HTMLElement36.js
│   │           │           ā”œā”€ā”€ HTMLElement37.js
│   │           │           ā”œā”€ā”€ HTMLElement38.js
│   │           │           ā”œā”€ā”€ HTMLElement39.js
│   │           │           ā”œā”€ā”€ HTMLElement40.js
│   │           │           ā”œā”€ā”€ HTMLElement41.js
│   │           │           ā”œā”€ā”€ HTMLElement42.js
│   │           │           ā”œā”€ā”€ HTMLElement43.js
│   │           │           ā”œā”€ā”€ HTMLElement44.js
│   │           │           ā”œā”€ā”€ HTMLElement45.js
│   │           │           ā”œā”€ā”€ HTMLElement46.js
│   │           │           ā”œā”€ā”€ HTMLElement47.js
│   │           │           ā”œā”€ā”€ HTMLElement48.js
│   │           │           ā”œā”€ā”€ HTMLElement49.js
│   │           │           ā”œā”€ā”€ HTMLElement50.js
│   │           │           ā”œā”€ā”€ HTMLElement51.js
│   │           │           ā”œā”€ā”€ HTMLElement52.js
│   │           │           ā”œā”€ā”€ HTMLElement53.js
│   │           │           ā”œā”€ā”€ HTMLElement54.js
│   │           │           ā”œā”€ā”€ HTMLElement55.js
│   │           │           ā”œā”€ā”€ HTMLElement56.js
│   │           │           ā”œā”€ā”€ HTMLElement57.js
│   │           │           ā”œā”€ā”€ HTMLElement58.js
│   │           │           ā”œā”€ā”€ HTMLElement59.js
│   │           │           ā”œā”€ā”€ HTMLElement60.js
│   │           │           ā”œā”€ā”€ HTMLElement61.js
│   │           │           ā”œā”€ā”€ HTMLElement62.js
│   │           │           ā”œā”€ā”€ HTMLElement63.js
│   │           │           ā”œā”€ā”€ HTMLElement64.js
│   │           │           ā”œā”€ā”€ HTMLElement65.js
│   │           │           ā”œā”€ā”€ HTMLElement66.js
│   │           │           ā”œā”€ā”€ HTMLElement67.js
│   │           │           ā”œā”€ā”€ HTMLElement68.js
│   │           │           ā”œā”€ā”€ HTMLElement69.js
│   │           │           ā”œā”€ā”€ HTMLElement70.js
│   │           │           ā”œā”€ā”€ HTMLElement71.js
│   │           │           ā”œā”€ā”€ HTMLElement72.js
│   │           │           ā”œā”€ā”€ HTMLElement73.js
│   │           │           ā”œā”€ā”€ HTMLElement74.js
│   │           │           ā”œā”€ā”€ HTMLElement75.js
│   │           │           ā”œā”€ā”€ HTMLElement76.js
│   │           │           ā”œā”€ā”€ HTMLElement77.js
│   │           │           ā”œā”€ā”€ HTMLElement78.js
│   │           │           ā”œā”€ā”€ HTMLElement79.js
│   │           │           ā”œā”€ā”€ HTMLElement80.js
│   │           │           ā”œā”€ā”€ HTMLElement81.js
│   │           │           ā”œā”€ā”€ HTMLElement82.js
│   │           │           ā”œā”€ā”€ HTMLElement83.js
│   │           │           ā”œā”€ā”€ HTMLElement84.js
│   │           │           ā”œā”€ā”€ HTMLElement85.js
│   │           │           ā”œā”€ā”€ HTMLElement86.js
│   │           │           ā”œā”€ā”€ HTMLElement87.js
│   │           │           ā”œā”€ā”€ HTMLElement88.js
│   │           │           ā”œā”€ā”€ HTMLElement89.js
│   │           │           ā”œā”€ā”€ HTMLElement90.js
│   │           │           ā”œā”€ā”€ HTMLElement91.js
│   │           │           ā”œā”€ā”€ HTMLElement92.js
│   │           │           ā”œā”€ā”€ HTMLElement93.js
│   │           │           ā”œā”€ā”€ HTMLElement94.js
│   │           │           ā”œā”€ā”€ HTMLElement95.js
│   │           │           ā”œā”€ā”€ HTMLElement96.js
│   │           │           ā”œā”€ā”€ HTMLElement97.js
│   │           │           ā”œā”€ā”€ HTMLElement98.js
│   │           │           ā”œā”€ā”€ HTMLElement99.js
│   │           │           ā”œā”€ā”€ HTMLFieldSetElement01.js
│   │           │           ā”œā”€ā”€ HTMLFieldSetElement02.js
│   │           │           ā”œā”€ā”€ HTMLFormElement03.js
│   │           │           ā”œā”€ā”€ HTMLFormElement04.js
│   │           │           ā”œā”€ā”€ HTMLFormElement05.js
│   │           │           ā”œā”€ā”€ HTMLFormElement06.js
│   │           │           ā”œā”€ā”€ HTMLFormElement07.js
│   │           │           ā”œā”€ā”€ HTMLFormElement08.js
│   │           │           ā”œā”€ā”€ HTMLIFrameElement03.js
│   │           │           ā”œā”€ā”€ HTMLIFrameElement07.js
│   │           │           ā”œā”€ā”€ HTMLIFrameElement09.js
│   │           │           ā”œā”€ā”€ HTMLIFrameElement10.js
│   │           │           ā”œā”€ā”€ HTMLImageElement05.js
│   │           │           ā”œā”€ā”€ HTMLImageElement06.js
│   │           │           ā”œā”€ā”€ HTMLImageElement07.js
│   │           │           ā”œā”€ā”€ HTMLImageElement09.js
│   │           │           ā”œā”€ā”€ HTMLImageElement11.js
│   │           │           ā”œā”€ā”€ HTMLImageElement12.js
│   │           │           ā”œā”€ā”€ HTMLInputElement01.js
│   │           │           ā”œā”€ā”€ HTMLInputElement02.js
│   │           │           ā”œā”€ā”€ HTMLInputElement03.js
│   │           │           ā”œā”€ā”€ HTMLInputElement04.js
│   │           │           ā”œā”€ā”€ HTMLInputElement05.js
│   │           │           ā”œā”€ā”€ HTMLInputElement07.js
│   │           │           ā”œā”€ā”€ HTMLInputElement08.js
│   │           │           ā”œā”€ā”€ HTMLInputElement09.js
│   │           │           ā”œā”€ā”€ HTMLInputElement10.js
│   │           │           ā”œā”€ā”€ HTMLInputElement11.js
│   │           │           ā”œā”€ā”€ HTMLInputElement12.js
│   │           │           ā”œā”€ā”€ HTMLInputElement13.js
│   │           │           ā”œā”€ā”€ HTMLInputElement14.js
│   │           │           ā”œā”€ā”€ HTMLInputElement15.js
│   │           │           ā”œā”€ā”€ HTMLInputElement16.js
│   │           │           ā”œā”€ā”€ HTMLInputElement18.js
│   │           │           ā”œā”€ā”€ HTMLInputElement21.js
│   │           │           ā”œā”€ā”€ HTMLLIElement02.js
│   │           │           ā”œā”€ā”€ HTMLLabelElement01.js
│   │           │           ā”œā”€ā”€ HTMLLabelElement02.js
│   │           │           ā”œā”€ā”€ HTMLLabelElement03.js
│   │           │           ā”œā”€ā”€ HTMLLabelElement04.js
│   │           │           ā”œā”€ā”€ HTMLLinkElement01.js
│   │           │           ā”œā”€ā”€ HTMLLinkElement03.js
│   │           │           ā”œā”€ā”€ HTMLLinkElement04.js
│   │           │           ā”œā”€ā”€ HTMLLinkElement05.js
│   │           │           ā”œā”€ā”€ HTMLLinkElement06.js
│   │           │           ā”œā”€ā”€ HTMLLinkElement08.js
│   │           │           ā”œā”€ā”€ HTMLMapElement02.js
│   │           │           ā”œā”€ā”€ HTMLMetaElement01.js
│   │           │           ā”œā”€ā”€ HTMLMetaElement02.js
│   │           │           ā”œā”€ā”€ HTMLMetaElement03.js
│   │           │           ā”œā”€ā”€ HTMLMetaElement04.js
│   │           │           ā”œā”€ā”€ HTMLModElement01.js
│   │           │           ā”œā”€ā”€ HTMLModElement02.js
│   │           │           ā”œā”€ā”€ HTMLModElement03.js
│   │           │           ā”œā”€ā”€ HTMLModElement04.js
│   │           │           ā”œā”€ā”€ HTMLOListElement02.js
│   │           │           ā”œā”€ā”€ HTMLOListElement03.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement01.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement08.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement10.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement11.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement13.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement14.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement15.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement16.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement17.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement18.js
│   │           │           ā”œā”€ā”€ HTMLObjectElement19.js
│   │           │           ā”œā”€ā”€ HTMLOptGroupElement01.js
│   │           │           ā”œā”€ā”€ HTMLOptGroupElement02.js
│   │           │           ā”œā”€ā”€ HTMLOptionElement01.js
│   │           │           ā”œā”€ā”€ HTMLOptionElement02.js
│   │           │           ā”œā”€ā”€ HTMLOptionElement03.js
│   │           │           ā”œā”€ā”€ HTMLOptionElement06.js
│   │           │           ā”œā”€ā”€ HTMLOptionElement07.js
│   │           │           ā”œā”€ā”€ HTMLOptionElement08.js
│   │           │           ā”œā”€ā”€ HTMLParamElement02.js
│   │           │           ā”œā”€ā”€ HTMLQuoteElement01.js
│   │           │           ā”œā”€ā”€ HTMLQuoteElement02.js
│   │           │           ā”œā”€ā”€ HTMLScriptElement01.js
│   │           │           ā”œā”€ā”€ HTMLScriptElement02.js
│   │           │           ā”œā”€ā”€ HTMLScriptElement03.js
│   │           │           ā”œā”€ā”€ HTMLScriptElement04.js
│   │           │           ā”œā”€ā”€ HTMLScriptElement05.js
│   │           │           ā”œā”€ā”€ HTMLScriptElement06.js
│   │           │           ā”œā”€ā”€ HTMLScriptElement07.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement03.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement06.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement07.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement08.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement09.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement10.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement11.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement12.js
│   │           │           ā”œā”€ā”€ HTMLSelectElement13.js
│   │           │           ā”œā”€ā”€ HTMLStyleElement01.js
│   │           │           ā”œā”€ā”€ HTMLStyleElement02.js
│   │           │           ā”œā”€ā”€ HTMLStyleElement03.js
│   │           │           ā”œā”€ā”€ HTMLTableCellElement15.js
│   │           │           ā”œā”€ā”€ HTMLTableCellElement16.js
│   │           │           ā”œā”€ā”€ HTMLTableCellElement23.js
│   │           │           ā”œā”€ā”€ HTMLTableCellElement24.js
│   │           │           ā”œā”€ā”€ HTMLTableCellElement25.js
│   │           │           ā”œā”€ā”€ HTMLTableColElement07.js
│   │           │           ā”œā”€ā”€ HTMLTableColElement08.js
│   │           │           ā”œā”€ā”€ HTMLTableElement02.js
│   │           │           ā”œā”€ā”€ HTMLTableElement04.js
│   │           │           ā”œā”€ā”€ HTMLTableElement06.js
│   │           │           ā”œā”€ā”€ HTMLTableElement07.js
│   │           │           ā”œā”€ā”€ HTMLTableElement12.js
│   │           │           ā”œā”€ā”€ HTMLTableRowElement05.js
│   │           │           ā”œā”€ā”€ HTMLTableSectionElement13.js
│   │           │           ā”œā”€ā”€ HTMLTableSectionElement14.js
│   │           │           ā”œā”€ā”€ HTMLTableSectionElement15.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement02.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement03.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement04.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement05.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement06.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement07.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement08.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement09.js
│   │           │           ā”œā”€ā”€ HTMLTextAreaElement10.js
│   │           │           ā”œā”€ā”€ HTMLTitleElement01.js
│   │           │           ā”œā”€ā”€ anchor01.js
│   │           │           ā”œā”€ā”€ anchor04.js
│   │           │           ā”œā”€ā”€ anchor05.js
│   │           │           ā”œā”€ā”€ area01.js
│   │           │           ā”œā”€ā”€ area02.js
│   │           │           ā”œā”€ā”€ area03.js
│   │           │           ā”œā”€ā”€ area04.js
│   │           │           ā”œā”€ā”€ button01.js
│   │           │           ā”œā”€ā”€ button02.js
│   │           │           ā”œā”€ā”€ button03.js
│   │           │           ā”œā”€ā”€ button04.js
│   │           │           ā”œā”€ā”€ button05.js
│   │           │           ā”œā”€ā”€ button06.js
│   │           │           ā”œā”€ā”€ button07.js
│   │           │           ā”œā”€ā”€ button08.js
│   │           │           ā”œā”€ā”€ button09.js
│   │           │           ā”œā”€ā”€ doc01.js
│   │           │           ā”œā”€ā”€ files
│   │           │           │   ā”œā”€ā”€ .cvsignore
│   │           │           │   ā”œā”€ā”€ HTMLDocument04.html
│   │           │           │   ā”œā”€ā”€ anchor.html
│   │           │           │   ā”œā”€ā”€ anchor2.html
│   │           │           │   ā”œā”€ā”€ applet.html
│   │           │           │   ā”œā”€ā”€ applet2.html
│   │           │           │   ā”œā”€ā”€ area.html
│   │           │           │   ā”œā”€ā”€ area2.html
│   │           │           │   ā”œā”€ā”€ base.html
│   │           │           │   ā”œā”€ā”€ base2.html
│   │           │           │   ā”œā”€ā”€ basefont.html
│   │           │           │   ā”œā”€ā”€ body.html
│   │           │           │   ā”œā”€ā”€ br.html
│   │           │           │   ā”œā”€ā”€ button.html
│   │           │           │   ā”œā”€ā”€ collection.html
│   │           │           │   ā”œā”€ā”€ directory.html
│   │           │           │   ā”œā”€ā”€ div.html
│   │           │           │   ā”œā”€ā”€ dl.html
│   │           │           │   ā”œā”€ā”€ document.html
│   │           │           │   ā”œā”€ā”€ element.html
│   │           │           │   ā”œā”€ā”€ fieldset.html
│   │           │           │   ā”œā”€ā”€ font.html
│   │           │           │   ā”œā”€ā”€ form.html
│   │           │           │   ā”œā”€ā”€ form2.html
│   │           │           │   ā”œā”€ā”€ form3.html
│   │           │           │   ā”œā”€ā”€ frame.html
│   │           │           │   ā”œā”€ā”€ frameset.html
│   │           │           │   ā”œā”€ā”€ head.html
│   │           │           │   ā”œā”€ā”€ heading.html
│   │           │           │   ā”œā”€ā”€ hr.html
│   │           │           │   ā”œā”€ā”€ html.html
│   │           │           │   ā”œā”€ā”€ iframe.html
│   │           │           │   ā”œā”€ā”€ img.html
│   │           │           │   ā”œā”€ā”€ input.html
│   │           │           │   ā”œā”€ā”€ isindex.html
│   │           │           │   ā”œā”€ā”€ label.html
│   │           │           │   ā”œā”€ā”€ legend.html
│   │           │           │   ā”œā”€ā”€ li.html
│   │           │           │   ā”œā”€ā”€ link.html
│   │           │           │   ā”œā”€ā”€ link2.html
│   │           │           │   ā”œā”€ā”€ map.html
│   │           │           │   ā”œā”€ā”€ menu.html
│   │           │           │   ā”œā”€ā”€ meta.html
│   │           │           │   ā”œā”€ā”€ mod.html
│   │           │           │   ā”œā”€ā”€ object.html
│   │           │           │   ā”œā”€ā”€ object2.html
│   │           │           │   ā”œā”€ā”€ olist.html
│   │           │           │   ā”œā”€ā”€ optgroup.html
│   │           │           │   ā”œā”€ā”€ option.html
│   │           │           │   ā”œā”€ā”€ paragraph.html
│   │           │           │   ā”œā”€ā”€ param.html
│   │           │           │   ā”œā”€ā”€ pre.html
│   │           │           │   ā”œā”€ā”€ quote.html
│   │           │           │   ā”œā”€ā”€ script.html
│   │           │           │   ā”œā”€ā”€ select.html
│   │           │           │   ā”œā”€ā”€ style.html
│   │           │           │   ā”œā”€ā”€ table.html
│   │           │           │   ā”œā”€ā”€ table1.html
│   │           │           │   ā”œā”€ā”€ tablecaption.html
│   │           │           │   ā”œā”€ā”€ tablecell.html
│   │           │           │   ā”œā”€ā”€ tablecol.html
│   │           │           │   ā”œā”€ā”€ tablerow.html
│   │           │           │   ā”œā”€ā”€ tablesection.html
│   │           │           │   ā”œā”€ā”€ textarea.html
│   │           │           │   ā”œā”€ā”€ title.html
│   │           │           │   └── ulist.html
│   │           │           ā”œā”€ā”€ hasFeature01.js
│   │           │           ā”œā”€ā”€ nyi
│   │           │           │   ā”œā”€ā”€ HTMLDocument02.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument03.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument04.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument07.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument09.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument10.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument12.js
│   │           │           │   ā”œā”€ā”€ HTMLFormElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLFormElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLFormElement10.js
│   │           │           │   ā”œā”€ā”€ HTMLInputElement19.js
│   │           │           │   ā”œā”€ā”€ HTMLInputElement20.js
│   │           │           │   ā”œā”€ā”€ HTMLInputElement22.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement14.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement15.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement16.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement17.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement18.js
│   │           │           │   ā”œā”€ā”€ HTMLSelectElement19.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement19.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement20.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement21.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement22.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement23.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement24.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement25.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement26.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement27.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement28.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement29.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement30.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement31.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement32.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement33.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLTextAreaElement13.js
│   │           │           │   ā”œā”€ā”€ HTMLTextAreaElement14.js
│   │           │           │   └── HTMLTextAreaElement15.js
│   │           │           ā”œā”€ā”€ object01.js
│   │           │           ā”œā”€ā”€ object06.js
│   │           │           ā”œā”€ā”€ object07.js
│   │           │           ā”œā”€ā”€ object08.js
│   │           │           ā”œā”€ā”€ object10.js
│   │           │           ā”œā”€ā”€ object11.js
│   │           │           ā”œā”€ā”€ object12.js
│   │           │           ā”œā”€ā”€ object13.js
│   │           │           ā”œā”€ā”€ object14.js
│   │           │           ā”œā”€ā”€ obsolete
│   │           │           │   ā”œā”€ā”€ HTMLAnchorElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLAnchorElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLAnchorElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLAnchorElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLAnchorElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement07.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement10.js
│   │           │           │   ā”œā”€ā”€ HTMLAppletElement11.js
│   │           │           │   ā”œā”€ā”€ HTMLBRElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLBaseFontElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLBaseFontElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLBaseFontElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLBodyElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLBodyElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLBodyElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLBodyElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLBodyElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLBodyElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection01.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection02.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection03.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection04.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection05.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection06.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection07.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection08.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection09.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection10.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection11.js
│   │           │           │   ā”œā”€ā”€ HTMLCollection12.js
│   │           │           │   ā”œā”€ā”€ HTMLDirectoryElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLDivElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLDlistElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument08.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument11.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument13.js
│   │           │           │   ā”œā”€ā”€ HTMLDocument14.js
│   │           │           │   ā”œā”€ā”€ HTMLFontElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLFontElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLFontElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLFormElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameElement07.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameSetElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLFrameSetElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLHRElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLHRElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLHRElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLHRElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLHeadElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLHeadingElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLHeadingElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLHeadingElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLHeadingElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLHeadingElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLHeadingElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLHtmlElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLIFrameElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLIFrameElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLIFrameElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLIFrameElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLIFrameElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLIFrameElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLImageElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLImageElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLImageElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLImageElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLImageElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLImageElement10.js
│   │           │           │   ā”œā”€ā”€ HTMLImageElement14.js
│   │           │           │   ā”œā”€ā”€ HTMLInputElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLInputElement17.js
│   │           │           │   ā”œā”€ā”€ HTMLIsIndexElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLIsIndexElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLIsIndexElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLLIElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLLegendElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLLegendElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLLegendElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLLegendElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLLinkElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLLinkElement07.js
│   │           │           │   ā”œā”€ā”€ HTMLLinkElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLMapElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLMenuElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLOListElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLObjectElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLObjectElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLObjectElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLObjectElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLObjectElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLObjectElement07.js
│   │           │           │   ā”œā”€ā”€ HTMLObjectElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLObjectElement12.js
│   │           │           │   ā”œā”€ā”€ HTMLOptionElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLOptionElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLOptionElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLParagraphElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLParamElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLParamElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLParamElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLPreElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCaptionElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement07.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement10.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement11.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement12.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement13.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement14.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement17.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement18.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement19.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement20.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement21.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement22.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement26.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement27.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement28.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement29.js
│   │           │           │   ā”œā”€ā”€ HTMLTableCellElement30.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement10.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement11.js
│   │           │           │   ā”œā”€ā”€ HTMLTableColElement12.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement10.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement11.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement13.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement14.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement15.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement16.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement17.js
│   │           │           │   ā”œā”€ā”€ HTMLTableElement18.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement07.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement10.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement11.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement12.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement13.js
│   │           │           │   ā”œā”€ā”€ HTMLTableRowElement14.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement02.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement03.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement04.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement05.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement06.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement07.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement08.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement09.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement10.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement11.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement12.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement16.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement17.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement18.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement19.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement20.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement21.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement22.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement23.js
│   │           │           │   ā”œā”€ā”€ HTMLTableSectionElement24.js
│   │           │           │   ā”œā”€ā”€ HTMLTextAreaElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLTextAreaElement11.js
│   │           │           │   ā”œā”€ā”€ HTMLTextAreaElement12.js
│   │           │           │   ā”œā”€ā”€ HTMLUListElement01.js
│   │           │           │   ā”œā”€ā”€ HTMLUListElement02.js
│   │           │           │   ā”œā”€ā”€ anchor02.js
│   │           │           │   ā”œā”€ā”€ anchor03.js
│   │           │           │   ā”œā”€ā”€ anchor06.js
│   │           │           │   ā”œā”€ā”€ basefont01.js
│   │           │           │   ā”œā”€ā”€ body01.js
│   │           │           │   ā”œā”€ā”€ dlist01.js
│   │           │           │   ā”œā”€ā”€ object02.js
│   │           │           │   ā”œā”€ā”€ object03.js
│   │           │           │   ā”œā”€ā”€ object04.js
│   │           │           │   ā”œā”€ā”€ object05.js
│   │           │           │   ā”œā”€ā”€ object09.js
│   │           │           │   ā”œā”€ā”€ object15.js
│   │           │           │   ā”œā”€ā”€ table02.js
│   │           │           │   ā”œā”€ā”€ table03.js
│   │           │           │   ā”œā”€ā”€ table04.js
│   │           │           │   ā”œā”€ā”€ table06.js
│   │           │           │   ā”œā”€ā”€ table07.js
│   │           │           │   ā”œā”€ā”€ table08.js
│   │           │           │   ā”œā”€ā”€ table09.js
│   │           │           │   ā”œā”€ā”€ table10.js
│   │           │           │   ā”œā”€ā”€ table12.js
│   │           │           │   ā”œā”€ā”€ table15.js
│   │           │           │   ā”œā”€ā”€ table17.js
│   │           │           │   ā”œā”€ā”€ table18.js
│   │           │           │   ā”œā”€ā”€ table19.js
│   │           │           │   ā”œā”€ā”€ table20.js
│   │           │           │   ā”œā”€ā”€ table21.js
│   │           │           │   ā”œā”€ā”€ table22.js
│   │           │           │   ā”œā”€ā”€ table23.js
│   │           │           │   ā”œā”€ā”€ table24.js
│   │           │           │   ā”œā”€ā”€ table26.js
│   │           │           │   ā”œā”€ā”€ table27.js
│   │           │           │   ā”œā”€ā”€ table29.js
│   │           │           │   ā”œā”€ā”€ table30.js
│   │           │           │   ā”œā”€ā”€ table31.js
│   │           │           │   ā”œā”€ā”€ table32.js
│   │           │           │   ā”œā”€ā”€ table33.js
│   │           │           │   ā”œā”€ā”€ table35.js
│   │           │           │   ā”œā”€ā”€ table36.js
│   │           │           │   ā”œā”€ā”€ table37.js
│   │           │           │   ā”œā”€ā”€ table38.js
│   │           │           │   ā”œā”€ā”€ table39.js
│   │           │           │   ā”œā”€ā”€ table40.js
│   │           │           │   ā”œā”€ā”€ table41.js
│   │           │           │   ā”œā”€ā”€ table42.js
│   │           │           │   ā”œā”€ā”€ table43.js
│   │           │           │   ā”œā”€ā”€ table44.js
│   │           │           │   ā”œā”€ā”€ table45.js
│   │           │           │   ā”œā”€ā”€ table46.js
│   │           │           │   ā”œā”€ā”€ table47.js
│   │           │           │   ā”œā”€ā”€ table48.js
│   │           │           │   ā”œā”€ā”€ table49.js
│   │           │           │   ā”œā”€ā”€ table50.js
│   │           │           │   ā”œā”€ā”€ table52.js
│   │           │           │   └── table53.js
│   │           │           ā”œā”€ā”€ table01.js
│   │           │           ā”œā”€ā”€ table25.js
│   │           │           ā”œā”€ā”€ table28.js
│   │           │           ā”œā”€ā”€ table34.js
│   │           │           └── table51.js
│   │           ā”œā”€ā”€ web-platform-blocklist.json
│   │           ā”œā”€ā”€ web-platform-tests.js
│   │           └── xss.js
│   ā”œā”€ā”€ @nodelib
│   │   ā”œā”€ā”€ fs.scandir
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ out
│   │   │   │   ā”œā”€ā”€ adapters
│   │   │   │   │   ā”œā”€ā”€ fs.d.ts
│   │   │   │   │   └── fs.js
│   │   │   │   ā”œā”€ā”€ constants.d.ts
│   │   │   │   ā”œā”€ā”€ constants.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ providers
│   │   │   │   │   ā”œā”€ā”€ async.d.ts
│   │   │   │   │   ā”œā”€ā”€ async.js
│   │   │   │   │   ā”œā”€ā”€ common.d.ts
│   │   │   │   │   ā”œā”€ā”€ common.js
│   │   │   │   │   ā”œā”€ā”€ sync.d.ts
│   │   │   │   │   └── sync.js
│   │   │   │   ā”œā”€ā”€ settings.d.ts
│   │   │   │   ā”œā”€ā”€ settings.js
│   │   │   │   ā”œā”€ā”€ types
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   └── utils
│   │   │   │       ā”œā”€ā”€ fs.d.ts
│   │   │   │       ā”œā”€ā”€ fs.js
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       └── index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ fs.stat
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ out
│   │   │   │   ā”œā”€ā”€ adapters
│   │   │   │   │   ā”œā”€ā”€ fs.d.ts
│   │   │   │   │   └── fs.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ providers
│   │   │   │   │   ā”œā”€ā”€ async.d.ts
│   │   │   │   │   ā”œā”€ā”€ async.js
│   │   │   │   │   ā”œā”€ā”€ sync.d.ts
│   │   │   │   │   └── sync.js
│   │   │   │   ā”œā”€ā”€ settings.d.ts
│   │   │   │   ā”œā”€ā”€ settings.js
│   │   │   │   └── types
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       └── index.js
│   │   │   └── package.json
│   │   └── fs.walk
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ out
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ providers
│   │       │   │   ā”œā”€ā”€ async.d.ts
│   │       │   │   ā”œā”€ā”€ async.js
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ stream.d.ts
│   │       │   │   ā”œā”€ā”€ stream.js
│   │       │   │   ā”œā”€ā”€ sync.d.ts
│   │       │   │   └── sync.js
│   │       │   ā”œā”€ā”€ readers
│   │       │   │   ā”œā”€ā”€ async.d.ts
│   │       │   │   ā”œā”€ā”€ async.js
│   │       │   │   ā”œā”€ā”€ common.d.ts
│   │       │   │   ā”œā”€ā”€ common.js
│   │       │   │   ā”œā”€ā”€ reader.d.ts
│   │       │   │   ā”œā”€ā”€ reader.js
│   │       │   │   ā”œā”€ā”€ sync.d.ts
│   │       │   │   └── sync.js
│   │       │   ā”œā”€ā”€ settings.d.ts
│   │       │   ā”œā”€ā”€ settings.js
│   │       │   └── types
│   │       │       ā”œā”€ā”€ index.d.ts
│   │       │       └── index.js
│   │       └── package.json
│   ā”œā”€ā”€ @pagefind
│   │   └── linux-x64
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ bin
│   │       │   ā”œā”€ā”€ pagefind-v1.3.0-x86_64-unknown-linux-musl.tar.gz.sha256
│   │       │   ā”œā”€ā”€ pagefind_extended
│   │       │   └── pagefind_extended-v1.3.0-x86_64-unknown-linux-musl.tar.gz.sha256
│   │       └── package.json
│   ā”œā”€ā”€ @pkgjs
│   │   └── parseargs
│   │       ā”œā”€ā”€ .editorconfig
│   │       ā”œā”€ā”€ CHANGELOG.md
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ examples
│   │       │   ā”œā”€ā”€ is-default-value.js
│   │       │   ā”œā”€ā”€ limit-long-syntax.js
│   │       │   ā”œā”€ā”€ negate.js
│   │       │   ā”œā”€ā”€ no-repeated-options.js
│   │       │   ā”œā”€ā”€ ordered-options.mjs
│   │       │   └── simple-hard-coded.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ internal
│   │       │   ā”œā”€ā”€ errors.js
│   │       │   ā”œā”€ā”€ primordials.js
│   │       │   ā”œā”€ā”€ util.js
│   │       │   └── validators.js
│   │       ā”œā”€ā”€ package.json
│   │       └── utils.js
│   ā”œā”€ā”€ @polka
│   │   └── url
│   │       ā”œā”€ā”€ build.js
│   │       ā”œā”€ā”€ build.mjs
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ package.json
│   │       └── readme.md
│   ā”œā”€ā”€ @poppinss
│   │   ā”œā”€ā”€ colors
│   │   │   ā”œā”€ā”€ LICENSE.md
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ build
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ base.d.ts
│   │   │   │       ā”œā”€ā”€ kleur.d.ts
│   │   │   │       ā”œā”€ā”€ raw.d.ts
│   │   │   │       ā”œā”€ā”€ silent.d.ts
│   │   │   │       ā”œā”€ā”€ types.d.ts
│   │   │   │       └── types.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ dumper
│   │   │   ā”œā”€ā”€ LICENSE.md
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ build
│   │   │   │   ā”œā”€ā”€ chunk-26HALFTP.js
│   │   │   │   ā”œā”€ā”€ formatters
│   │   │   │   │   ā”œā”€ā”€ console
│   │   │   │   │   │   ā”œā”€ā”€ formatter.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ main.js
│   │   │   │   │   │   ā”œā”€ā”€ printers
│   │   │   │   │   │   │   └── main.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ themes.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   │   │   └── types.js
│   │   │   │   │   └── html
│   │   │   │   │       ā”œā”€ā”€ formatter.d.ts
│   │   │   │   │       ā”œā”€ā”€ head.d.ts
│   │   │   │   │       ā”œā”€ā”€ main.d.ts
│   │   │   │   │       ā”œā”€ā”€ main.js
│   │   │   │   │       ā”œā”€ā”€ printers
│   │   │   │   │       │   └── main.d.ts
│   │   │   │   │       ā”œā”€ā”€ themes.d.ts
│   │   │   │   │       ā”œā”€ā”€ types.d.ts
│   │   │   │   │       └── types.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ helpers.d.ts
│   │   │   │       ā”œā”€ā”€ parser.d.ts
│   │   │   │       ā”œā”€ā”€ tokenizers
│   │   │   │       │   └── main.d.ts
│   │   │   │       ā”œā”€ā”€ types.d.ts
│   │   │   │       └── types.js
│   │   │   └── package.json
│   │   └── exception
│   │       ā”œā”€ā”€ LICENSE.md
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ build
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.js
│   │       │   └── src
│   │       │       └── exception.d.ts
│   │       └── package.json
│   ā”œā”€ā”€ @prettier
│   │   └── sync
│   │       ā”œā”€ā”€ index.cjs
│   │       ā”œā”€ā”€ index.d.cts
│   │       ā”œā”€ā”€ license
│   │       ā”œā”€ā”€ package.json
│   │       └── readme.md
│   ā”œā”€ā”€ @rgrove
│   │   └── parse-xml
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ browser.js
│   │       │   ā”œā”€ā”€ browser.js.map
│   │       │   ā”œā”€ā”€ global.min.js
│   │       │   ā”œā”€ā”€ global.min.js.map
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.d.ts.map
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ index.js.map
│   │       │   └── lib
│   │       │       ā”œā”€ā”€ Parser.d.ts
│   │       │       ā”œā”€ā”€ Parser.d.ts.map
│   │       │       ā”œā”€ā”€ Parser.js
│   │       │       ā”œā”€ā”€ Parser.js.map
│   │       │       ā”œā”€ā”€ StringScanner.d.ts
│   │       │       ā”œā”€ā”€ StringScanner.d.ts.map
│   │       │       ā”œā”€ā”€ StringScanner.js
│   │       │       ā”œā”€ā”€ StringScanner.js.map
│   │       │       ā”œā”€ā”€ XmlCdata.d.ts
│   │       │       ā”œā”€ā”€ XmlCdata.d.ts.map
│   │       │       ā”œā”€ā”€ XmlCdata.js
│   │       │       ā”œā”€ā”€ XmlCdata.js.map
│   │       │       ā”œā”€ā”€ XmlComment.d.ts
│   │       │       ā”œā”€ā”€ XmlComment.d.ts.map
│   │       │       ā”œā”€ā”€ XmlComment.js
│   │       │       ā”œā”€ā”€ XmlComment.js.map
│   │       │       ā”œā”€ā”€ XmlDeclaration.d.ts
│   │       │       ā”œā”€ā”€ XmlDeclaration.d.ts.map
│   │       │       ā”œā”€ā”€ XmlDeclaration.js
│   │       │       ā”œā”€ā”€ XmlDeclaration.js.map
│   │       │       ā”œā”€ā”€ XmlDocument.d.ts
│   │       │       ā”œā”€ā”€ XmlDocument.d.ts.map
│   │       │       ā”œā”€ā”€ XmlDocument.js
│   │       │       ā”œā”€ā”€ XmlDocument.js.map
│   │       │       ā”œā”€ā”€ XmlDocumentType.d.ts
│   │       │       ā”œā”€ā”€ XmlDocumentType.d.ts.map
│   │       │       ā”œā”€ā”€ XmlDocumentType.js
│   │       │       ā”œā”€ā”€ XmlDocumentType.js.map
│   │       │       ā”œā”€ā”€ XmlElement.d.ts
│   │       │       ā”œā”€ā”€ XmlElement.d.ts.map
│   │       │       ā”œā”€ā”€ XmlElement.js
│   │       │       ā”œā”€ā”€ XmlElement.js.map
│   │       │       ā”œā”€ā”€ XmlError.d.ts
│   │       │       ā”œā”€ā”€ XmlError.d.ts.map
│   │       │       ā”œā”€ā”€ XmlError.js
│   │       │       ā”œā”€ā”€ XmlError.js.map
│   │       │       ā”œā”€ā”€ XmlNode.d.ts
│   │       │       ā”œā”€ā”€ XmlNode.d.ts.map
│   │       │       ā”œā”€ā”€ XmlNode.js
│   │       │       ā”œā”€ā”€ XmlNode.js.map
│   │       │       ā”œā”€ā”€ XmlProcessingInstruction.d.ts
│   │       │       ā”œā”€ā”€ XmlProcessingInstruction.d.ts.map
│   │       │       ā”œā”€ā”€ XmlProcessingInstruction.js
│   │       │       ā”œā”€ā”€ XmlProcessingInstruction.js.map
│   │       │       ā”œā”€ā”€ XmlText.d.ts
│   │       │       ā”œā”€ā”€ XmlText.d.ts.map
│   │       │       ā”œā”€ā”€ XmlText.js
│   │       │       ā”œā”€ā”€ XmlText.js.map
│   │       │       ā”œā”€ā”€ syntax.d.ts
│   │       │       ā”œā”€ā”€ syntax.d.ts.map
│   │       │       ā”œā”€ā”€ syntax.js
│   │       │       ā”œā”€ā”€ syntax.js.map
│   │       │       ā”œā”€ā”€ types.d.ts
│   │       │       ā”œā”€ā”€ types.d.ts.map
│   │       │       ā”œā”€ā”€ types.js
│   │       │       └── types.js.map
│   │       ā”œā”€ā”€ package.json
│   │       └── src
│   │           ā”œā”€ā”€ index.ts
│   │           └── lib
│   │               ā”œā”€ā”€ Parser.ts
│   │               ā”œā”€ā”€ StringScanner.ts
│   │               ā”œā”€ā”€ XmlCdata.ts
│   │               ā”œā”€ā”€ XmlComment.ts
│   │               ā”œā”€ā”€ XmlDeclaration.ts
│   │               ā”œā”€ā”€ XmlDocument.ts
│   │               ā”œā”€ā”€ XmlDocumentType.ts
│   │               ā”œā”€ā”€ XmlElement.ts
│   │               ā”œā”€ā”€ XmlError.ts
│   │               ā”œā”€ā”€ XmlNode.ts
│   │               ā”œā”€ā”€ XmlProcessingInstruction.ts
│   │               ā”œā”€ā”€ XmlText.ts
│   │               ā”œā”€ā”€ syntax.ts
│   │               └── types.ts
│   ā”œā”€ā”€ @rollup
│   │   ā”œā”€ā”€ rollup-linux-x64-gnu
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── rollup.linux-x64-gnu.node
│   │   └── rollup-linux-x64-musl
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ package.json
│   │       └── rollup.linux-x64-musl.node
│   ā”œā”€ā”€ @sindresorhus
│   │   ā”œā”€ā”€ is
│   │   │   ā”œā”€ā”€ distribution
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   └── types.js
│   │   │   ā”œā”€ā”€ license
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── readme.md
│   │   ā”œā”€ā”€ slugify
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ license
│   │   │   ā”œā”€ā”€ overridable-replacements.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── readme.md
│   │   └── transliterate
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ license
│   │       ā”œā”€ā”€ package.json
│   │       ā”œā”€ā”€ readme.md
│   │       └── replacements.js
│   ā”œā”€ā”€ @speed-highlight
│   │   └── core
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ common.d.ts
│   │       │   ā”œā”€ā”€ common.d.ts.map
│   │       │   ā”œā”€ā”€ common.js
│   │       │   ā”œā”€ā”€ detect.d.ts
│   │       │   ā”œā”€ā”€ detect.d.ts.map
│   │       │   ā”œā”€ā”€ detect.js
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.d.ts.map
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ languages
│   │       │   │   ā”œā”€ā”€ asm.d.ts
│   │       │   │   ā”œā”€ā”€ asm.d.ts.map
│   │       │   │   ā”œā”€ā”€ asm.js
│   │       │   │   ā”œā”€ā”€ bash.d.ts
│   │       │   │   ā”œā”€ā”€ bash.d.ts.map
│   │       │   │   ā”œā”€ā”€ bash.js
│   │       │   │   ā”œā”€ā”€ bf.d.ts
│   │       │   │   ā”œā”€ā”€ bf.d.ts.map
│   │       │   │   ā”œā”€ā”€ bf.js
│   │       │   │   ā”œā”€ā”€ c.d.ts
│   │       │   │   ā”œā”€ā”€ c.d.ts.map
│   │       │   │   ā”œā”€ā”€ c.js
│   │       │   │   ā”œā”€ā”€ css.d.ts
│   │       │   │   ā”œā”€ā”€ css.d.ts.map
│   │       │   │   ā”œā”€ā”€ css.js
│   │       │   │   ā”œā”€ā”€ csv.d.ts
│   │       │   │   ā”œā”€ā”€ csv.d.ts.map
│   │       │   │   ā”œā”€ā”€ csv.js
│   │       │   │   ā”œā”€ā”€ diff.d.ts
│   │       │   │   ā”œā”€ā”€ diff.d.ts.map
│   │       │   │   ā”œā”€ā”€ diff.js
│   │       │   │   ā”œā”€ā”€ docker.d.ts
│   │       │   │   ā”œā”€ā”€ docker.d.ts.map
│   │       │   │   ā”œā”€ā”€ docker.js
│   │       │   │   ā”œā”€ā”€ git.d.ts
│   │       │   │   ā”œā”€ā”€ git.d.ts.map
│   │       │   │   ā”œā”€ā”€ git.js
│   │       │   │   ā”œā”€ā”€ go.d.ts
│   │       │   │   ā”œā”€ā”€ go.d.ts.map
│   │       │   │   ā”œā”€ā”€ go.js
│   │       │   │   ā”œā”€ā”€ html.d.ts
│   │       │   │   ā”œā”€ā”€ html.d.ts.map
│   │       │   │   ā”œā”€ā”€ html.js
│   │       │   │   ā”œā”€ā”€ http.d.ts
│   │       │   │   ā”œā”€ā”€ http.d.ts.map
│   │       │   │   ā”œā”€ā”€ http.js
│   │       │   │   ā”œā”€ā”€ ini.d.ts
│   │       │   │   ā”œā”€ā”€ ini.d.ts.map
│   │       │   │   ā”œā”€ā”€ ini.js
│   │       │   │   ā”œā”€ā”€ java.d.ts
│   │       │   │   ā”œā”€ā”€ java.d.ts.map
│   │       │   │   ā”œā”€ā”€ java.js
│   │       │   │   ā”œā”€ā”€ js.d.ts
│   │       │   │   ā”œā”€ā”€ js.d.ts.map
│   │       │   │   ā”œā”€ā”€ js.js
│   │       │   │   ā”œā”€ā”€ js_template_literals.d.ts
│   │       │   │   ā”œā”€ā”€ js_template_literals.d.ts.map
│   │       │   │   ā”œā”€ā”€ js_template_literals.js
│   │       │   │   ā”œā”€ā”€ jsdoc.d.ts
│   │       │   │   ā”œā”€ā”€ jsdoc.d.ts.map
│   │       │   │   ā”œā”€ā”€ jsdoc.js
│   │       │   │   ā”œā”€ā”€ json.d.ts
│   │       │   │   ā”œā”€ā”€ json.d.ts.map
│   │       │   │   ā”œā”€ā”€ json.js
│   │       │   │   ā”œā”€ā”€ leanpub-md.d.ts
│   │       │   │   ā”œā”€ā”€ leanpub-md.d.ts.map
│   │       │   │   ā”œā”€ā”€ leanpub-md.js
│   │       │   │   ā”œā”€ā”€ log.d.ts
│   │       │   │   ā”œā”€ā”€ log.d.ts.map
│   │       │   │   ā”œā”€ā”€ log.js
│   │       │   │   ā”œā”€ā”€ lua.d.ts
│   │       │   │   ā”œā”€ā”€ lua.d.ts.map
│   │       │   │   ā”œā”€ā”€ lua.js
│   │       │   │   ā”œā”€ā”€ make.d.ts
│   │       │   │   ā”œā”€ā”€ make.d.ts.map
│   │       │   │   ā”œā”€ā”€ make.js
│   │       │   │   ā”œā”€ā”€ md.d.ts
│   │       │   │   ā”œā”€ā”€ md.d.ts.map
│   │       │   │   ā”œā”€ā”€ md.js
│   │       │   │   ā”œā”€ā”€ pl.d.ts
│   │       │   │   ā”œā”€ā”€ pl.d.ts.map
│   │       │   │   ā”œā”€ā”€ pl.js
│   │       │   │   ā”œā”€ā”€ plain.d.ts
│   │       │   │   ā”œā”€ā”€ plain.d.ts.map
│   │       │   │   ā”œā”€ā”€ plain.js
│   │       │   │   ā”œā”€ā”€ py.d.ts
│   │       │   │   ā”œā”€ā”€ py.d.ts.map
│   │       │   │   ā”œā”€ā”€ py.js
│   │       │   │   ā”œā”€ā”€ regex.d.ts
│   │       │   │   ā”œā”€ā”€ regex.d.ts.map
│   │       │   │   ā”œā”€ā”€ regex.js
│   │       │   │   ā”œā”€ā”€ rs.d.ts
│   │       │   │   ā”œā”€ā”€ rs.d.ts.map
│   │       │   │   ā”œā”€ā”€ rs.js
│   │       │   │   ā”œā”€ā”€ sql.d.ts
│   │       │   │   ā”œā”€ā”€ sql.d.ts.map
│   │       │   │   ā”œā”€ā”€ sql.js
│   │       │   │   ā”œā”€ā”€ todo.d.ts
│   │       │   │   ā”œā”€ā”€ todo.d.ts.map
│   │       │   │   ā”œā”€ā”€ todo.js
│   │       │   │   ā”œā”€ā”€ toml.d.ts
│   │       │   │   ā”œā”€ā”€ toml.d.ts.map
│   │       │   │   ā”œā”€ā”€ toml.js
│   │       │   │   ā”œā”€ā”€ ts.d.ts
│   │       │   │   ā”œā”€ā”€ ts.d.ts.map
│   │       │   │   ā”œā”€ā”€ ts.js
│   │       │   │   ā”œā”€ā”€ uri.d.ts
│   │       │   │   ā”œā”€ā”€ uri.d.ts.map
│   │       │   │   ā”œā”€ā”€ uri.js
│   │       │   │   ā”œā”€ā”€ xml.d.ts
│   │       │   │   ā”œā”€ā”€ xml.d.ts.map
│   │       │   │   ā”œā”€ā”€ xml.js
│   │       │   │   ā”œā”€ā”€ yaml.d.ts
│   │       │   │   ā”œā”€ā”€ yaml.d.ts.map
│   │       │   │   └── yaml.js
│   │       │   ā”œā”€ā”€ node
│   │       │   │   ā”œā”€ā”€ common.d.ts
│   │       │   │   ā”œā”€ā”€ common.d.ts.map
│   │       │   │   ā”œā”€ā”€ common.js
│   │       │   │   ā”œā”€ā”€ detect.d.ts
│   │       │   │   ā”œā”€ā”€ detect.d.ts.map
│   │       │   │   ā”œā”€ā”€ detect.js
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.d.ts.map
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ languages
│   │       │   │   │   ā”œā”€ā”€ asm.d.ts
│   │       │   │   │   ā”œā”€ā”€ asm.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ asm.js
│   │       │   │   │   ā”œā”€ā”€ bash.d.ts
│   │       │   │   │   ā”œā”€ā”€ bash.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ bash.js
│   │       │   │   │   ā”œā”€ā”€ bf.d.ts
│   │       │   │   │   ā”œā”€ā”€ bf.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ bf.js
│   │       │   │   │   ā”œā”€ā”€ c.d.ts
│   │       │   │   │   ā”œā”€ā”€ c.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ c.js
│   │       │   │   │   ā”œā”€ā”€ css.d.ts
│   │       │   │   │   ā”œā”€ā”€ css.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ css.js
│   │       │   │   │   ā”œā”€ā”€ csv.d.ts
│   │       │   │   │   ā”œā”€ā”€ csv.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ csv.js
│   │       │   │   │   ā”œā”€ā”€ diff.d.ts
│   │       │   │   │   ā”œā”€ā”€ diff.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ diff.js
│   │       │   │   │   ā”œā”€ā”€ docker.d.ts
│   │       │   │   │   ā”œā”€ā”€ docker.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ docker.js
│   │       │   │   │   ā”œā”€ā”€ git.d.ts
│   │       │   │   │   ā”œā”€ā”€ git.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ git.js
│   │       │   │   │   ā”œā”€ā”€ go.d.ts
│   │       │   │   │   ā”œā”€ā”€ go.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ go.js
│   │       │   │   │   ā”œā”€ā”€ html.d.ts
│   │       │   │   │   ā”œā”€ā”€ html.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ html.js
│   │       │   │   │   ā”œā”€ā”€ http.d.ts
│   │       │   │   │   ā”œā”€ā”€ http.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ http.js
│   │       │   │   │   ā”œā”€ā”€ ini.d.ts
│   │       │   │   │   ā”œā”€ā”€ ini.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ ini.js
│   │       │   │   │   ā”œā”€ā”€ java.d.ts
│   │       │   │   │   ā”œā”€ā”€ java.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ java.js
│   │       │   │   │   ā”œā”€ā”€ js.d.ts
│   │       │   │   │   ā”œā”€ā”€ js.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ js.js
│   │       │   │   │   ā”œā”€ā”€ js_template_literals.d.ts
│   │       │   │   │   ā”œā”€ā”€ js_template_literals.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ js_template_literals.js
│   │       │   │   │   ā”œā”€ā”€ jsdoc.d.ts
│   │       │   │   │   ā”œā”€ā”€ jsdoc.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ jsdoc.js
│   │       │   │   │   ā”œā”€ā”€ json.d.ts
│   │       │   │   │   ā”œā”€ā”€ json.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ json.js
│   │       │   │   │   ā”œā”€ā”€ leanpub-md.d.ts
│   │       │   │   │   ā”œā”€ā”€ leanpub-md.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ leanpub-md.js
│   │       │   │   │   ā”œā”€ā”€ log.d.ts
│   │       │   │   │   ā”œā”€ā”€ log.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ log.js
│   │       │   │   │   ā”œā”€ā”€ lua.d.ts
│   │       │   │   │   ā”œā”€ā”€ lua.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ lua.js
│   │       │   │   │   ā”œā”€ā”€ make.d.ts
│   │       │   │   │   ā”œā”€ā”€ make.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ make.js
│   │       │   │   │   ā”œā”€ā”€ md.d.ts
│   │       │   │   │   ā”œā”€ā”€ md.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ md.js
│   │       │   │   │   ā”œā”€ā”€ pl.d.ts
│   │       │   │   │   ā”œā”€ā”€ pl.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ pl.js
│   │       │   │   │   ā”œā”€ā”€ plain.d.ts
│   │       │   │   │   ā”œā”€ā”€ plain.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ plain.js
│   │       │   │   │   ā”œā”€ā”€ py.d.ts
│   │       │   │   │   ā”œā”€ā”€ py.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ py.js
│   │       │   │   │   ā”œā”€ā”€ regex.d.ts
│   │       │   │   │   ā”œā”€ā”€ regex.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ regex.js
│   │       │   │   │   ā”œā”€ā”€ rs.d.ts
│   │       │   │   │   ā”œā”€ā”€ rs.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ rs.js
│   │       │   │   │   ā”œā”€ā”€ sql.d.ts
│   │       │   │   │   ā”œā”€ā”€ sql.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ sql.js
│   │       │   │   │   ā”œā”€ā”€ todo.d.ts
│   │       │   │   │   ā”œā”€ā”€ todo.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ todo.js
│   │       │   │   │   ā”œā”€ā”€ toml.d.ts
│   │       │   │   │   ā”œā”€ā”€ toml.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ toml.js
│   │       │   │   │   ā”œā”€ā”€ ts.d.ts
│   │       │   │   │   ā”œā”€ā”€ ts.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ ts.js
│   │       │   │   │   ā”œā”€ā”€ uri.d.ts
│   │       │   │   │   ā”œā”€ā”€ uri.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ uri.js
│   │       │   │   │   ā”œā”€ā”€ xml.d.ts
│   │       │   │   │   ā”œā”€ā”€ xml.d.ts.map
│   │       │   │   │   ā”œā”€ā”€ xml.js
│   │       │   │   │   ā”œā”€ā”€ yaml.d.ts
│   │       │   │   │   ā”œā”€ā”€ yaml.d.ts.map
│   │       │   │   │   └── yaml.js
│   │       │   │   ā”œā”€ā”€ package.json
│   │       │   │   ā”œā”€ā”€ terminal.d.ts
│   │       │   │   ā”œā”€ā”€ terminal.d.ts.map
│   │       │   │   ā”œā”€ā”€ terminal.js
│   │       │   │   └── themes
│   │       │   │       ā”œā”€ā”€ atom-dark.d.ts
│   │       │   │       ā”œā”€ā”€ atom-dark.d.ts.map
│   │       │   │       ā”œā”€ā”€ atom-dark.js
│   │       │   │       ā”œā”€ā”€ default.d.ts
│   │       │   │       ā”œā”€ā”€ default.d.ts.map
│   │       │   │       ā”œā”€ā”€ default.js
│   │       │   │       ā”œā”€ā”€ termcolor.d.ts
│   │       │   │       ā”œā”€ā”€ termcolor.d.ts.map
│   │       │   │       └── termcolor.js
│   │       │   ā”œā”€ā”€ terminal.d.ts
│   │       │   ā”œā”€ā”€ terminal.d.ts.map
│   │       │   ā”œā”€ā”€ terminal.js
│   │       │   └── themes
│   │       │       ā”œā”€ā”€ atom-dark.css
│   │       │       ā”œā”€ā”€ atom-dark.d.ts
│   │       │       ā”œā”€ā”€ atom-dark.d.ts.map
│   │       │       ā”œā”€ā”€ atom-dark.js
│   │       │       ā”œā”€ā”€ dark.css
│   │       │       ā”œā”€ā”€ default.css
│   │       │       ā”œā”€ā”€ default.d.ts
│   │       │       ā”œā”€ā”€ default.d.ts.map
│   │       │       ā”œā”€ā”€ default.js
│   │       │       ā”œā”€ā”€ github-dark.css
│   │       │       ā”œā”€ā”€ github-dim.css
│   │       │       ā”œā”€ā”€ github-light.css
│   │       │       ā”œā”€ā”€ termcolor.d.ts
│   │       │       ā”œā”€ā”€ termcolor.d.ts.map
│   │       │       ā”œā”€ā”€ termcolor.js
│   │       │       └── visual-studio-dark.css
│   │       └── package.json
│   ā”œā”€ā”€ @tweetback
│   │   └── canonical
│   │       ā”œā”€ā”€ .github
│   │       │   ā”œā”€ā”€ pull_request_template.md
│   │       │   └── workflows
│   │       │       └── release.yml
│   │       ā”œā”€ā”€ .prettierrc
│   │       ā”œā”€ā”€ .releaserc.json
│   │       ā”œā”€ā”€ CHANGELOG.md
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ mapping.js
│   │       ā”œā”€ā”€ package.json
│   │       ā”œā”€ā”€ test
│   │       │   └── transformTest.js
│   │       └── transform.js
│   ā”œā”€ā”€ @types
│   │   ā”œā”€ā”€ chai
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ package.json
│   │   │   └── register-should.d.ts
│   │   ā”œā”€ā”€ d3
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-array
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-axis
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-brush
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-chord
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-color
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-contour
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-delaunay
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-dispatch
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-drag
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-dsv
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-ease
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-fetch
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-force
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-format
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-geo
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-hierarchy
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-interpolate
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-path
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-polygon
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-quadtree
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-random
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-scale
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-scale-chromatic
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-selection
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-shape
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-time
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-time-format
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-timer
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-transition
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ d3-zoom
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ deep-eql
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ estree
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ flow.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ geojson
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ json-schema
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── package.json
│   │   └── trusted-types
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ lib
│   │       │   └── index.d.ts
│   │       └── package.json
│   ā”œā”€ā”€ @vitest
│   │   ā”œā”€ā”€ coverage-v8
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ browser.d.ts
│   │   │   │   ā”œā”€ā”€ browser.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ load-provider-CdgAx3rL.js
│   │   │   │   ā”œā”€ā”€ provider.d.ts
│   │   │   │   └── provider.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ expect
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   └── index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ mocker
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ auto-register.d.ts
│   │   │   │   ā”œā”€ā”€ auto-register.js
│   │   │   │   ā”œā”€ā”€ browser.d.ts
│   │   │   │   ā”œā”€ā”€ browser.js
│   │   │   │   ā”œā”€ā”€ chunk-interceptor-native.js
│   │   │   │   ā”œā”€ā”€ chunk-mocker.js
│   │   │   │   ā”œā”€ā”€ chunk-pathe.M-eThtNZ.js
│   │   │   │   ā”œā”€ā”€ chunk-registry.js
│   │   │   │   ā”œā”€ā”€ chunk-utils.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ mocker.d-Ce9_ySj5.d.ts
│   │   │   │   ā”œā”€ā”€ node.d.ts
│   │   │   │   ā”œā”€ā”€ node.js
│   │   │   │   ā”œā”€ā”€ redirect.d.ts
│   │   │   │   ā”œā”€ā”€ redirect.js
│   │   │   │   ā”œā”€ā”€ register.d.ts
│   │   │   │   ā”œā”€ā”€ register.js
│   │   │   │   ā”œā”€ā”€ registry.d-D765pazg.d.ts
│   │   │   │   └── types.d-D_aRZRdy.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ pretty-format
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   └── index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ runner
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ chunk-hooks.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ tasks.d-CkscK4of.d.ts
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   ā”œā”€ā”€ types.js
│   │   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   │   └── utils.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   └── utils.d.ts
│   │   ā”œā”€ā”€ snapshot
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ environment.d-DHdQ1Csl.d.ts
│   │   │   │   ā”œā”€ā”€ environment.d.ts
│   │   │   │   ā”œā”€ā”€ environment.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ manager.d.ts
│   │   │   │   ā”œā”€ā”€ manager.js
│   │   │   │   └── rawSnapshot.d-lFsMJFUd.d.ts
│   │   │   ā”œā”€ā”€ environment.d.ts
│   │   │   ā”œā”€ā”€ manager.d.ts
│   │   │   └── package.json
│   │   ā”œā”€ā”€ spy
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   └── index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ ui
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ client
│   │   │   │   │   ā”œā”€ā”€ assets
│   │   │   │   │   │   ā”œā”€ā”€ index-D_ryMEPs.js
│   │   │   │   │   │   └── index-X8b7Z_4p.css
│   │   │   │   │   ā”œā”€ā”€ bg.png
│   │   │   │   │   ā”œā”€ā”€ favicon.ico
│   │   │   │   │   ā”œā”€ā”€ favicon.svg
│   │   │   │   │   └── index.html
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── reporter.js
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ reporter.d.ts
│   │   │   └── shim.d.ts
│   │   └── utils
│   │       ā”œā”€ā”€ LICENSE
│   │       ā”œā”€ā”€ diff.d.ts
│   │       ā”œā”€ā”€ dist
│   │       │   ā”œā”€ā”€ chunk-_commonjsHelpers.js
│   │       │   ā”œā”€ā”€ diff.d.ts
│   │       │   ā”œā”€ā”€ diff.js
│   │       │   ā”œā”€ā”€ error.d.ts
│   │       │   ā”œā”€ā”€ error.js
│   │       │   ā”œā”€ā”€ helpers.d.ts
│   │       │   ā”œā”€ā”€ helpers.js
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ source-map.d.ts
│   │       │   ā”œā”€ā”€ source-map.js
│   │       │   ā”œā”€ā”€ types.d-BCElaP-c.d.ts
│   │       │   ā”œā”€ā”€ types.d.ts
│   │       │   └── types.js
│   │       ā”œā”€ā”€ error.d.ts
│   │       ā”œā”€ā”€ helpers.d.ts
│   │       └── package.json
│   ā”œā”€ā”€ @zachleat
│   │   ā”œā”€ā”€ details-utils
│   │   │   ā”œā”€ā”€ LICENSE.md
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ demo.html
│   │   │   ā”œā”€ā”€ details-utils.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ filter-container
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ demo.html
│   │   │   ā”œā”€ā”€ filter-container.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ flex-luthor
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ demo-src
│   │   │   │   ā”œā”€ā”€ eleventy.config.js
│   │   │   │   ā”œā”€ā”€ index.njk
│   │   │   │   └── prism-theme.css
│   │   │   ā”œā”€ā”€ flex-luthor-debug-fill.css
│   │   │   ā”œā”€ā”€ flex-luthor-separators.css
│   │   │   ā”œā”€ā”€ flex-luthor.css
│   │   │   └── package.json
│   │   ā”œā”€ā”€ heading-anchors
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ demo.html
│   │   │   ā”œā”€ā”€ heading-anchors.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ line-numbers
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ demo.html
│   │   │   ā”œā”€ā”€ line-numbers.js
│   │   │   └── package.json
│   │   └── seven-minute-tabs
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ demo.html
│   │       ā”œā”€ā”€ package.json
│   │       └── seven-minute-tabs.js
│   ā”œā”€ā”€ a-sync-waterfall
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test.js
│   ā”œā”€ā”€ acorn
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── acorn
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ acorn.d.mts
│   │   │   ā”œā”€ā”€ acorn.d.ts
│   │   │   ā”œā”€ā”€ acorn.js
│   │   │   ā”œā”€ā”€ acorn.mjs
│   │   │   └── bin.js
│   │   └── package.json
│   ā”œā”€ā”€ acorn-jsx
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── xhtml.js
│   ā”œā”€ā”€ acorn-walk
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ walk.d.mts
│   │   │   ā”œā”€ā”€ walk.d.ts
│   │   │   ā”œā”€ā”€ walk.js
│   │   │   └── walk.mjs
│   │   └── package.json
│   ā”œā”€ā”€ ajv
│   │   ā”œā”€ā”€ .tonic_example.js
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ ajv.bundle.js
│   │   │   ā”œā”€ā”€ ajv.min.js
│   │   │   └── ajv.min.js.map
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ ajv.d.ts
│   │   │   ā”œā”€ā”€ ajv.js
│   │   │   ā”œā”€ā”€ cache.js
│   │   │   ā”œā”€ā”€ compile
│   │   │   │   ā”œā”€ā”€ async.js
│   │   │   │   ā”œā”€ā”€ equal.js
│   │   │   │   ā”œā”€ā”€ error_classes.js
│   │   │   │   ā”œā”€ā”€ formats.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ resolve.js
│   │   │   │   ā”œā”€ā”€ rules.js
│   │   │   │   ā”œā”€ā”€ schema_obj.js
│   │   │   │   ā”œā”€ā”€ ucs2length.js
│   │   │   │   └── util.js
│   │   │   ā”œā”€ā”€ data.js
│   │   │   ā”œā”€ā”€ definition_schema.js
│   │   │   ā”œā”€ā”€ dot
│   │   │   │   ā”œā”€ā”€ _limit.jst
│   │   │   │   ā”œā”€ā”€ _limitItems.jst
│   │   │   │   ā”œā”€ā”€ _limitLength.jst
│   │   │   │   ā”œā”€ā”€ _limitProperties.jst
│   │   │   │   ā”œā”€ā”€ allOf.jst
│   │   │   │   ā”œā”€ā”€ anyOf.jst
│   │   │   │   ā”œā”€ā”€ coerce.def
│   │   │   │   ā”œā”€ā”€ comment.jst
│   │   │   │   ā”œā”€ā”€ const.jst
│   │   │   │   ā”œā”€ā”€ contains.jst
│   │   │   │   ā”œā”€ā”€ custom.jst
│   │   │   │   ā”œā”€ā”€ defaults.def
│   │   │   │   ā”œā”€ā”€ definitions.def
│   │   │   │   ā”œā”€ā”€ dependencies.jst
│   │   │   │   ā”œā”€ā”€ enum.jst
│   │   │   │   ā”œā”€ā”€ errors.def
│   │   │   │   ā”œā”€ā”€ format.jst
│   │   │   │   ā”œā”€ā”€ if.jst
│   │   │   │   ā”œā”€ā”€ items.jst
│   │   │   │   ā”œā”€ā”€ missing.def
│   │   │   │   ā”œā”€ā”€ multipleOf.jst
│   │   │   │   ā”œā”€ā”€ not.jst
│   │   │   │   ā”œā”€ā”€ oneOf.jst
│   │   │   │   ā”œā”€ā”€ pattern.jst
│   │   │   │   ā”œā”€ā”€ properties.jst
│   │   │   │   ā”œā”€ā”€ propertyNames.jst
│   │   │   │   ā”œā”€ā”€ ref.jst
│   │   │   │   ā”œā”€ā”€ required.jst
│   │   │   │   ā”œā”€ā”€ uniqueItems.jst
│   │   │   │   └── validate.jst
│   │   │   ā”œā”€ā”€ dotjs
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ _limit.js
│   │   │   │   ā”œā”€ā”€ _limitItems.js
│   │   │   │   ā”œā”€ā”€ _limitLength.js
│   │   │   │   ā”œā”€ā”€ _limitProperties.js
│   │   │   │   ā”œā”€ā”€ allOf.js
│   │   │   │   ā”œā”€ā”€ anyOf.js
│   │   │   │   ā”œā”€ā”€ comment.js
│   │   │   │   ā”œā”€ā”€ const.js
│   │   │   │   ā”œā”€ā”€ contains.js
│   │   │   │   ā”œā”€ā”€ custom.js
│   │   │   │   ā”œā”€ā”€ dependencies.js
│   │   │   │   ā”œā”€ā”€ enum.js
│   │   │   │   ā”œā”€ā”€ format.js
│   │   │   │   ā”œā”€ā”€ if.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ items.js
│   │   │   │   ā”œā”€ā”€ multipleOf.js
│   │   │   │   ā”œā”€ā”€ not.js
│   │   │   │   ā”œā”€ā”€ oneOf.js
│   │   │   │   ā”œā”€ā”€ pattern.js
│   │   │   │   ā”œā”€ā”€ properties.js
│   │   │   │   ā”œā”€ā”€ propertyNames.js
│   │   │   │   ā”œā”€ā”€ ref.js
│   │   │   │   ā”œā”€ā”€ required.js
│   │   │   │   ā”œā”€ā”€ uniqueItems.js
│   │   │   │   └── validate.js
│   │   │   ā”œā”€ā”€ keyword.js
│   │   │   └── refs
│   │   │       ā”œā”€ā”€ data.json
│   │   │       ā”œā”€ā”€ json-schema-draft-04.json
│   │   │       ā”œā”€ā”€ json-schema-draft-06.json
│   │   │       ā”œā”€ā”€ json-schema-draft-07.json
│   │   │       └── json-schema-secure.json
│   │   ā”œā”€ā”€ package.json
│   │   └── scripts
│   │       ā”œā”€ā”€ .eslintrc.yml
│   │       ā”œā”€ā”€ bundle.js
│   │       ā”œā”€ā”€ compile-dots.js
│   │       ā”œā”€ā”€ info
│   │       ā”œā”€ā”€ prepare-tests
│   │       ā”œā”€ā”€ publish-built-version
│   │       └── travis-gh-pages
│   ā”œā”€ā”€ ansi-escapes
│   │   ā”œā”€ā”€ base.d.ts
│   │   ā”œā”€ā”€ base.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ ansi-regex
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ ansi-styles
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ anymatch
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── picomatch
│   │   │       ā”œā”€ā”€ CHANGELOG.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ constants.js
│   │   │       │   ā”œā”€ā”€ parse.js
│   │   │       │   ā”œā”€ā”€ picomatch.js
│   │   │       │   ā”œā”€ā”€ scan.js
│   │   │       │   └── utils.js
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ argparse
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ argparse.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ sub.js
│   │   │   └── textwrap.js
│   │   └── package.json
│   ā”œā”€ā”€ array-differ
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ array-union
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ array-uniq
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ arrify
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ artificial-chart
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ artificial-chart.css
│   │   ā”œā”€ā”€ artificial-chart.js
│   │   ā”œā”€ā”€ demo.html
│   │   ā”œā”€ā”€ demo.js
│   │   └── package.json
│   ā”œā”€ā”€ asap
│   │   ā”œā”€ā”€ CHANGES.md
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ asap.js
│   │   ā”œā”€ā”€ browser-asap.js
│   │   ā”œā”€ā”€ browser-raw.js
│   │   ā”œā”€ā”€ package.json
│   │   └── raw.js
│   ā”œā”€ā”€ assertion-error
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ ast-v8-to-istanbul
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ async
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ async.js
│   │   │   └── async.min.js
│   │   ā”œā”€ā”€ lib
│   │   │   └── async.js
│   │   └── package.json
│   ā”œā”€ā”€ balanced-match
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ bcp-47
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ normal.d.ts
│   │   │   ā”œā”€ā”€ normal.js
│   │   │   ā”œā”€ā”€ parse.d.ts
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   ā”œā”€ā”€ regular.d.ts
│   │   │   ā”œā”€ā”€ regular.js
│   │   │   ā”œā”€ā”€ stringify.d.ts
│   │   │   └── stringify.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ bcp-47-match
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ bcp-47-normalize
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ fields.d.ts
│   │   │   ā”œā”€ā”€ fields.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ likely.d.ts
│   │   │   ā”œā”€ā”€ likely.js
│   │   │   ā”œā”€ā”€ many.d.ts
│   │   │   ā”œā”€ā”€ many.js
│   │   │   ā”œā”€ā”€ matches.d.ts
│   │   │   └── matches.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ binary-extensions
│   │   ā”œā”€ā”€ binary-extensions.json
│   │   ā”œā”€ā”€ binary-extensions.json.d.ts
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ blake3-wasm
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ benchmark.js
│   │   ā”œā”€ā”€ browser-async.d.ts
│   │   ā”œā”€ā”€ browser-async.js
│   │   ā”œā”€ā”€ browser.d.ts
│   │   ā”œā”€ā”€ browser.js
│   │   ā”œā”€ā”€ changelog.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ base
│   │   │   │   ā”œā”€ā”€ disposable.d.ts
│   │   │   │   ā”œā”€ā”€ disposable.js
│   │   │   │   ā”œā”€ā”€ disposable.js.map
│   │   │   │   ā”œā”€ā”€ disposable.test.d.ts
│   │   │   │   ā”œā”€ā”€ disposable.test.js
│   │   │   │   ā”œā”€ā”€ disposable.test.js.map
│   │   │   │   ā”œā”€ā”€ hash-fn.d.ts
│   │   │   │   ā”œā”€ā”€ hash-fn.js
│   │   │   │   ā”œā”€ā”€ hash-fn.js.map
│   │   │   │   ā”œā”€ā”€ hash-instance.d.ts
│   │   │   │   ā”œā”€ā”€ hash-instance.js
│   │   │   │   ā”œā”€ā”€ hash-instance.js.map
│   │   │   │   ā”œā”€ā”€ hash-reader.d.ts
│   │   │   │   ā”œā”€ā”€ hash-reader.js
│   │   │   │   ā”œā”€ā”€ hash-reader.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ test-helpers.d.ts
│   │   │   │   ā”œā”€ā”€ test-helpers.js
│   │   │   │   └── test-helpers.js.map
│   │   │   ā”œā”€ā”€ browser
│   │   │   │   ā”œā”€ā”€ encoding.d.ts
│   │   │   │   ā”œā”€ā”€ encoding.js
│   │   │   │   ā”œā”€ā”€ encoding.js.map
│   │   │   │   ā”œā”€ā”€ hash-fn.d.ts
│   │   │   │   ā”œā”€ā”€ hash-fn.js
│   │   │   │   ā”œā”€ā”€ hash-fn.js.map
│   │   │   │   ā”œā”€ā”€ hash-instance.d.ts
│   │   │   │   ā”œā”€ā”€ hash-instance.js
│   │   │   │   ā”œā”€ā”€ hash-instance.js.map
│   │   │   │   ā”œā”€ā”€ hash-reader.d.ts
│   │   │   │   ā”œā”€ā”€ hash-reader.js
│   │   │   │   ā”œā”€ā”€ hash-reader.js.map
│   │   │   │   ā”œā”€ā”€ hash.d.ts
│   │   │   │   ā”œā”€ā”€ hash.js
│   │   │   │   ā”œā”€ā”€ hash.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ wasm.d.ts
│   │   │   │   ā”œā”€ā”€ wasm.js
│   │   │   │   └── wasm.js.map
│   │   │   ā”œā”€ā”€ browser.test.d.ts
│   │   │   ā”œā”€ā”€ browser.test.js
│   │   │   ā”œā”€ā”€ browser.test.js.map
│   │   │   ā”œā”€ā”€ build
│   │   │   │   ā”œā”€ā”€ add-js-extensions.d.ts
│   │   │   │   ā”œā”€ā”€ add-js-extensions.js
│   │   │   │   ā”œā”€ā”€ add-js-extensions.js.map
│   │   │   │   ā”œā”€ā”€ generate-tasks.d.ts
│   │   │   │   ā”œā”€ā”€ generate-tasks.js
│   │   │   │   ā”œā”€ā”€ generate-tasks.js.map
│   │   │   │   ā”œā”€ā”€ install.d.ts
│   │   │   │   ā”œā”€ā”€ install.js
│   │   │   │   ā”œā”€ā”€ install.js.map
│   │   │   │   ā”œā”€ā”€ versions.d.ts
│   │   │   │   ā”œā”€ā”€ versions.js
│   │   │   │   └── versions.js.map
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ index.js.map
│   │   │   ā”œā”€ā”€ node
│   │   │   │   ā”œā”€ā”€ hash-fn.d.ts
│   │   │   │   ā”œā”€ā”€ hash-fn.js
│   │   │   │   ā”œā”€ā”€ hash-fn.js.map
│   │   │   │   ā”œā”€ā”€ hash-instance.d.ts
│   │   │   │   ā”œā”€ā”€ hash-instance.js
│   │   │   │   ā”œā”€ā”€ hash-instance.js.map
│   │   │   │   ā”œā”€ā”€ hash-reader.d.ts
│   │   │   │   ā”œā”€ā”€ hash-reader.js
│   │   │   │   ā”œā”€ā”€ hash-reader.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ wasm.d.ts
│   │   │   │   ā”œā”€ā”€ wasm.js
│   │   │   │   └── wasm.js.map
│   │   │   ā”œā”€ā”€ node-native
│   │   │   │   ā”œā”€ā”€ hash-fn.d.ts
│   │   │   │   ā”œā”€ā”€ hash-fn.js
│   │   │   │   ā”œā”€ā”€ hash-fn.js.map
│   │   │   │   ā”œā”€ā”€ hash-instance.d.ts
│   │   │   │   ā”œā”€ā”€ hash-instance.js
│   │   │   │   ā”œā”€ā”€ hash-instance.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ native.d.ts
│   │   │   │   ā”œā”€ā”€ native.js
│   │   │   │   └── native.js.map
│   │   │   ā”œā”€ā”€ node.test.d.ts
│   │   │   ā”œā”€ā”€ node.test.js
│   │   │   ā”œā”€ā”€ node.test.js.map
│   │   │   └── wasm
│   │   │       ā”œā”€ā”€ browser
│   │   │       │   ā”œā”€ā”€ blake3_js.d.ts
│   │   │       │   ā”œā”€ā”€ blake3_js.js
│   │   │       │   ā”œā”€ā”€ blake3_js_bg.wasm
│   │   │       │   └── package.json
│   │   │       ā”œā”€ā”€ nodejs
│   │   │       │   ā”œā”€ā”€ blake3_js.d.ts
│   │   │       │   ā”œā”€ā”€ blake3_js.js
│   │   │       │   ā”œā”€ā”€ blake3_js_bg.wasm
│   │   │       │   └── package.json
│   │   │       └── web
│   │   │           ā”œā”€ā”€ blake3_js.d.ts
│   │   │           ā”œā”€ā”€ blake3_js.js
│   │   │           ā”œā”€ā”€ blake3_js_bg.wasm
│   │   │           └── package.json
│   │   ā”œā”€ā”€ esm
│   │   │   ā”œā”€ā”€ base
│   │   │   │   ā”œā”€ā”€ disposable.d.ts
│   │   │   │   ā”œā”€ā”€ disposable.js
│   │   │   │   ā”œā”€ā”€ disposable.js.map
│   │   │   │   ā”œā”€ā”€ disposable.test.d.ts
│   │   │   │   ā”œā”€ā”€ disposable.test.js
│   │   │   │   ā”œā”€ā”€ disposable.test.js.map
│   │   │   │   ā”œā”€ā”€ hash-fn.d.ts
│   │   │   │   ā”œā”€ā”€ hash-fn.js
│   │   │   │   ā”œā”€ā”€ hash-fn.js.map
│   │   │   │   ā”œā”€ā”€ hash-instance.d.ts
│   │   │   │   ā”œā”€ā”€ hash-instance.js
│   │   │   │   ā”œā”€ā”€ hash-instance.js.map
│   │   │   │   ā”œā”€ā”€ hash-reader.d.ts
│   │   │   │   ā”œā”€ā”€ hash-reader.js
│   │   │   │   ā”œā”€ā”€ hash-reader.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ test-helpers.d.ts
│   │   │   │   ā”œā”€ā”€ test-helpers.js
│   │   │   │   └── test-helpers.js.map
│   │   │   ā”œā”€ā”€ browser
│   │   │   │   ā”œā”€ā”€ encoding.d.ts
│   │   │   │   ā”œā”€ā”€ encoding.js
│   │   │   │   ā”œā”€ā”€ encoding.js.map
│   │   │   │   ā”œā”€ā”€ hash-fn.d.ts
│   │   │   │   ā”œā”€ā”€ hash-fn.js
│   │   │   │   ā”œā”€ā”€ hash-fn.js.map
│   │   │   │   ā”œā”€ā”€ hash-instance.d.ts
│   │   │   │   ā”œā”€ā”€ hash-instance.js
│   │   │   │   ā”œā”€ā”€ hash-instance.js.map
│   │   │   │   ā”œā”€ā”€ hash-reader.d.ts
│   │   │   │   ā”œā”€ā”€ hash-reader.js
│   │   │   │   ā”œā”€ā”€ hash-reader.js.map
│   │   │   │   ā”œā”€ā”€ hash.d.ts
│   │   │   │   ā”œā”€ā”€ hash.js
│   │   │   │   ā”œā”€ā”€ hash.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ wasm.d.ts
│   │   │   │   ā”œā”€ā”€ wasm.js
│   │   │   │   └── wasm.js.map
│   │   │   ā”œā”€ā”€ browser.test.d.ts
│   │   │   ā”œā”€ā”€ browser.test.js
│   │   │   ā”œā”€ā”€ browser.test.js.map
│   │   │   ā”œā”€ā”€ build
│   │   │   │   ā”œā”€ā”€ add-js-extensions.d.ts
│   │   │   │   ā”œā”€ā”€ add-js-extensions.js
│   │   │   │   ā”œā”€ā”€ add-js-extensions.js.map
│   │   │   │   ā”œā”€ā”€ generate-tasks.d.ts
│   │   │   │   ā”œā”€ā”€ generate-tasks.js
│   │   │   │   ā”œā”€ā”€ generate-tasks.js.map
│   │   │   │   ā”œā”€ā”€ install.d.ts
│   │   │   │   ā”œā”€ā”€ install.js
│   │   │   │   ā”œā”€ā”€ install.js.map
│   │   │   │   ā”œā”€ā”€ versions.d.ts
│   │   │   │   ā”œā”€ā”€ versions.js
│   │   │   │   └── versions.js.map
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ index.js.map
│   │   │   ā”œā”€ā”€ node
│   │   │   │   ā”œā”€ā”€ hash-fn.d.ts
│   │   │   │   ā”œā”€ā”€ hash-fn.js
│   │   │   │   ā”œā”€ā”€ hash-fn.js.map
│   │   │   │   ā”œā”€ā”€ hash-instance.d.ts
│   │   │   │   ā”œā”€ā”€ hash-instance.js
│   │   │   │   ā”œā”€ā”€ hash-instance.js.map
│   │   │   │   ā”œā”€ā”€ hash-reader.d.ts
│   │   │   │   ā”œā”€ā”€ hash-reader.js
│   │   │   │   ā”œā”€ā”€ hash-reader.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ wasm.d.ts
│   │   │   │   ā”œā”€ā”€ wasm.js
│   │   │   │   └── wasm.js.map
│   │   │   ā”œā”€ā”€ node-native
│   │   │   │   ā”œā”€ā”€ hash-fn.d.ts
│   │   │   │   ā”œā”€ā”€ hash-fn.js
│   │   │   │   ā”œā”€ā”€ hash-fn.js.map
│   │   │   │   ā”œā”€ā”€ hash-instance.d.ts
│   │   │   │   ā”œā”€ā”€ hash-instance.js
│   │   │   │   ā”œā”€ā”€ hash-instance.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ native.d.ts
│   │   │   │   ā”œā”€ā”€ native.js
│   │   │   │   └── native.js.map
│   │   │   ā”œā”€ā”€ node.test.d.ts
│   │   │   ā”œā”€ā”€ node.test.js
│   │   │   └── node.test.js.map
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── targets.json
│   ā”œā”€ā”€ brace-expansion
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ braces
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ compile.js
│   │   │   ā”œā”€ā”€ constants.js
│   │   │   ā”œā”€ā”€ expand.js
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   ā”œā”€ā”€ stringify.js
│   │   │   └── utils.js
│   │   └── package.json
│   ā”œā”€ā”€ brotli-size
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ index.js.map
│   │   │   └── tsconfig.tsbuildinfo
│   │   └── package.json
│   ā”œā”€ā”€ buffer-from
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ cac
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ deno
│   │   │   ā”œā”€ā”€ CAC.ts
│   │   │   ā”œā”€ā”€ Command.ts
│   │   │   ā”œā”€ā”€ Option.ts
│   │   │   ā”œā”€ā”€ deno.ts
│   │   │   ā”œā”€ā”€ index.ts
│   │   │   └── utils.ts
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.mjs
│   │   ā”œā”€ā”€ index-compat.js
│   │   ā”œā”€ā”€ mod.js
│   │   ā”œā”€ā”€ mod.ts
│   │   └── package.json
│   ā”œā”€ā”€ call-bind-apply-helpers
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ actualApply.d.ts
│   │   ā”œā”€ā”€ actualApply.js
│   │   ā”œā”€ā”€ applyBind.d.ts
│   │   ā”œā”€ā”€ applyBind.js
│   │   ā”œā”€ā”€ functionApply.d.ts
│   │   ā”œā”€ā”€ functionApply.js
│   │   ā”œā”€ā”€ functionCall.d.ts
│   │   ā”œā”€ā”€ functionCall.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ reflectApply.d.ts
│   │   ā”œā”€ā”€ reflectApply.js
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ call-bound
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ callsites
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ chai
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ chai.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ chai
│   │   │   │   ā”œā”€ā”€ assertion.js
│   │   │   │   ā”œā”€ā”€ config.js
│   │   │   │   ā”œā”€ā”€ core
│   │   │   │   │   └── assertions.js
│   │   │   │   ā”œā”€ā”€ interface
│   │   │   │   │   ā”œā”€ā”€ assert.js
│   │   │   │   │   ā”œā”€ā”€ expect.js
│   │   │   │   │   └── should.js
│   │   │   │   └── utils
│   │   │   │       ā”œā”€ā”€ addChainableMethod.js
│   │   │   │       ā”œā”€ā”€ addLengthGuard.js
│   │   │   │       ā”œā”€ā”€ addMethod.js
│   │   │   │       ā”œā”€ā”€ addProperty.js
│   │   │   │       ā”œā”€ā”€ compareByInspect.js
│   │   │   │       ā”œā”€ā”€ expectTypes.js
│   │   │   │       ā”œā”€ā”€ flag.js
│   │   │   │       ā”œā”€ā”€ getActual.js
│   │   │   │       ā”œā”€ā”€ getMessage.js
│   │   │   │       ā”œā”€ā”€ getOperator.js
│   │   │   │       ā”œā”€ā”€ getOwnEnumerableProperties.js
│   │   │   │       ā”œā”€ā”€ getOwnEnumerablePropertySymbols.js
│   │   │   │       ā”œā”€ā”€ getProperties.js
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ inspect.js
│   │   │   │       ā”œā”€ā”€ isNaN.js
│   │   │   │       ā”œā”€ā”€ isProxyEnabled.js
│   │   │   │       ā”œā”€ā”€ objDisplay.js
│   │   │   │       ā”œā”€ā”€ overwriteChainableMethod.js
│   │   │   │       ā”œā”€ā”€ overwriteMethod.js
│   │   │   │       ā”œā”€ā”€ overwriteProperty.js
│   │   │   │       ā”œā”€ā”€ proxify.js
│   │   │   │       ā”œā”€ā”€ test.js
│   │   │   │       ā”œā”€ā”€ transferFlags.js
│   │   │   │       └── type-detect.js
│   │   │   └── chai.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ register-assert.js
│   │   ā”œā”€ā”€ register-expect.js
│   │   └── register-should.js
│   ā”œā”€ā”€ chalk
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── source
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ utilities.js
│   │       └── vendor
│   │           ā”œā”€ā”€ ansi-styles
│   │           │   ā”œā”€ā”€ index.d.ts
│   │           │   └── index.js
│   │           └── supports-color
│   │               ā”œā”€ā”€ browser.d.ts
│   │               ā”œā”€ā”€ browser.js
│   │               ā”œā”€ā”€ index.d.ts
│   │               └── index.js
│   ā”œā”€ā”€ check-error
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ chevrotain
│   │   ā”œā”€ā”€ BREAKING_CHANGES.md
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ chevrotain.d.ts
│   │   ā”œā”€ā”€ diagrams
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ diagrams.css
│   │   │   ā”œā”€ā”€ src
│   │   │   │   ā”œā”€ā”€ diagrams_behavior.js
│   │   │   │   ā”œā”€ā”€ diagrams_builder.js
│   │   │   │   ā”œā”€ā”€ diagrams_serializer.js
│   │   │   │   └── main.js
│   │   │   └── vendor
│   │   │       └── railroad-diagrams.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ chevrotain.min.mjs
│   │   │   ā”œā”€ā”€ chevrotain.mjs
│   │   │   └── src
│   │   │       ā”œā”€ā”€ api.js
│   │   │       ā”œā”€ā”€ api.js.map
│   │   │       ā”œā”€ā”€ diagrams
│   │   │       │   ā”œā”€ā”€ render_public.js
│   │   │       │   └── render_public.js.map
│   │   │       ā”œā”€ā”€ lang
│   │   │       │   ā”œā”€ā”€ lang_extensions.js
│   │   │       │   └── lang_extensions.js.map
│   │   │       ā”œā”€ā”€ parse
│   │   │       │   ā”œā”€ā”€ constants.js
│   │   │       │   ā”œā”€ā”€ constants.js.map
│   │   │       │   ā”œā”€ā”€ cst
│   │   │       │   │   ā”œā”€ā”€ cst.js
│   │   │       │   │   ā”œā”€ā”€ cst.js.map
│   │   │       │   │   ā”œā”€ā”€ cst_visitor.js
│   │   │       │   │   └── cst_visitor.js.map
│   │   │       │   ā”œā”€ā”€ errors_public.js
│   │   │       │   ā”œā”€ā”€ errors_public.js.map
│   │   │       │   ā”œā”€ā”€ exceptions_public.js
│   │   │       │   ā”œā”€ā”€ exceptions_public.js.map
│   │   │       │   ā”œā”€ā”€ grammar
│   │   │       │   │   ā”œā”€ā”€ checks.js
│   │   │       │   │   ā”œā”€ā”€ checks.js.map
│   │   │       │   │   ā”œā”€ā”€ first.js
│   │   │       │   │   ā”œā”€ā”€ first.js.map
│   │   │       │   │   ā”œā”€ā”€ follow.js
│   │   │       │   │   ā”œā”€ā”€ follow.js.map
│   │   │       │   │   ā”œā”€ā”€ gast
│   │   │       │   │   │   ā”œā”€ā”€ gast_resolver_public.js
│   │   │       │   │   │   └── gast_resolver_public.js.map
│   │   │       │   │   ā”œā”€ā”€ interpreter.js
│   │   │       │   │   ā”œā”€ā”€ interpreter.js.map
│   │   │       │   │   ā”œā”€ā”€ keys.js
│   │   │       │   │   ā”œā”€ā”€ keys.js.map
│   │   │       │   │   ā”œā”€ā”€ llk_lookahead.js
│   │   │       │   │   ā”œā”€ā”€ llk_lookahead.js.map
│   │   │       │   │   ā”œā”€ā”€ lookahead.js
│   │   │       │   │   ā”œā”€ā”€ lookahead.js.map
│   │   │       │   │   ā”œā”€ā”€ resolver.js
│   │   │       │   │   ā”œā”€ā”€ resolver.js.map
│   │   │       │   │   ā”œā”€ā”€ rest.js
│   │   │       │   │   ā”œā”€ā”€ rest.js.map
│   │   │       │   │   ā”œā”€ā”€ types.js
│   │   │       │   │   └── types.js.map
│   │   │       │   └── parser
│   │   │       │       ā”œā”€ā”€ parser.js
│   │   │       │       ā”œā”€ā”€ parser.js.map
│   │   │       │       ā”œā”€ā”€ traits
│   │   │       │       │   ā”œā”€ā”€ context_assist.js
│   │   │       │       │   ā”œā”€ā”€ context_assist.js.map
│   │   │       │       │   ā”œā”€ā”€ error_handler.js
│   │   │       │       │   ā”œā”€ā”€ error_handler.js.map
│   │   │       │       │   ā”œā”€ā”€ gast_recorder.js
│   │   │       │       │   ā”œā”€ā”€ gast_recorder.js.map
│   │   │       │       │   ā”œā”€ā”€ lexer_adapter.js
│   │   │       │       │   ā”œā”€ā”€ lexer_adapter.js.map
│   │   │       │       │   ā”œā”€ā”€ looksahead.js
│   │   │       │       │   ā”œā”€ā”€ looksahead.js.map
│   │   │       │       │   ā”œā”€ā”€ parser_traits.js
│   │   │       │       │   ā”œā”€ā”€ parser_traits.js.map
│   │   │       │       │   ā”œā”€ā”€ perf_tracer.js
│   │   │       │       │   ā”œā”€ā”€ perf_tracer.js.map
│   │   │       │       │   ā”œā”€ā”€ recognizer_api.js
│   │   │       │       │   ā”œā”€ā”€ recognizer_api.js.map
│   │   │       │       │   ā”œā”€ā”€ recognizer_engine.js
│   │   │       │       │   ā”œā”€ā”€ recognizer_engine.js.map
│   │   │       │       │   ā”œā”€ā”€ recoverable.js
│   │   │       │       │   ā”œā”€ā”€ recoverable.js.map
│   │   │       │       │   ā”œā”€ā”€ tree_builder.js
│   │   │       │       │   └── tree_builder.js.map
│   │   │       │       ā”œā”€ā”€ types.js
│   │   │       │       ā”œā”€ā”€ types.js.map
│   │   │       │       └── utils
│   │   │       │           ā”œā”€ā”€ apply_mixins.js
│   │   │       │           └── apply_mixins.js.map
│   │   │       ā”œā”€ā”€ scan
│   │   │       │   ā”œā”€ā”€ lexer.js
│   │   │       │   ā”œā”€ā”€ lexer.js.map
│   │   │       │   ā”œā”€ā”€ lexer_errors_public.js
│   │   │       │   ā”œā”€ā”€ lexer_errors_public.js.map
│   │   │       │   ā”œā”€ā”€ lexer_public.js
│   │   │       │   ā”œā”€ā”€ lexer_public.js.map
│   │   │       │   ā”œā”€ā”€ reg_exp.js
│   │   │       │   ā”œā”€ā”€ reg_exp.js.map
│   │   │       │   ā”œā”€ā”€ reg_exp_parser.js
│   │   │       │   ā”œā”€ā”€ reg_exp_parser.js.map
│   │   │       │   ā”œā”€ā”€ tokens.js
│   │   │       │   ā”œā”€ā”€ tokens.js.map
│   │   │       │   ā”œā”€ā”€ tokens_constants.js
│   │   │       │   ā”œā”€ā”€ tokens_constants.js.map
│   │   │       │   ā”œā”€ā”€ tokens_public.js
│   │   │       │   └── tokens_public.js.map
│   │   │       ā”œā”€ā”€ text
│   │   │       │   ā”œā”€ā”€ range.js
│   │   │       │   └── range.js.map
│   │   │       ā”œā”€ā”€ version.js
│   │   │       └── version.js.map
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ api.ts
│   │       ā”œā”€ā”€ diagrams
│   │       │   └── render_public.ts
│   │       ā”œā”€ā”€ lang
│   │       │   └── lang_extensions.ts
│   │       ā”œā”€ā”€ parse
│   │       │   ā”œā”€ā”€ constants.ts
│   │       │   ā”œā”€ā”€ cst
│   │       │   │   ā”œā”€ā”€ cst.ts
│   │       │   │   └── cst_visitor.ts
│   │       │   ā”œā”€ā”€ errors_public.ts
│   │       │   ā”œā”€ā”€ exceptions_public.ts
│   │       │   ā”œā”€ā”€ grammar
│   │       │   │   ā”œā”€ā”€ checks.ts
│   │       │   │   ā”œā”€ā”€ first.ts
│   │       │   │   ā”œā”€ā”€ follow.ts
│   │       │   │   ā”œā”€ā”€ gast
│   │       │   │   │   └── gast_resolver_public.ts
│   │       │   │   ā”œā”€ā”€ interpreter.ts
│   │       │   │   ā”œā”€ā”€ keys.ts
│   │       │   │   ā”œā”€ā”€ llk_lookahead.ts
│   │       │   │   ā”œā”€ā”€ lookahead.ts
│   │       │   │   ā”œā”€ā”€ resolver.ts
│   │       │   │   ā”œā”€ā”€ rest.ts
│   │       │   │   └── types.ts
│   │       │   └── parser
│   │       │       ā”œā”€ā”€ parser.ts
│   │       │       ā”œā”€ā”€ traits
│   │       │       │   ā”œā”€ā”€ context_assist.ts
│   │       │       │   ā”œā”€ā”€ error_handler.ts
│   │       │       │   ā”œā”€ā”€ gast_recorder.ts
│   │       │       │   ā”œā”€ā”€ lexer_adapter.ts
│   │       │       │   ā”œā”€ā”€ looksahead.ts
│   │       │       │   ā”œā”€ā”€ parser_traits.ts
│   │       │       │   ā”œā”€ā”€ perf_tracer.ts
│   │       │       │   ā”œā”€ā”€ recognizer_api.ts
│   │       │       │   ā”œā”€ā”€ recognizer_engine.ts
│   │       │       │   ā”œā”€ā”€ recoverable.ts
│   │       │       │   └── tree_builder.ts
│   │       │       ā”œā”€ā”€ types.ts
│   │       │       └── utils
│   │       │           └── apply_mixins.ts
│   │       ā”œā”€ā”€ scan
│   │       │   ā”œā”€ā”€ lexer.ts
│   │       │   ā”œā”€ā”€ lexer_errors_public.ts
│   │       │   ā”œā”€ā”€ lexer_public.ts
│   │       │   ā”œā”€ā”€ reg_exp.ts
│   │       │   ā”œā”€ā”€ reg_exp_parser.ts
│   │       │   ā”œā”€ā”€ tokens.ts
│   │       │   ā”œā”€ā”€ tokens_constants.ts
│   │       │   └── tokens_public.ts
│   │       ā”œā”€ā”€ text
│   │       │   └── range.ts
│   │       └── version.ts
│   ā”œā”€ā”€ chevrotain-allstar
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ all-star-lookahead.d.ts
│   │   │   ā”œā”€ā”€ all-star-lookahead.d.ts.map
│   │   │   ā”œā”€ā”€ all-star-lookahead.js
│   │   │   ā”œā”€ā”€ all-star-lookahead.js.map
│   │   │   ā”œā”€ā”€ atn.d.ts
│   │   │   ā”œā”€ā”€ atn.d.ts.map
│   │   │   ā”œā”€ā”€ atn.js
│   │   │   ā”œā”€ā”€ atn.js.map
│   │   │   ā”œā”€ā”€ dfa.d.ts
│   │   │   ā”œā”€ā”€ dfa.d.ts.map
│   │   │   ā”œā”€ā”€ dfa.js
│   │   │   ā”œā”€ā”€ dfa.js.map
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.js.map
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ all-star-lookahead.ts
│   │       ā”œā”€ā”€ atn.test.ts
│   │       ā”œā”€ā”€ atn.ts
│   │       ā”œā”€ā”€ dfa.ts
│   │       └── index.ts
│   ā”œā”€ā”€ chokidar
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ constants.js
│   │   │   ā”œā”€ā”€ fsevents-handler.js
│   │   │   └── nodefs-handler.js
│   │   ā”œā”€ā”€ package.json
│   │   └── types
│   │       └── index.d.ts
│   ā”œā”€ā”€ clean-css
│   │   ā”œā”€ā”€ History.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ clean.js
│   │   │   ā”œā”€ā”€ optimizer
│   │   │   │   ā”œā”€ā”€ clone.js
│   │   │   │   ā”œā”€ā”€ configuration
│   │   │   │   │   ā”œā”€ā”€ break-up.js
│   │   │   │   │   ā”œā”€ā”€ can-override.js
│   │   │   │   │   ā”œā”€ā”€ properties
│   │   │   │   │   │   └── understandable.js
│   │   │   │   │   └── restore.js
│   │   │   │   ā”œā”€ā”€ configuration.js
│   │   │   │   ā”œā”€ā”€ hack.js
│   │   │   │   ā”œā”€ā”€ invalid-property-error.js
│   │   │   │   ā”œā”€ā”€ level-0
│   │   │   │   │   └── optimize.js
│   │   │   │   ā”œā”€ā”€ level-1
│   │   │   │   │   ā”œā”€ā”€ optimize.js
│   │   │   │   │   ā”œā”€ā”€ property-optimizers
│   │   │   │   │   │   ā”œā”€ā”€ background.js
│   │   │   │   │   │   ā”œā”€ā”€ border-radius.js
│   │   │   │   │   │   ā”œā”€ā”€ box-shadow.js
│   │   │   │   │   │   ā”œā”€ā”€ filter.js
│   │   │   │   │   │   ā”œā”€ā”€ font-weight.js
│   │   │   │   │   │   ā”œā”€ā”€ margin.js
│   │   │   │   │   │   ā”œā”€ā”€ outline.js
│   │   │   │   │   │   └── padding.js
│   │   │   │   │   ā”œā”€ā”€ property-optimizers.js
│   │   │   │   │   ā”œā”€ā”€ sort-selectors.js
│   │   │   │   │   ā”œā”€ā”€ tidy-at-rule.js
│   │   │   │   │   ā”œā”€ā”€ tidy-block.js
│   │   │   │   │   ā”œā”€ā”€ tidy-rules.js
│   │   │   │   │   ā”œā”€ā”€ value-optimizers
│   │   │   │   │   │   ā”œā”€ā”€ color
│   │   │   │   │   │   │   ā”œā”€ā”€ shorten-hex.js
│   │   │   │   │   │   │   ā”œā”€ā”€ shorten-hsl.js
│   │   │   │   │   │   │   └── shorten-rgb.js
│   │   │   │   │   │   ā”œā”€ā”€ color.js
│   │   │   │   │   │   ā”œā”€ā”€ degrees.js
│   │   │   │   │   │   ā”œā”€ā”€ fraction.js
│   │   │   │   │   │   ā”œā”€ā”€ precision.js
│   │   │   │   │   │   ā”œā”€ā”€ starts-as-url.js
│   │   │   │   │   │   ā”œā”€ā”€ text-quotes.js
│   │   │   │   │   │   ā”œā”€ā”€ time.js
│   │   │   │   │   │   ā”œā”€ā”€ unit.js
│   │   │   │   │   │   ā”œā”€ā”€ url-prefix.js
│   │   │   │   │   │   ā”œā”€ā”€ url-quotes.js
│   │   │   │   │   │   ā”œā”€ā”€ url-whitespace.js
│   │   │   │   │   │   ā”œā”€ā”€ whitespace.js
│   │   │   │   │   │   └── zero.js
│   │   │   │   │   └── value-optimizers.js
│   │   │   │   ā”œā”€ā”€ level-2
│   │   │   │   │   ā”œā”€ā”€ extract-properties.js
│   │   │   │   │   ā”œā”€ā”€ is-mergeable.js
│   │   │   │   │   ā”œā”€ā”€ merge-adjacent.js
│   │   │   │   │   ā”œā”€ā”€ merge-media-queries.js
│   │   │   │   │   ā”œā”€ā”€ merge-non-adjacent-by-body.js
│   │   │   │   │   ā”œā”€ā”€ merge-non-adjacent-by-selector.js
│   │   │   │   │   ā”œā”€ā”€ optimize.js
│   │   │   │   │   ā”œā”€ā”€ properties
│   │   │   │   │   │   ā”œā”€ā”€ every-values-pair.js
│   │   │   │   │   │   ā”œā”€ā”€ find-component-in.js
│   │   │   │   │   │   ā”œā”€ā”€ has-inherit.js
│   │   │   │   │   │   ā”œā”€ā”€ has-same-values.js
│   │   │   │   │   │   ā”œā”€ā”€ has-unset.js
│   │   │   │   │   │   ā”œā”€ā”€ is-component-of.js
│   │   │   │   │   │   ā”œā”€ā”€ is-mergeable-shorthand.js
│   │   │   │   │   │   ā”œā”€ā”€ merge-into-shorthands.js
│   │   │   │   │   │   ā”œā”€ā”€ optimize.js
│   │   │   │   │   │   ā”œā”€ā”€ override-properties.js
│   │   │   │   │   │   ā”œā”€ā”€ overrides-non-component-shorthand.js
│   │   │   │   │   │   └── populate-components.js
│   │   │   │   │   ā”œā”€ā”€ reduce-non-adjacent.js
│   │   │   │   │   ā”œā”€ā”€ remove-duplicate-font-at-rules.js
│   │   │   │   │   ā”œā”€ā”€ remove-duplicate-media-queries.js
│   │   │   │   │   ā”œā”€ā”€ remove-duplicates.js
│   │   │   │   │   ā”œā”€ā”€ remove-unused-at-rules.js
│   │   │   │   │   ā”œā”€ā”€ reorderable.js
│   │   │   │   │   ā”œā”€ā”€ restore-with-components.js
│   │   │   │   │   ā”œā”€ā”€ restructure.js
│   │   │   │   │   ā”œā”€ā”€ rules-overlap.js
│   │   │   │   │   ā”œā”€ā”€ specificities-overlap.js
│   │   │   │   │   ā”œā”€ā”€ specificity.js
│   │   │   │   │   └── tidy-rule-duplicates.js
│   │   │   │   ā”œā”€ā”€ remove-unused.js
│   │   │   │   ā”œā”€ā”€ restore-from-optimizing.js
│   │   │   │   ā”œā”€ā”€ validator.js
│   │   │   │   ā”œā”€ā”€ vendor-prefixes.js
│   │   │   │   └── wrap-for-optimizing.js
│   │   │   ā”œā”€ā”€ options
│   │   │   │   ā”œā”€ā”€ compatibility.js
│   │   │   │   ā”œā”€ā”€ fetch.js
│   │   │   │   ā”œā”€ā”€ format.js
│   │   │   │   ā”œā”€ā”€ inline-request.js
│   │   │   │   ā”œā”€ā”€ inline-timeout.js
│   │   │   │   ā”œā”€ā”€ inline.js
│   │   │   │   ā”œā”€ā”€ optimization-level.js
│   │   │   │   ā”œā”€ā”€ plugins.js
│   │   │   │   ā”œā”€ā”€ rebase-to.js
│   │   │   │   ā”œā”€ā”€ rebase.js
│   │   │   │   └── rounding-precision.js
│   │   │   ā”œā”€ā”€ reader
│   │   │   │   ā”œā”€ā”€ apply-source-maps.js
│   │   │   │   ā”œā”€ā”€ extract-import-url-and-media.js
│   │   │   │   ā”œā”€ā”€ input-source-map-tracker.js
│   │   │   │   ā”œā”€ā”€ is-allowed-resource.js
│   │   │   │   ā”œā”€ā”€ load-original-sources.js
│   │   │   │   ā”œā”€ā”€ load-remote-resource.js
│   │   │   │   ā”œā”€ā”€ match-data-uri.js
│   │   │   │   ā”œā”€ā”€ normalize-path.js
│   │   │   │   ā”œā”€ā”€ read-sources.js
│   │   │   │   ā”œā”€ā”€ rebase-local-map.js
│   │   │   │   ā”œā”€ā”€ rebase-remote-map.js
│   │   │   │   ā”œā”€ā”€ rebase.js
│   │   │   │   ā”œā”€ā”€ restore-import.js
│   │   │   │   └── rewrite-url.js
│   │   │   ā”œā”€ā”€ tokenizer
│   │   │   │   ā”œā”€ā”€ marker.js
│   │   │   │   ā”œā”€ā”€ token.js
│   │   │   │   └── tokenize.js
│   │   │   ā”œā”€ā”€ utils
│   │   │   │   ā”œā”€ā”€ clone-array.js
│   │   │   │   ā”œā”€ā”€ format-position.js
│   │   │   │   ā”œā”€ā”€ has-protocol.js
│   │   │   │   ā”œā”€ā”€ is-data-uri-resource.js
│   │   │   │   ā”œā”€ā”€ is-http-resource.js
│   │   │   │   ā”œā”€ā”€ is-https-resource.js
│   │   │   │   ā”œā”€ā”€ is-import.js
│   │   │   │   ā”œā”€ā”€ is-remote-resource.js
│   │   │   │   ā”œā”€ā”€ natural-compare.js
│   │   │   │   ā”œā”€ā”€ override.js
│   │   │   │   └── split.js
│   │   │   └── writer
│   │   │       ā”œā”€ā”€ helpers.js
│   │   │       ā”œā”€ā”€ one-time.js
│   │   │       ā”œā”€ā”€ simple.js
│   │   │       └── source-maps.js
│   │   └── package.json
│   ā”œā”€ā”€ cli-cursor
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ cli-table
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── utils.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── colors
│   │   │       ā”œā”€ā”€ .travis.yml
│   │   │       ā”œā”€ā”€ MIT-LICENSE.txt
│   │   │       ā”œā”€ā”€ ReadMe.md
│   │   │       ā”œā”€ā”€ examples
│   │   │       │   ā”œā”€ā”€ normal-usage.js
│   │   │       │   └── safe-string.js
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ colors.js
│   │   │       │   ā”œā”€ā”€ custom
│   │   │       │   │   ā”œā”€ā”€ trap.js
│   │   │       │   │   └── zalgo.js
│   │   │       │   ā”œā”€ā”€ extendStringPrototype.js
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   ā”œā”€ā”€ maps
│   │   │       │   │   ā”œā”€ā”€ america.js
│   │   │       │   │   ā”œā”€ā”€ rainbow.js
│   │   │       │   │   ā”œā”€ā”€ random.js
│   │   │       │   │   └── zebra.js
│   │   │       │   ā”œā”€ā”€ styles.js
│   │   │       │   └── system
│   │   │       │       └── supports-colors.js
│   │   │       ā”œā”€ā”€ package.json
│   │   │       ā”œā”€ā”€ safe.js
│   │   │       ā”œā”€ā”€ screenshots
│   │   │       │   └── colors.png
│   │   │       ā”œā”€ā”€ tests
│   │   │       │   ā”œā”€ā”€ basic-test.js
│   │   │       │   └── safe-test.js
│   │   │       └── themes
│   │   │           └── generic-logging.js
│   │   └── package.json
│   ā”œā”€ā”€ cli-truncate
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ color
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ color-convert
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ conversions.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── route.js
│   ā”œā”€ā”€ color-name
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ color-string
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ colorette
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.cjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ colorjs.io
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.json
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ color-fn.cjs
│   │   │   ā”œā”€ā”€ color-fn.cjs.map
│   │   │   ā”œā”€ā”€ color-fn.legacy.cjs
│   │   │   ā”œā”€ā”€ color-fn.legacy.cjs.map
│   │   │   ā”œā”€ā”€ color-fn.legacy.min.cjs
│   │   │   ā”œā”€ā”€ color-fn.legacy.min.cjs.map
│   │   │   ā”œā”€ā”€ color-fn.min.cjs
│   │   │   ā”œā”€ā”€ color-fn.min.cjs.map
│   │   │   ā”œā”€ā”€ color.cjs
│   │   │   ā”œā”€ā”€ color.cjs.map
│   │   │   ā”œā”€ā”€ color.global.js
│   │   │   ā”œā”€ā”€ color.global.js.map
│   │   │   ā”œā”€ā”€ color.global.legacy.js
│   │   │   ā”œā”€ā”€ color.global.legacy.js.map
│   │   │   ā”œā”€ā”€ color.global.legacy.min.js
│   │   │   ā”œā”€ā”€ color.global.legacy.min.js.map
│   │   │   ā”œā”€ā”€ color.global.min.js
│   │   │   ā”œā”€ā”€ color.global.min.js.map
│   │   │   ā”œā”€ā”€ color.js
│   │   │   ā”œā”€ā”€ color.js.map
│   │   │   ā”œā”€ā”€ color.legacy.cjs
│   │   │   ā”œā”€ā”€ color.legacy.cjs.map
│   │   │   ā”œā”€ā”€ color.legacy.js
│   │   │   ā”œā”€ā”€ color.legacy.js.map
│   │   │   ā”œā”€ā”€ color.legacy.min.cjs
│   │   │   ā”œā”€ā”€ color.legacy.min.cjs.map
│   │   │   ā”œā”€ā”€ color.legacy.min.js
│   │   │   ā”œā”€ā”€ color.legacy.min.js.map
│   │   │   ā”œā”€ā”€ color.min.cjs
│   │   │   ā”œā”€ā”€ color.min.cjs.map
│   │   │   ā”œā”€ā”€ color.min.js
│   │   │   └── color.min.js.map
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ CATs.js
│   │   │   ā”œā”€ā”€ adapt.js
│   │   │   ā”œā”€ā”€ angles.js
│   │   │   ā”œā”€ā”€ chromaticity.js
│   │   │   ā”œā”€ā”€ clone.js
│   │   │   ā”œā”€ā”€ color.js
│   │   │   ā”œā”€ā”€ contrast
│   │   │   │   ā”œā”€ā”€ APCA.js
│   │   │   │   ā”œā”€ā”€ Lstar.js
│   │   │   │   ā”œā”€ā”€ Michelson.js
│   │   │   │   ā”œā”€ā”€ WCAG21.js
│   │   │   │   ā”œā”€ā”€ Weber.js
│   │   │   │   ā”œā”€ā”€ deltaPhi.js
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ contrast.js
│   │   │   ā”œā”€ā”€ defaults.js
│   │   │   ā”œā”€ā”€ deltaE
│   │   │   │   ā”œā”€ā”€ deltaE2000.js
│   │   │   │   ā”œā”€ā”€ deltaE76.js
│   │   │   │   ā”œā”€ā”€ deltaECMC.js
│   │   │   │   ā”œā”€ā”€ deltaEHCT.js
│   │   │   │   ā”œā”€ā”€ deltaEITP.js
│   │   │   │   ā”œā”€ā”€ deltaEJz.js
│   │   │   │   ā”œā”€ā”€ deltaEOK.js
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ deltaE.js
│   │   │   ā”œā”€ā”€ display.js
│   │   │   ā”œā”€ā”€ distance.js
│   │   │   ā”œā”€ā”€ equals.js
│   │   │   ā”œā”€ā”€ get.js
│   │   │   ā”œā”€ā”€ getAll.js
│   │   │   ā”œā”€ā”€ getColor.js
│   │   │   ā”œā”€ā”€ hooks.js
│   │   │   ā”œā”€ā”€ inGamut.js
│   │   │   ā”œā”€ā”€ index-fn.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ interpolation.js
│   │   │   ā”œā”€ā”€ keywords.js
│   │   │   ā”œā”€ā”€ luminance.js
│   │   │   ā”œā”€ā”€ multiply-matrices.js
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   ā”œā”€ā”€ rgbspace.js
│   │   │   ā”œā”€ā”€ serialize.js
│   │   │   ā”œā”€ā”€ set.js
│   │   │   ā”œā”€ā”€ setAll.js
│   │   │   ā”œā”€ā”€ space-accessors.js
│   │   │   ā”œā”€ā”€ space.js
│   │   │   ā”œā”€ā”€ spaces
│   │   │   │   ā”œā”€ā”€ a98rgb-linear.js
│   │   │   │   ā”œā”€ā”€ a98rgb.js
│   │   │   │   ā”œā”€ā”€ acescc.js
│   │   │   │   ā”œā”€ā”€ acescg.js
│   │   │   │   ā”œā”€ā”€ cam16.js
│   │   │   │   ā”œā”€ā”€ hct.js
│   │   │   │   ā”œā”€ā”€ hpluv.js
│   │   │   │   ā”œā”€ā”€ hsl.js
│   │   │   │   ā”œā”€ā”€ hsluv.js
│   │   │   │   ā”œā”€ā”€ hsv.js
│   │   │   │   ā”œā”€ā”€ hwb.js
│   │   │   │   ā”œā”€ā”€ ictcp.js
│   │   │   │   ā”œā”€ā”€ index-fn-hdr.js
│   │   │   │   ā”œā”€ā”€ index-fn.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ jzazbz.js
│   │   │   │   ā”œā”€ā”€ jzczhz.js
│   │   │   │   ā”œā”€ā”€ lab-d65.js
│   │   │   │   ā”œā”€ā”€ lab.js
│   │   │   │   ā”œā”€ā”€ lch.js
│   │   │   │   ā”œā”€ā”€ lchuv.js
│   │   │   │   ā”œā”€ā”€ luv.js
│   │   │   │   ā”œā”€ā”€ oklab.js
│   │   │   │   ā”œā”€ā”€ oklch.js
│   │   │   │   ā”œā”€ā”€ p3-linear.js
│   │   │   │   ā”œā”€ā”€ p3.js
│   │   │   │   ā”œā”€ā”€ prophoto-linear.js
│   │   │   │   ā”œā”€ā”€ prophoto.js
│   │   │   │   ā”œā”€ā”€ rec2020-linear.js
│   │   │   │   ā”œā”€ā”€ rec2020.js
│   │   │   │   ā”œā”€ā”€ rec2100-hlg.js
│   │   │   │   ā”œā”€ā”€ rec2100-pq.js
│   │   │   │   ā”œā”€ā”€ srgb-linear.js
│   │   │   │   ā”œā”€ā”€ srgb.js
│   │   │   │   ā”œā”€ā”€ xyz-abs-d65.js
│   │   │   │   ā”œā”€ā”€ xyz-d50.js
│   │   │   │   └── xyz-d65.js
│   │   │   ā”œā”€ā”€ to.js
│   │   │   ā”œā”€ā”€ toGamut.js
│   │   │   ā”œā”€ā”€ util.js
│   │   │   └── variations.js
│   │   └── types
│   │       ā”œā”€ā”€ index.d.cts
│   │       ā”œā”€ā”€ index.d.ts
│   │       └── src
│   │           ā”œā”€ā”€ CATs.d.ts
│   │           ā”œā”€ā”€ adapt.d.ts
│   │           ā”œā”€ā”€ angles.d.ts
│   │           ā”œā”€ā”€ chromaticity.d.ts
│   │           ā”œā”€ā”€ clone.d.ts
│   │           ā”œā”€ā”€ color.d.ts
│   │           ā”œā”€ā”€ contrast
│   │           │   ā”œā”€ā”€ APCA.d.ts
│   │           │   ā”œā”€ā”€ Lstar.d.ts
│   │           │   ā”œā”€ā”€ Michelson.d.ts
│   │           │   ā”œā”€ā”€ WCAG21.d.ts
│   │           │   ā”œā”€ā”€ Weber.d.ts
│   │           │   ā”œā”€ā”€ deltaPhi.d.ts
│   │           │   └── index.d.ts
│   │           ā”œā”€ā”€ contrast.d.ts
│   │           ā”œā”€ā”€ defaults.d.ts
│   │           ā”œā”€ā”€ deltaE
│   │           │   ā”œā”€ā”€ deltaE2000.d.ts
│   │           │   ā”œā”€ā”€ deltaE76.d.ts
│   │           │   ā”œā”€ā”€ deltaECMC.d.ts
│   │           │   ā”œā”€ā”€ deltaEHCT.d.ts
│   │           │   ā”œā”€ā”€ deltaEITP.d.ts
│   │           │   ā”œā”€ā”€ deltaEJz.d.ts
│   │           │   ā”œā”€ā”€ deltaEOK.d.ts
│   │           │   └── index.d.ts
│   │           ā”œā”€ā”€ deltaE.d.ts
│   │           ā”œā”€ā”€ display.d.ts
│   │           ā”œā”€ā”€ distance.d.ts
│   │           ā”œā”€ā”€ equals.d.ts
│   │           ā”œā”€ā”€ get.d.ts
│   │           ā”œā”€ā”€ getAll.d.ts
│   │           ā”œā”€ā”€ getColor.d.ts
│   │           ā”œā”€ā”€ hooks.d.ts
│   │           ā”œā”€ā”€ inGamut.d.ts
│   │           ā”œā”€ā”€ index-fn.d.cts
│   │           ā”œā”€ā”€ index-fn.d.ts
│   │           ā”œā”€ā”€ index.d.ts
│   │           ā”œā”€ā”€ interpolation.d.ts
│   │           ā”œā”€ā”€ keywords.d.ts
│   │           ā”œā”€ā”€ luminance.d.ts
│   │           ā”œā”€ā”€ multiply-matrices.d.ts
│   │           ā”œā”€ā”€ parse.d.ts
│   │           ā”œā”€ā”€ rgbspace.d.ts
│   │           ā”œā”€ā”€ serialize.d.ts
│   │           ā”œā”€ā”€ set.d.ts
│   │           ā”œā”€ā”€ setAll.d.ts
│   │           ā”œā”€ā”€ space-accessors.d.ts
│   │           ā”œā”€ā”€ space-coord-accessors.d.ts
│   │           ā”œā”€ā”€ space.d.ts
│   │           ā”œā”€ā”€ spaces
│   │           │   ā”œā”€ā”€ a98rgb-linear.d.ts
│   │           │   ā”œā”€ā”€ a98rgb.d.ts
│   │           │   ā”œā”€ā”€ acescc.d.ts
│   │           │   ā”œā”€ā”€ acescg.d.ts
│   │           │   ā”œā”€ā”€ hpluv.d.ts
│   │           │   ā”œā”€ā”€ hsl.d.ts
│   │           │   ā”œā”€ā”€ hsluv.d.ts
│   │           │   ā”œā”€ā”€ hsv.d.ts
│   │           │   ā”œā”€ā”€ hwb.d.ts
│   │           │   ā”œā”€ā”€ ictcp.d.ts
│   │           │   ā”œā”€ā”€ index-fn-hdr.d.ts
│   │           │   ā”œā”€ā”€ index-fn.d.ts
│   │           │   ā”œā”€ā”€ index.d.ts
│   │           │   ā”œā”€ā”€ jzazbz.d.ts
│   │           │   ā”œā”€ā”€ jzczhz.d.ts
│   │           │   ā”œā”€ā”€ lab-d65.d.ts
│   │           │   ā”œā”€ā”€ lab.d.ts
│   │           │   ā”œā”€ā”€ lch.d.ts
│   │           │   ā”œā”€ā”€ lchuv.d.ts
│   │           │   ā”œā”€ā”€ luv.d.ts
│   │           │   ā”œā”€ā”€ oklab.d.ts
│   │           │   ā”œā”€ā”€ oklch.d.ts
│   │           │   ā”œā”€ā”€ p3-linear.d.ts
│   │           │   ā”œā”€ā”€ p3.d.ts
│   │           │   ā”œā”€ā”€ prophoto-linear.d.ts
│   │           │   ā”œā”€ā”€ prophoto.d.ts
│   │           │   ā”œā”€ā”€ rec2020-linear.d.ts
│   │           │   ā”œā”€ā”€ rec2020.d.ts
│   │           │   ā”œā”€ā”€ rec2100-hlg.d.ts
│   │           │   ā”œā”€ā”€ rec2100-pq.d.ts
│   │           │   ā”œā”€ā”€ srgb-linear.d.ts
│   │           │   ā”œā”€ā”€ srgb.d.ts
│   │           │   ā”œā”€ā”€ xyz-abs-d65.d.ts
│   │           │   ā”œā”€ā”€ xyz-d50.d.ts
│   │           │   └── xyz-d65.d.ts
│   │           ā”œā”€ā”€ to.d.ts
│   │           ā”œā”€ā”€ toGamut.d.ts
│   │           ā”œā”€ā”€ util.d.ts
│   │           └── variations.d.ts
│   ā”œā”€ā”€ colors
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ examples
│   │   │   ā”œā”€ā”€ normal-usage.js
│   │   │   └── safe-string.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ colors.js
│   │   │   ā”œā”€ā”€ custom
│   │   │   │   ā”œā”€ā”€ trap.js
│   │   │   │   └── zalgo.js
│   │   │   ā”œā”€ā”€ extendStringPrototype.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ maps
│   │   │   │   ā”œā”€ā”€ america.js
│   │   │   │   ā”œā”€ā”€ rainbow.js
│   │   │   │   ā”œā”€ā”€ random.js
│   │   │   │   └── zebra.js
│   │   │   ā”œā”€ā”€ styles.js
│   │   │   └── system
│   │   │       ā”œā”€ā”€ has-flag.js
│   │   │       └── supports-colors.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ safe.d.ts
│   │   ā”œā”€ā”€ safe.js
│   │   └── themes
│   │       └── generic-logging.js
│   ā”œā”€ā”€ combined-stream
│   │   ā”œā”€ā”€ License
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ lib
│   │   │   └── combined_stream.js
│   │   ā”œā”€ā”€ package.json
│   │   └── yarn.lock
│   ā”œā”€ā”€ comma-number
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ commander
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ esm.mjs
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ argument.js
│   │   │   ā”œā”€ā”€ command.js
│   │   │   ā”œā”€ā”€ error.js
│   │   │   ā”œā”€ā”€ help.js
│   │   │   ā”œā”€ā”€ option.js
│   │   │   └── suggestSimilar.js
│   │   ā”œā”€ā”€ package-support.json
│   │   ā”œā”€ā”€ package.json
│   │   └── typings
│   │       └── index.d.ts
│   ā”œā”€ā”€ component-emitter
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ concat-map
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.markdown
│   │   ā”œā”€ā”€ example
│   │   │   └── map.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── map.js
│   ā”œā”€ā”€ confbox
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ ini.d.mts
│   │   │   ā”œā”€ā”€ ini.mjs
│   │   │   ā”œā”€ā”€ json5.d.mts
│   │   │   ā”œā”€ā”€ json5.mjs
│   │   │   ā”œā”€ā”€ jsonc.d.mts
│   │   │   ā”œā”€ā”€ jsonc.mjs
│   │   │   ā”œā”€ā”€ shared
│   │   │   │   ā”œā”€ā”€ confbox.B202Uz6F.d.mts
│   │   │   │   ā”œā”€ā”€ confbox.DA7CpUDY.mjs
│   │   │   │   └── confbox.DnMsyigM.mjs
│   │   │   ā”œā”€ā”€ toml.d.mts
│   │   │   ā”œā”€ā”€ toml.mjs
│   │   │   ā”œā”€ā”€ yaml.d.mts
│   │   │   └── yaml.mjs
│   │   └── package.json
│   ā”œā”€ā”€ cookie
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.js.map
│   │   └── package.json
│   ā”œā”€ā”€ cookiejar
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ cookiejar.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ core-util-is
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   └── util.js
│   │   └── package.json
│   ā”œā”€ā”€ cose-base
│   │   ā”œā”€ā”€ .babelrc
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bower.json
│   │   ā”œā”€ā”€ cose-base.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ CoSEConstants.js
│   │   │   ā”œā”€ā”€ CoSEEdge.js
│   │   │   ā”œā”€ā”€ CoSEGraph.js
│   │   │   ā”œā”€ā”€ CoSEGraphManager.js
│   │   │   ā”œā”€ā”€ CoSELayout.js
│   │   │   └── CoSENode.js
│   │   └── webpack.config.js
│   ā”œā”€ā”€ cross-spawn
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ enoent.js
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   └── util
│   │   │       ā”œā”€ā”€ escape.js
│   │   │       ā”œā”€ā”€ readShebang.js
│   │   │       └── resolveCommand.js
│   │   └── package.json
│   ā”œā”€ā”€ css-tree
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ cjs
│   │   │   ā”œā”€ā”€ convertor
│   │   │   │   ā”œā”€ā”€ create.cjs
│   │   │   │   └── index.cjs
│   │   │   ā”œā”€ā”€ data-patch.cjs
│   │   │   ā”œā”€ā”€ data.cjs
│   │   │   ā”œā”€ā”€ definition-syntax
│   │   │   │   ā”œā”€ā”€ SyntaxError.cjs
│   │   │   │   ā”œā”€ā”€ generate.cjs
│   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   ā”œā”€ā”€ parse.cjs
│   │   │   │   ā”œā”€ā”€ tokenizer.cjs
│   │   │   │   └── walk.cjs
│   │   │   ā”œā”€ā”€ generator
│   │   │   │   ā”œā”€ā”€ create.cjs
│   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   ā”œā”€ā”€ sourceMap.cjs
│   │   │   │   └── token-before.cjs
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ lexer
│   │   │   │   ā”œā”€ā”€ Lexer.cjs
│   │   │   │   ā”œā”€ā”€ error.cjs
│   │   │   │   ā”œā”€ā”€ generic-an-plus-b.cjs
│   │   │   │   ā”œā”€ā”€ generic-const.cjs
│   │   │   │   ā”œā”€ā”€ generic-urange.cjs
│   │   │   │   ā”œā”€ā”€ generic.cjs
│   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   ā”œā”€ā”€ match-graph.cjs
│   │   │   │   ā”œā”€ā”€ match.cjs
│   │   │   │   ā”œā”€ā”€ prepare-tokens.cjs
│   │   │   │   ā”œā”€ā”€ search.cjs
│   │   │   │   ā”œā”€ā”€ structure.cjs
│   │   │   │   ā”œā”€ā”€ trace.cjs
│   │   │   │   └── units.cjs
│   │   │   ā”œā”€ā”€ parser
│   │   │   │   ā”œā”€ā”€ SyntaxError.cjs
│   │   │   │   ā”œā”€ā”€ create.cjs
│   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   ā”œā”€ā”€ parse-selector.cjs
│   │   │   │   └── sequence.cjs
│   │   │   ā”œā”€ā”€ syntax
│   │   │   │   ā”œā”€ā”€ atrule
│   │   │   │   │   ā”œā”€ā”€ font-face.cjs
│   │   │   │   │   ā”œā”€ā”€ import.cjs
│   │   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   │   ā”œā”€ā”€ media.cjs
│   │   │   │   │   ā”œā”€ā”€ nest.cjs
│   │   │   │   │   ā”œā”€ā”€ page.cjs
│   │   │   │   │   └── supports.cjs
│   │   │   │   ā”œā”€ā”€ config
│   │   │   │   │   ā”œā”€ā”€ generator.cjs
│   │   │   │   │   ā”œā”€ā”€ lexer.cjs
│   │   │   │   │   ā”œā”€ā”€ mix.cjs
│   │   │   │   │   ā”œā”€ā”€ parser-selector.cjs
│   │   │   │   │   ā”œā”€ā”€ parser.cjs
│   │   │   │   │   └── walker.cjs
│   │   │   │   ā”œā”€ā”€ create.cjs
│   │   │   │   ā”œā”€ā”€ function
│   │   │   │   │   ā”œā”€ā”€ expression.cjs
│   │   │   │   │   └── var.cjs
│   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   ā”œā”€ā”€ node
│   │   │   │   │   ā”œā”€ā”€ AnPlusB.cjs
│   │   │   │   │   ā”œā”€ā”€ Atrule.cjs
│   │   │   │   │   ā”œā”€ā”€ AtrulePrelude.cjs
│   │   │   │   │   ā”œā”€ā”€ AttributeSelector.cjs
│   │   │   │   │   ā”œā”€ā”€ Block.cjs
│   │   │   │   │   ā”œā”€ā”€ Brackets.cjs
│   │   │   │   │   ā”œā”€ā”€ CDC.cjs
│   │   │   │   │   ā”œā”€ā”€ CDO.cjs
│   │   │   │   │   ā”œā”€ā”€ ClassSelector.cjs
│   │   │   │   │   ā”œā”€ā”€ Combinator.cjs
│   │   │   │   │   ā”œā”€ā”€ Comment.cjs
│   │   │   │   │   ā”œā”€ā”€ Condition.cjs
│   │   │   │   │   ā”œā”€ā”€ Declaration.cjs
│   │   │   │   │   ā”œā”€ā”€ DeclarationList.cjs
│   │   │   │   │   ā”œā”€ā”€ Dimension.cjs
│   │   │   │   │   ā”œā”€ā”€ Feature.cjs
│   │   │   │   │   ā”œā”€ā”€ FeatureRange.cjs
│   │   │   │   │   ā”œā”€ā”€ Function.cjs
│   │   │   │   │   ā”œā”€ā”€ GeneralEnclosed.cjs
│   │   │   │   │   ā”œā”€ā”€ Hash.cjs
│   │   │   │   │   ā”œā”€ā”€ IdSelector.cjs
│   │   │   │   │   ā”œā”€ā”€ Identifier.cjs
│   │   │   │   │   ā”œā”€ā”€ MediaCondition.cjs
│   │   │   │   │   ā”œā”€ā”€ MediaFeature.cjs
│   │   │   │   │   ā”œā”€ā”€ MediaFeatureRange.cjs
│   │   │   │   │   ā”œā”€ā”€ MediaQuery.cjs
│   │   │   │   │   ā”œā”€ā”€ MediaQueryList.cjs
│   │   │   │   │   ā”œā”€ā”€ NestingSelector.cjs
│   │   │   │   │   ā”œā”€ā”€ Nth.cjs
│   │   │   │   │   ā”œā”€ā”€ Number.cjs
│   │   │   │   │   ā”œā”€ā”€ Operator.cjs
│   │   │   │   │   ā”œā”€ā”€ Parentheses.cjs
│   │   │   │   │   ā”œā”€ā”€ Percentage.cjs
│   │   │   │   │   ā”œā”€ā”€ PseudoClassSelector.cjs
│   │   │   │   │   ā”œā”€ā”€ PseudoElementSelector.cjs
│   │   │   │   │   ā”œā”€ā”€ Ratio.cjs
│   │   │   │   │   ā”œā”€ā”€ Raw.cjs
│   │   │   │   │   ā”œā”€ā”€ Rule.cjs
│   │   │   │   │   ā”œā”€ā”€ Selector.cjs
│   │   │   │   │   ā”œā”€ā”€ SelectorList.cjs
│   │   │   │   │   ā”œā”€ā”€ String.cjs
│   │   │   │   │   ā”œā”€ā”€ StyleSheet.cjs
│   │   │   │   │   ā”œā”€ā”€ TypeSelector.cjs
│   │   │   │   │   ā”œā”€ā”€ UnicodeRange.cjs
│   │   │   │   │   ā”œā”€ā”€ Url.cjs
│   │   │   │   │   ā”œā”€ā”€ Value.cjs
│   │   │   │   │   ā”œā”€ā”€ WhiteSpace.cjs
│   │   │   │   │   ā”œā”€ā”€ common
│   │   │   │   │   │   ā”œā”€ā”€ feature-range.cjs
│   │   │   │   │   │   └── feature.cjs
│   │   │   │   │   ā”œā”€ā”€ index-generate.cjs
│   │   │   │   │   ā”œā”€ā”€ index-parse-selector.cjs
│   │   │   │   │   ā”œā”€ā”€ index-parse.cjs
│   │   │   │   │   └── index.cjs
│   │   │   │   ā”œā”€ā”€ pseudo
│   │   │   │   │   └── index.cjs
│   │   │   │   └── scope
│   │   │   │       ā”œā”€ā”€ atrulePrelude.cjs
│   │   │   │       ā”œā”€ā”€ default.cjs
│   │   │   │       ā”œā”€ā”€ index.cjs
│   │   │   │       ā”œā”€ā”€ selector.cjs
│   │   │   │       └── value.cjs
│   │   │   ā”œā”€ā”€ tokenizer
│   │   │   │   ā”œā”€ā”€ OffsetToLocation.cjs
│   │   │   │   ā”œā”€ā”€ TokenStream.cjs
│   │   │   │   ā”œā”€ā”€ adopt-buffer.cjs
│   │   │   │   ā”œā”€ā”€ char-code-definitions.cjs
│   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   ā”œā”€ā”€ names.cjs
│   │   │   │   ā”œā”€ā”€ types.cjs
│   │   │   │   └── utils.cjs
│   │   │   ā”œā”€ā”€ utils
│   │   │   │   ā”œā”€ā”€ List.cjs
│   │   │   │   ā”œā”€ā”€ clone.cjs
│   │   │   │   ā”œā”€ā”€ create-custom-error.cjs
│   │   │   │   ā”œā”€ā”€ ident.cjs
│   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   ā”œā”€ā”€ names.cjs
│   │   │   │   ā”œā”€ā”€ string.cjs
│   │   │   │   └── url.cjs
│   │   │   ā”œā”€ā”€ version.cjs
│   │   │   └── walker
│   │   │       ā”œā”€ā”€ create.cjs
│   │   │       └── index.cjs
│   │   ā”œā”€ā”€ data
│   │   │   └── patch.json
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ csstree.esm.js
│   │   │   ā”œā”€ā”€ csstree.js
│   │   │   ā”œā”€ā”€ data.cjs
│   │   │   ā”œā”€ā”€ data.js
│   │   │   ā”œā”€ā”€ version.cjs
│   │   │   └── version.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ convertor
│   │   │   │   ā”œā”€ā”€ create.js
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ data-patch.js
│   │   │   ā”œā”€ā”€ data.js
│   │   │   ā”œā”€ā”€ definition-syntax
│   │   │   │   ā”œā”€ā”€ SyntaxError.js
│   │   │   │   ā”œā”€ā”€ generate.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ parse.js
│   │   │   │   ā”œā”€ā”€ tokenizer.js
│   │   │   │   └── walk.js
│   │   │   ā”œā”€ā”€ generator
│   │   │   │   ā”œā”€ā”€ create.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ sourceMap.js
│   │   │   │   └── token-before.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ lexer
│   │   │   │   ā”œā”€ā”€ Lexer.js
│   │   │   │   ā”œā”€ā”€ error.js
│   │   │   │   ā”œā”€ā”€ generic-an-plus-b.js
│   │   │   │   ā”œā”€ā”€ generic-const.js
│   │   │   │   ā”œā”€ā”€ generic-urange.js
│   │   │   │   ā”œā”€ā”€ generic.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ match-graph.js
│   │   │   │   ā”œā”€ā”€ match.js
│   │   │   │   ā”œā”€ā”€ prepare-tokens.js
│   │   │   │   ā”œā”€ā”€ search.js
│   │   │   │   ā”œā”€ā”€ structure.js
│   │   │   │   ā”œā”€ā”€ trace.js
│   │   │   │   └── units.js
│   │   │   ā”œā”€ā”€ parser
│   │   │   │   ā”œā”€ā”€ SyntaxError.js
│   │   │   │   ā”œā”€ā”€ create.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ parse-selector.js
│   │   │   │   └── sequence.js
│   │   │   ā”œā”€ā”€ syntax
│   │   │   │   ā”œā”€ā”€ atrule
│   │   │   │   │   ā”œā”€ā”€ font-face.js
│   │   │   │   │   ā”œā”€ā”€ import.js
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   ā”œā”€ā”€ media.js
│   │   │   │   │   ā”œā”€ā”€ nest.js
│   │   │   │   │   ā”œā”€ā”€ page.js
│   │   │   │   │   └── supports.js
│   │   │   │   ā”œā”€ā”€ config
│   │   │   │   │   ā”œā”€ā”€ generator.js
│   │   │   │   │   ā”œā”€ā”€ lexer.js
│   │   │   │   │   ā”œā”€ā”€ mix.js
│   │   │   │   │   ā”œā”€ā”€ parser-selector.js
│   │   │   │   │   ā”œā”€ā”€ parser.js
│   │   │   │   │   └── walker.js
│   │   │   │   ā”œā”€ā”€ create.js
│   │   │   │   ā”œā”€ā”€ function
│   │   │   │   │   ā”œā”€ā”€ expression.js
│   │   │   │   │   └── var.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ node
│   │   │   │   │   ā”œā”€ā”€ AnPlusB.js
│   │   │   │   │   ā”œā”€ā”€ Atrule.js
│   │   │   │   │   ā”œā”€ā”€ AtrulePrelude.js
│   │   │   │   │   ā”œā”€ā”€ AttributeSelector.js
│   │   │   │   │   ā”œā”€ā”€ Block.js
│   │   │   │   │   ā”œā”€ā”€ Brackets.js
│   │   │   │   │   ā”œā”€ā”€ CDC.js
│   │   │   │   │   ā”œā”€ā”€ CDO.js
│   │   │   │   │   ā”œā”€ā”€ ClassSelector.js
│   │   │   │   │   ā”œā”€ā”€ Combinator.js
│   │   │   │   │   ā”œā”€ā”€ Comment.js
│   │   │   │   │   ā”œā”€ā”€ Declaration.js
│   │   │   │   │   ā”œā”€ā”€ DeclarationList.js
│   │   │   │   │   ā”œā”€ā”€ Dimension.js
│   │   │   │   │   ā”œā”€ā”€ Function.js
│   │   │   │   │   ā”œā”€ā”€ Hash.js
│   │   │   │   │   ā”œā”€ā”€ IdSelector.js
│   │   │   │   │   ā”œā”€ā”€ Identifier.js
│   │   │   │   │   ā”œā”€ā”€ MediaFeature.js
│   │   │   │   │   ā”œā”€ā”€ MediaQuery.js
│   │   │   │   │   ā”œā”€ā”€ MediaQueryList.js
│   │   │   │   │   ā”œā”€ā”€ NestingSelector.js
│   │   │   │   │   ā”œā”€ā”€ Nth.js
│   │   │   │   │   ā”œā”€ā”€ Number.js
│   │   │   │   │   ā”œā”€ā”€ Operator.js
│   │   │   │   │   ā”œā”€ā”€ Parentheses.js
│   │   │   │   │   ā”œā”€ā”€ Percentage.js
│   │   │   │   │   ā”œā”€ā”€ PseudoClassSelector.js
│   │   │   │   │   ā”œā”€ā”€ PseudoElementSelector.js
│   │   │   │   │   ā”œā”€ā”€ Ratio.js
│   │   │   │   │   ā”œā”€ā”€ Raw.js
│   │   │   │   │   ā”œā”€ā”€ Rule.js
│   │   │   │   │   ā”œā”€ā”€ Selector.js
│   │   │   │   │   ā”œā”€ā”€ SelectorList.js
│   │   │   │   │   ā”œā”€ā”€ String.js
│   │   │   │   │   ā”œā”€ā”€ StyleSheet.js
│   │   │   │   │   ā”œā”€ā”€ TypeSelector.js
│   │   │   │   │   ā”œā”€ā”€ UnicodeRange.js
│   │   │   │   │   ā”œā”€ā”€ Url.js
│   │   │   │   │   ā”œā”€ā”€ Value.js
│   │   │   │   │   ā”œā”€ā”€ WhiteSpace.js
│   │   │   │   │   ā”œā”€ā”€ index-generate.js
│   │   │   │   │   ā”œā”€ā”€ index-parse-selector.js
│   │   │   │   │   ā”œā”€ā”€ index-parse.js
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ pseudo
│   │   │   │   │   └── index.js
│   │   │   │   └── scope
│   │   │   │       ā”œā”€ā”€ atrulePrelude.js
│   │   │   │       ā”œā”€ā”€ default.js
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ selector.js
│   │   │   │       └── value.js
│   │   │   ā”œā”€ā”€ tokenizer
│   │   │   │   ā”œā”€ā”€ OffsetToLocation.js
│   │   │   │   ā”œā”€ā”€ TokenStream.js
│   │   │   │   ā”œā”€ā”€ adopt-buffer.js
│   │   │   │   ā”œā”€ā”€ char-code-definitions.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ names.js
│   │   │   │   ā”œā”€ā”€ types.js
│   │   │   │   └── utils.js
│   │   │   ā”œā”€ā”€ utils
│   │   │   │   ā”œā”€ā”€ List.js
│   │   │   │   ā”œā”€ā”€ clone.js
│   │   │   │   ā”œā”€ā”€ create-custom-error.js
│   │   │   │   ā”œā”€ā”€ ident.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ names.js
│   │   │   │   ā”œā”€ā”€ string.js
│   │   │   │   └── url.js
│   │   │   ā”œā”€ā”€ version.js
│   │   │   └── walker
│   │   │       ā”œā”€ā”€ create.js
│   │   │       └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ cycle
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ cycle.js
│   │   └── package.json
│   ā”œā”€ā”€ cytoscape
│   │   ā”œā”€ā”€ .browserslist
│   │   ā”œā”€ā”€ .github
│   │   │   ā”œā”€ā”€ ISSUE_TEMPLATE
│   │   │   │   ā”œā”€ā”€ bug_report.md
│   │   │   │   └── feature_request.md
│   │   │   ā”œā”€ā”€ PULL_REQUEST_TEMPLATE.md
│   │   │   ā”œā”€ā”€ SECURITY.md
│   │   │   ā”œā”€ā”€ stale.yml
│   │   │   └── workflows
│   │   │       ā”œā”€ā”€ feature-release.yml
│   │   │       ā”œā”€ā”€ md
│   │   │       │   ā”œā”€ā”€ Feature_Release.md
│   │   │       │   ā”œā”€ā”€ Manual_Release.md
│   │   │       │   ā”œā”€ā”€ Patch_Backport_Release.md
│   │   │       │   ā”œā”€ā”€ blog-issue-template.md
│   │   │       │   └── repo-setup.md
│   │   │       ā”œā”€ā”€ patch-release.yml
│   │   │       ā”œā”€ā”€ scripts
│   │   │       │   ā”œā”€ā”€ merge_unstable_to_master.sh
│   │   │       │   ā”œā”€ā”€ new-feature-version.sh
│   │   │       │   ā”œā”€ā”€ new-patch-version.sh
│   │   │       │   └── pre_release_test.sh
│   │   │       └── tests.yml
│   │   ā”œā”€ā”€ .nvmrc
│   │   ā”œā”€ā”€ .size-snapshot.json
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ CODE_OF_CONDUCT.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ cytoscape.cjs.js
│   │   │   ā”œā”€ā”€ cytoscape.esm.min.mjs
│   │   │   ā”œā”€ā”€ cytoscape.esm.mjs
│   │   │   ā”œā”€ā”€ cytoscape.min.js
│   │   │   └── cytoscape.umd.js
│   │   ā”œā”€ā”€ eslint.config.mjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ license-update.mjs
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ playwright-page
│   │   │   └── index.html
│   │   ā”œā”€ā”€ playwright-tests
│   │   │   └── renderer.spec.js
│   │   ā”œā”€ā”€ playwright.config.js
│   │   ā”œā”€ā”€ rollup.config.mjs
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ animation.mjs
│   │   │   ā”œā”€ā”€ cjs.mjs
│   │   │   ā”œā”€ā”€ collection
│   │   │   │   ā”œā”€ā”€ algorithms
│   │   │   │   │   ā”œā”€ā”€ a-star.mjs
│   │   │   │   │   ā”œā”€ā”€ affinity-propagation.mjs
│   │   │   │   │   ā”œā”€ā”€ bellman-ford.mjs
│   │   │   │   │   ā”œā”€ā”€ betweenness-centrality.mjs
│   │   │   │   │   ā”œā”€ā”€ bfs-dfs.mjs
│   │   │   │   │   ā”œā”€ā”€ closeness-centrality.mjs
│   │   │   │   │   ā”œā”€ā”€ clustering-distances.mjs
│   │   │   │   │   ā”œā”€ā”€ degree-centrality.mjs
│   │   │   │   │   ā”œā”€ā”€ dijkstra.mjs
│   │   │   │   │   ā”œā”€ā”€ floyd-warshall.mjs
│   │   │   │   │   ā”œā”€ā”€ hierarchical-clustering.mjs
│   │   │   │   │   ā”œā”€ā”€ hierholzer.mjs
│   │   │   │   │   ā”œā”€ā”€ hopcroft-tarjan-biconnected.mjs
│   │   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   │   ā”œā”€ā”€ k-clustering.mjs
│   │   │   │   │   ā”œā”€ā”€ karger-stein.mjs
│   │   │   │   │   ā”œā”€ā”€ kruskal.mjs
│   │   │   │   │   ā”œā”€ā”€ markov-clustering.mjs
│   │   │   │   │   ā”œā”€ā”€ page-rank.mjs
│   │   │   │   │   └── tarjan-strongly-connected.mjs
│   │   │   │   ā”œā”€ā”€ animation.mjs
│   │   │   │   ā”œā”€ā”€ cache-traversal-call.mjs
│   │   │   │   ā”œā”€ā”€ class.mjs
│   │   │   │   ā”œā”€ā”€ comparators.mjs
│   │   │   │   ā”œā”€ā”€ compounds.mjs
│   │   │   │   ā”œā”€ā”€ data.mjs
│   │   │   │   ā”œā”€ā”€ degree.mjs
│   │   │   │   ā”œā”€ā”€ dimensions
│   │   │   │   │   ā”œā”€ā”€ bounds.mjs
│   │   │   │   │   ā”œā”€ā”€ edge-points.mjs
│   │   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   │   ā”œā”€ā”€ position.mjs
│   │   │   │   │   └── width-height.mjs
│   │   │   │   ā”œā”€ā”€ element.mjs
│   │   │   │   ā”œā”€ā”€ events.mjs
│   │   │   │   ā”œā”€ā”€ filter.mjs
│   │   │   │   ā”œā”€ā”€ group.mjs
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   ā”œā”€ā”€ iteration.mjs
│   │   │   │   ā”œā”€ā”€ layout.mjs
│   │   │   │   ā”œā”€ā”€ style.mjs
│   │   │   │   ā”œā”€ā”€ switch-functions.mjs
│   │   │   │   ā”œā”€ā”€ traversing.mjs
│   │   │   │   └── zsort.mjs
│   │   │   ā”œā”€ā”€ core
│   │   │   │   ā”œā”€ā”€ add-remove.mjs
│   │   │   │   ā”œā”€ā”€ animation
│   │   │   │   │   ā”œā”€ā”€ cubic-bezier.mjs
│   │   │   │   │   ā”œā”€ā”€ ease.mjs
│   │   │   │   │   ā”œā”€ā”€ easings.mjs
│   │   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   │   ā”œā”€ā”€ spring.mjs
│   │   │   │   │   ā”œā”€ā”€ start.mjs
│   │   │   │   │   ā”œā”€ā”€ step-all.mjs
│   │   │   │   │   └── step.mjs
│   │   │   │   ā”œā”€ā”€ data.mjs
│   │   │   │   ā”œā”€ā”€ events.mjs
│   │   │   │   ā”œā”€ā”€ export.mjs
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   ā”œā”€ā”€ layout.mjs
│   │   │   │   ā”œā”€ā”€ notification.mjs
│   │   │   │   ā”œā”€ā”€ renderer.mjs
│   │   │   │   ā”œā”€ā”€ search.mjs
│   │   │   │   ā”œā”€ā”€ style.mjs
│   │   │   │   └── viewport.mjs
│   │   │   ā”œā”€ā”€ define
│   │   │   │   ā”œā”€ā”€ animation.mjs
│   │   │   │   ā”œā”€ā”€ data.mjs
│   │   │   │   ā”œā”€ā”€ events.mjs
│   │   │   │   └── index.mjs
│   │   │   ā”œā”€ā”€ emitter.mjs
│   │   │   ā”œā”€ā”€ event.mjs
│   │   │   ā”œā”€ā”€ extension.mjs
│   │   │   ā”œā”€ā”€ extensions
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   ā”œā”€ā”€ layout
│   │   │   │   │   ā”œā”€ā”€ breadthfirst.mjs
│   │   │   │   │   ā”œā”€ā”€ circle.mjs
│   │   │   │   │   ā”œā”€ā”€ concentric.mjs
│   │   │   │   │   ā”œā”€ā”€ cose.mjs
│   │   │   │   │   ā”œā”€ā”€ grid.mjs
│   │   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   │   ā”œā”€ā”€ null.mjs
│   │   │   │   │   ā”œā”€ā”€ preset.mjs
│   │   │   │   │   └── random.mjs
│   │   │   │   └── renderer
│   │   │   │       ā”œā”€ā”€ base
│   │   │   │       │   ā”œā”€ā”€ arrow-shapes.mjs
│   │   │   │       │   ā”œā”€ā”€ coord-ele-math
│   │   │   │       │   │   ā”œā”€ā”€ coords.mjs
│   │   │   │       │   │   ā”œā”€ā”€ edge-arrows.mjs
│   │   │   │       │   │   ā”œā”€ā”€ edge-control-points.mjs
│   │   │   │       │   │   ā”œā”€ā”€ edge-endpoints.mjs
│   │   │   │       │   │   ā”œā”€ā”€ edge-projection.mjs
│   │   │   │       │   │   ā”œā”€ā”€ index.mjs
│   │   │   │       │   │   ā”œā”€ā”€ labels.mjs
│   │   │   │       │   │   ā”œā”€ā”€ nodes.mjs
│   │   │   │       │   │   ā”œā”€ā”€ rendered-style.mjs
│   │   │   │       │   │   └── z-ordering.mjs
│   │   │   │       │   ā”œā”€ā”€ images.mjs
│   │   │   │       │   ā”œā”€ā”€ index.mjs
│   │   │   │       │   ā”œā”€ā”€ load-listeners.mjs
│   │   │   │       │   ā”œā”€ā”€ node-shapes.mjs
│   │   │   │       │   └── redraw.mjs
│   │   │   │       ā”œā”€ā”€ canvas
│   │   │   │       │   ā”œā”€ā”€ arrow-shapes.mjs
│   │   │   │       │   ā”œā”€ā”€ drawing-edges.mjs
│   │   │   │       │   ā”œā”€ā”€ drawing-elements.mjs
│   │   │   │       │   ā”œā”€ā”€ drawing-images.mjs
│   │   │   │       │   ā”œā”€ā”€ drawing-label-text.mjs
│   │   │   │       │   ā”œā”€ā”€ drawing-nodes.mjs
│   │   │   │       │   ā”œā”€ā”€ drawing-redraw.mjs
│   │   │   │       │   ā”œā”€ā”€ drawing-shapes.mjs
│   │   │   │       │   ā”œā”€ā”€ ele-texture-cache-lookup.mjs
│   │   │   │       │   ā”œā”€ā”€ ele-texture-cache.mjs
│   │   │   │       │   ā”œā”€ā”€ export-image.mjs
│   │   │   │       │   ā”œā”€ā”€ index.mjs
│   │   │   │       │   ā”œā”€ā”€ layered-texture-cache.mjs
│   │   │   │       │   ā”œā”€ā”€ node-shapes.mjs
│   │   │   │       │   ā”œā”€ā”€ texture-cache-defs.mjs
│   │   │   │       │   └── webgl
│   │   │   │       │       ā”œā”€ā”€ atlas.mjs
│   │   │   │       │       ā”œā”€ā”€ drawing-elements-webgl.mjs
│   │   │   │       │       ā”œā”€ā”€ drawing-redraw-webgl.mjs
│   │   │   │       │       ā”œā”€ā”€ fxaa-upscaler.mjs
│   │   │   │       │       ā”œā”€ā”€ misc-upscaler.js
│   │   │   │       │       ā”œā”€ā”€ shader-sdf.mjs
│   │   │   │       │       └── webgl-util.mjs
│   │   │   │       ā”œā”€ā”€ index.mjs
│   │   │   │       └── null
│   │   │   │           └── index.mjs
│   │   │   ā”œā”€ā”€ heap.mjs
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ is.mjs
│   │   │   ā”œā”€ā”€ map.mjs
│   │   │   ā”œā”€ā”€ math.mjs
│   │   │   ā”œā”€ā”€ promise.mjs
│   │   │   ā”œā”€ā”€ round.mjs
│   │   │   ā”œā”€ā”€ selector
│   │   │   │   ā”œā”€ā”€ data.mjs
│   │   │   │   ā”œā”€ā”€ expressions.mjs
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   ā”œā”€ā”€ matching.mjs
│   │   │   │   ā”œā”€ā”€ new-query.mjs
│   │   │   │   ā”œā”€ā”€ parse.mjs
│   │   │   │   ā”œā”€ā”€ query-type-match.mjs
│   │   │   │   ā”œā”€ā”€ state.mjs
│   │   │   │   ā”œā”€ā”€ tokens.mjs
│   │   │   │   └── type.mjs
│   │   │   ā”œā”€ā”€ set.mjs
│   │   │   ā”œā”€ā”€ style
│   │   │   │   ā”œā”€ā”€ apply.mjs
│   │   │   │   ā”œā”€ā”€ bypass.mjs
│   │   │   │   ā”œā”€ā”€ container.mjs
│   │   │   │   ā”œā”€ā”€ get-for-ele.mjs
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   ā”œā”€ā”€ json.mjs
│   │   │   │   ā”œā”€ā”€ parse.mjs
│   │   │   │   ā”œā”€ā”€ properties.mjs
│   │   │   │   └── string-sheet.mjs
│   │   │   ā”œā”€ā”€ stylesheet.mjs
│   │   │   ā”œā”€ā”€ test.mjs
│   │   │   ā”œā”€ā”€ util
│   │   │   │   ā”œā”€ā”€ colors.mjs
│   │   │   │   ā”œā”€ā”€ extend.mjs
│   │   │   │   ā”œā”€ā”€ hash.mjs
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   ā”œā”€ā”€ maps.mjs
│   │   │   │   ā”œā”€ā”€ memoize.mjs
│   │   │   │   ā”œā”€ā”€ position.mjs
│   │   │   │   ā”œā”€ā”€ regex.mjs
│   │   │   │   ā”œā”€ā”€ sort.mjs
│   │   │   │   ā”œā”€ā”€ strings.mjs
│   │   │   │   └── timing.mjs
│   │   │   ā”œā”€ā”€ version.mjs
│   │   │   └── window.mjs
│   │   ā”œā”€ā”€ tests-examples
│   │   │   └── demo-todo-app.spec.js
│   │   └── update-imports.mjs
│   ā”œā”€ā”€ cytoscape-cose-bilkent
│   │   ā”œā”€ā”€ .babelrc
│   │   ā”œā”€ā”€ .eslintignore
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bower.json
│   │   ā”œā”€ā”€ cytoscape-cose-bilkent.js
│   │   ā”œā”€ā”€ demo-compound.html
│   │   ā”œā”€ā”€ demo.html
│   │   ā”œā”€ā”€ nbproject
│   │   │   ā”œā”€ā”€ private
│   │   │   │   └── private.properties
│   │   │   ā”œā”€ā”€ project.properties
│   │   │   └── project.xml
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   └── index.js
│   │   ā”œā”€ā”€ test
│   │   │   └── example.js
│   │   └── webpack.config.js
│   ā”œā”€ā”€ cytoscape-fcose
│   │   ā”œā”€ā”€ .babelrc
│   │   ā”œā”€ā”€ .eslintignore
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ CITATION.cff
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bower.json
│   │   ā”œā”€ā”€ cytoscape-fcose.js
│   │   ā”œā”€ā”€ demo
│   │   │   ā”œā”€ā”€ demo-compound.html
│   │   │   ā”œā”€ā”€ demo-constraint-control.js
│   │   │   ā”œā”€ā”€ demo-constraint.html
│   │   │   ā”œā”€ā”€ demo.gif
│   │   │   ā”œā”€ā”€ demo.html
│   │   │   ā”œā”€ā”€ incrementalConstraints.gif
│   │   │   └── samples
│   │   │       ā”œā”€ā”€ callGraph.js
│   │   │       ā”œā”€ā”€ callGraph_constraints.js
│   │   │       ā”œā”€ā”€ chalk.js
│   │   │       ā”œā”€ā”€ chalk_constraints.js
│   │   │       ā”œā”€ā”€ unix.js
│   │   │       ā”œā”€ā”€ unix_constraints.js
│   │   │       ā”œā”€ā”€ uwsn.js
│   │   │       ā”œā”€ā”€ uwsn_constraints.js
│   │   │       ā”œā”€ā”€ wsn.js
│   │   │       └── wsn_constraints.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ cose-base
│   │   │   │   ā”œā”€ā”€ .babelrc
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ bower.json
│   │   │   │   ā”œā”€ā”€ cose-base.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ src
│   │   │   │   │   ā”œā”€ā”€ CoSEConstants.js
│   │   │   │   │   ā”œā”€ā”€ CoSEEdge.js
│   │   │   │   │   ā”œā”€ā”€ CoSEGraph.js
│   │   │   │   │   ā”œā”€ā”€ CoSEGraphManager.js
│   │   │   │   │   ā”œā”€ā”€ CoSELayout.js
│   │   │   │   │   ā”œā”€ā”€ CoSENode.js
│   │   │   │   │   └── ConstraintHandler.js
│   │   │   │   └── webpack.config.js
│   │   │   └── layout-base
│   │   │       ā”œā”€ā”€ .babelrc
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ bower.json
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ layout-base.js
│   │   │       ā”œā”€ā”€ layout-schema.png
│   │   │       ā”œā”€ā”€ nbproject
│   │   │       │   ā”œā”€ā”€ private
│   │   │       │   │   ā”œā”€ā”€ private.properties
│   │   │       │   │   └── private.xml
│   │   │       │   ā”œā”€ā”€ project.properties
│   │   │       │   └── project.xml
│   │   │       ā”œā”€ā”€ package.json
│   │   │       ā”œā”€ā”€ src
│   │   │       │   ā”œā”€ā”€ LEdge.js
│   │   │       │   ā”œā”€ā”€ LGraph.js
│   │   │       │   ā”œā”€ā”€ LGraphManager.js
│   │   │       │   ā”œā”€ā”€ LGraphObject.js
│   │   │       │   ā”œā”€ā”€ LNode.js
│   │   │       │   ā”œā”€ā”€ Layout.js
│   │   │       │   ā”œā”€ā”€ LayoutConstants.js
│   │   │       │   ā”œā”€ā”€ fd
│   │   │       │   │   ā”œā”€ā”€ FDLayout.js
│   │   │       │   │   ā”œā”€ā”€ FDLayoutConstants.js
│   │   │       │   │   ā”œā”€ā”€ FDLayoutEdge.js
│   │   │       │   │   └── FDLayoutNode.js
│   │   │       │   └── util
│   │   │       │       ā”œā”€ā”€ DimensionD.js
│   │   │       │       ā”œā”€ā”€ Emitter.js
│   │   │       │       ā”œā”€ā”€ HashMap.js
│   │   │       │       ā”œā”€ā”€ HashSet.js
│   │   │       │       ā”œā”€ā”€ IGeometry.js
│   │   │       │       ā”œā”€ā”€ IMath.js
│   │   │       │       ā”œā”€ā”€ Integer.js
│   │   │       │       ā”œā”€ā”€ LinkedList.js
│   │   │       │       ā”œā”€ā”€ Matrix.js
│   │   │       │       ā”œā”€ā”€ Point.js
│   │   │       │       ā”œā”€ā”€ PointD.js
│   │   │       │       ā”œā”€ā”€ Quicksort.js
│   │   │       │       ā”œā”€ā”€ RandomSeed.js
│   │   │       │       ā”œā”€ā”€ RectangleD.js
│   │   │       │       ā”œā”€ā”€ SVD.js
│   │   │       │       ā”œā”€ā”€ Transform.js
│   │   │       │       ā”œā”€ā”€ UniqueIDGeneretor.js
│   │   │       │       └── alignment
│   │   │       │           └── NeedlemanWunsch.js
│   │   │       └── webpack.config.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ assign.js
│   │   │   ā”œā”€ā”€ fcose
│   │   │   │   ā”œā”€ā”€ auxiliary.js
│   │   │   │   ā”œā”€ā”€ cose.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── spectral.js
│   │   │   └── index.js
│   │   ā”œā”€ā”€ test
│   │   │   └── example.js
│   │   └── webpack.config.js
│   ā”œā”€ā”€ d3
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3.js
│   │   │   └── d3.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       └── index.js
│   ā”œā”€ā”€ d3-array
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-array.js
│   │   │   └── d3-array.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ array.js
│   │       ā”œā”€ā”€ ascending.js
│   │       ā”œā”€ā”€ bin.js
│   │       ā”œā”€ā”€ bisect.js
│   │       ā”œā”€ā”€ bisector.js
│   │       ā”œā”€ā”€ blur.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ count.js
│   │       ā”œā”€ā”€ cross.js
│   │       ā”œā”€ā”€ cumsum.js
│   │       ā”œā”€ā”€ descending.js
│   │       ā”œā”€ā”€ deviation.js
│   │       ā”œā”€ā”€ difference.js
│   │       ā”œā”€ā”€ disjoint.js
│   │       ā”œā”€ā”€ every.js
│   │       ā”œā”€ā”€ extent.js
│   │       ā”œā”€ā”€ filter.js
│   │       ā”œā”€ā”€ fsum.js
│   │       ā”œā”€ā”€ greatest.js
│   │       ā”œā”€ā”€ greatestIndex.js
│   │       ā”œā”€ā”€ group.js
│   │       ā”œā”€ā”€ groupSort.js
│   │       ā”œā”€ā”€ identity.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ intersection.js
│   │       ā”œā”€ā”€ least.js
│   │       ā”œā”€ā”€ leastIndex.js
│   │       ā”œā”€ā”€ map.js
│   │       ā”œā”€ā”€ max.js
│   │       ā”œā”€ā”€ maxIndex.js
│   │       ā”œā”€ā”€ mean.js
│   │       ā”œā”€ā”€ median.js
│   │       ā”œā”€ā”€ merge.js
│   │       ā”œā”€ā”€ min.js
│   │       ā”œā”€ā”€ minIndex.js
│   │       ā”œā”€ā”€ mode.js
│   │       ā”œā”€ā”€ nice.js
│   │       ā”œā”€ā”€ number.js
│   │       ā”œā”€ā”€ pairs.js
│   │       ā”œā”€ā”€ permute.js
│   │       ā”œā”€ā”€ quantile.js
│   │       ā”œā”€ā”€ quickselect.js
│   │       ā”œā”€ā”€ range.js
│   │       ā”œā”€ā”€ rank.js
│   │       ā”œā”€ā”€ reduce.js
│   │       ā”œā”€ā”€ reverse.js
│   │       ā”œā”€ā”€ scan.js
│   │       ā”œā”€ā”€ shuffle.js
│   │       ā”œā”€ā”€ some.js
│   │       ā”œā”€ā”€ sort.js
│   │       ā”œā”€ā”€ subset.js
│   │       ā”œā”€ā”€ sum.js
│   │       ā”œā”€ā”€ superset.js
│   │       ā”œā”€ā”€ threshold
│   │       │   ā”œā”€ā”€ freedmanDiaconis.js
│   │       │   ā”œā”€ā”€ scott.js
│   │       │   └── sturges.js
│   │       ā”œā”€ā”€ ticks.js
│   │       ā”œā”€ā”€ transpose.js
│   │       ā”œā”€ā”€ union.js
│   │       ā”œā”€ā”€ variance.js
│   │       └── zip.js
│   ā”œā”€ā”€ d3-axis
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-axis.js
│   │   │   └── d3-axis.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ axis.js
│   │       ā”œā”€ā”€ identity.js
│   │       └── index.js
│   ā”œā”€ā”€ d3-brush
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-brush.js
│   │   │   └── d3-brush.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ brush.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ event.js
│   │       ā”œā”€ā”€ index.js
│   │       └── noevent.js
│   ā”œā”€ā”€ d3-chord
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-chord.js
│   │   │   └── d3-chord.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ array.js
│   │       ā”œā”€ā”€ chord.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ math.js
│   │       └── ribbon.js
│   ā”œā”€ā”€ d3-color
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-color.js
│   │   │   └── d3-color.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ color.js
│   │       ā”œā”€ā”€ cubehelix.js
│   │       ā”œā”€ā”€ define.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ lab.js
│   │       └── math.js
│   ā”œā”€ā”€ d3-contour
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-contour.js
│   │   │   └── d3-contour.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ area.js
│   │       ā”œā”€ā”€ array.js
│   │       ā”œā”€ā”€ ascending.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ contains.js
│   │       ā”œā”€ā”€ contours.js
│   │       ā”œā”€ā”€ density.js
│   │       ā”œā”€ā”€ index.js
│   │       └── noop.js
│   ā”œā”€ā”€ d3-delaunay
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-delaunay.js
│   │   │   └── d3-delaunay.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ delaunay.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ path.js
│   │       ā”œā”€ā”€ polygon.js
│   │       └── voronoi.js
│   ā”œā”€ā”€ d3-dispatch
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-dispatch.js
│   │   │   └── d3-dispatch.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ dispatch.js
│   │       └── index.js
│   ā”œā”€ā”€ d3-drag
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-drag.js
│   │   │   └── d3-drag.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ drag.js
│   │       ā”œā”€ā”€ event.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ nodrag.js
│   │       └── noevent.js
│   ā”œā”€ā”€ d3-dsv
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   ā”œā”€ā”€ dsv2dsv.js
│   │   │   ā”œā”€ā”€ dsv2json.js
│   │   │   └── json2dsv.js
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-dsv.js
│   │   │   └── d3-dsv.min.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── commander
│   │   │       ā”œā”€ā”€ CHANGELOG.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ Readme.md
│   │   │       ā”œā”€ā”€ esm.mjs
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ package-support.json
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── typings
│   │   │           └── index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ autoType.js
│   │       ā”œā”€ā”€ csv.js
│   │       ā”œā”€ā”€ dsv.js
│   │       ā”œā”€ā”€ index.js
│   │       └── tsv.js
│   ā”œā”€ā”€ d3-ease
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-ease.js
│   │   │   └── d3-ease.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ back.js
│   │       ā”œā”€ā”€ bounce.js
│   │       ā”œā”€ā”€ circle.js
│   │       ā”œā”€ā”€ cubic.js
│   │       ā”œā”€ā”€ elastic.js
│   │       ā”œā”€ā”€ exp.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ linear.js
│   │       ā”œā”€ā”€ math.js
│   │       ā”œā”€ā”€ poly.js
│   │       ā”œā”€ā”€ quad.js
│   │       └── sin.js
│   ā”œā”€ā”€ d3-fetch
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-fetch.js
│   │   │   └── d3-fetch.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ blob.js
│   │       ā”œā”€ā”€ buffer.js
│   │       ā”œā”€ā”€ dsv.js
│   │       ā”œā”€ā”€ image.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ json.js
│   │       ā”œā”€ā”€ text.js
│   │       └── xml.js
│   ā”œā”€ā”€ d3-force
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-force.js
│   │   │   └── d3-force.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ center.js
│   │       ā”œā”€ā”€ collide.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ jiggle.js
│   │       ā”œā”€ā”€ lcg.js
│   │       ā”œā”€ā”€ link.js
│   │       ā”œā”€ā”€ manyBody.js
│   │       ā”œā”€ā”€ radial.js
│   │       ā”œā”€ā”€ simulation.js
│   │       ā”œā”€ā”€ x.js
│   │       └── y.js
│   ā”œā”€ā”€ d3-format
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-format.js
│   │   │   └── d3-format.min.js
│   │   ā”œā”€ā”€ locale
│   │   │   ā”œā”€ā”€ ar-001.json
│   │   │   ā”œā”€ā”€ ar-AE.json
│   │   │   ā”œā”€ā”€ ar-BH.json
│   │   │   ā”œā”€ā”€ ar-DJ.json
│   │   │   ā”œā”€ā”€ ar-DZ.json
│   │   │   ā”œā”€ā”€ ar-EG.json
│   │   │   ā”œā”€ā”€ ar-EH.json
│   │   │   ā”œā”€ā”€ ar-ER.json
│   │   │   ā”œā”€ā”€ ar-IL.json
│   │   │   ā”œā”€ā”€ ar-IQ.json
│   │   │   ā”œā”€ā”€ ar-JO.json
│   │   │   ā”œā”€ā”€ ar-KM.json
│   │   │   ā”œā”€ā”€ ar-KW.json
│   │   │   ā”œā”€ā”€ ar-LB.json
│   │   │   ā”œā”€ā”€ ar-LY.json
│   │   │   ā”œā”€ā”€ ar-MA.json
│   │   │   ā”œā”€ā”€ ar-MR.json
│   │   │   ā”œā”€ā”€ ar-OM.json
│   │   │   ā”œā”€ā”€ ar-PS.json
│   │   │   ā”œā”€ā”€ ar-QA.json
│   │   │   ā”œā”€ā”€ ar-SA.json
│   │   │   ā”œā”€ā”€ ar-SD.json
│   │   │   ā”œā”€ā”€ ar-SO.json
│   │   │   ā”œā”€ā”€ ar-SS.json
│   │   │   ā”œā”€ā”€ ar-SY.json
│   │   │   ā”œā”€ā”€ ar-TD.json
│   │   │   ā”œā”€ā”€ ar-TN.json
│   │   │   ā”œā”€ā”€ ar-YE.json
│   │   │   ā”œā”€ā”€ ca-ES.json
│   │   │   ā”œā”€ā”€ cs-CZ.json
│   │   │   ā”œā”€ā”€ da-DK.json
│   │   │   ā”œā”€ā”€ de-CH.json
│   │   │   ā”œā”€ā”€ de-DE.json
│   │   │   ā”œā”€ā”€ en-CA.json
│   │   │   ā”œā”€ā”€ en-GB.json
│   │   │   ā”œā”€ā”€ en-IE.json
│   │   │   ā”œā”€ā”€ en-IN.json
│   │   │   ā”œā”€ā”€ en-US.json
│   │   │   ā”œā”€ā”€ es-BO.json
│   │   │   ā”œā”€ā”€ es-ES.json
│   │   │   ā”œā”€ā”€ es-MX.json
│   │   │   ā”œā”€ā”€ fi-FI.json
│   │   │   ā”œā”€ā”€ fr-CA.json
│   │   │   ā”œā”€ā”€ fr-FR.json
│   │   │   ā”œā”€ā”€ he-IL.json
│   │   │   ā”œā”€ā”€ hu-HU.json
│   │   │   ā”œā”€ā”€ it-IT.json
│   │   │   ā”œā”€ā”€ ja-JP.json
│   │   │   ā”œā”€ā”€ ko-KR.json
│   │   │   ā”œā”€ā”€ mk-MK.json
│   │   │   ā”œā”€ā”€ nl-NL.json
│   │   │   ā”œā”€ā”€ pl-PL.json
│   │   │   ā”œā”€ā”€ pt-BR.json
│   │   │   ā”œā”€ā”€ pt-PT.json
│   │   │   ā”œā”€ā”€ ru-RU.json
│   │   │   ā”œā”€ā”€ sl-SI.json
│   │   │   ā”œā”€ā”€ sv-SE.json
│   │   │   ā”œā”€ā”€ uk-UA.json
│   │   │   └── zh-CN.json
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ defaultLocale.js
│   │       ā”œā”€ā”€ exponent.js
│   │       ā”œā”€ā”€ formatDecimal.js
│   │       ā”œā”€ā”€ formatGroup.js
│   │       ā”œā”€ā”€ formatNumerals.js
│   │       ā”œā”€ā”€ formatPrefixAuto.js
│   │       ā”œā”€ā”€ formatRounded.js
│   │       ā”œā”€ā”€ formatSpecifier.js
│   │       ā”œā”€ā”€ formatTrim.js
│   │       ā”œā”€ā”€ formatTypes.js
│   │       ā”œā”€ā”€ identity.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ locale.js
│   │       ā”œā”€ā”€ precisionFixed.js
│   │       ā”œā”€ā”€ precisionPrefix.js
│   │       └── precisionRound.js
│   ā”œā”€ā”€ d3-geo
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-geo.js
│   │   │   └── d3-geo.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ area.js
│   │       ā”œā”€ā”€ bounds.js
│   │       ā”œā”€ā”€ cartesian.js
│   │       ā”œā”€ā”€ centroid.js
│   │       ā”œā”€ā”€ circle.js
│   │       ā”œā”€ā”€ clip
│   │       │   ā”œā”€ā”€ antimeridian.js
│   │       │   ā”œā”€ā”€ buffer.js
│   │       │   ā”œā”€ā”€ circle.js
│   │       │   ā”œā”€ā”€ extent.js
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ line.js
│   │       │   ā”œā”€ā”€ rectangle.js
│   │       │   └── rejoin.js
│   │       ā”œā”€ā”€ compose.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ contains.js
│   │       ā”œā”€ā”€ distance.js
│   │       ā”œā”€ā”€ graticule.js
│   │       ā”œā”€ā”€ identity.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ interpolate.js
│   │       ā”œā”€ā”€ length.js
│   │       ā”œā”€ā”€ math.js
│   │       ā”œā”€ā”€ noop.js
│   │       ā”œā”€ā”€ path
│   │       │   ā”œā”€ā”€ area.js
│   │       │   ā”œā”€ā”€ bounds.js
│   │       │   ā”œā”€ā”€ centroid.js
│   │       │   ā”œā”€ā”€ context.js
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ measure.js
│   │       │   └── string.js
│   │       ā”œā”€ā”€ pointEqual.js
│   │       ā”œā”€ā”€ polygonContains.js
│   │       ā”œā”€ā”€ projection
│   │       │   ā”œā”€ā”€ albers.js
│   │       │   ā”œā”€ā”€ albersUsa.js
│   │       │   ā”œā”€ā”€ azimuthal.js
│   │       │   ā”œā”€ā”€ azimuthalEqualArea.js
│   │       │   ā”œā”€ā”€ azimuthalEquidistant.js
│   │       │   ā”œā”€ā”€ conic.js
│   │       │   ā”œā”€ā”€ conicConformal.js
│   │       │   ā”œā”€ā”€ conicEqualArea.js
│   │       │   ā”œā”€ā”€ conicEquidistant.js
│   │       │   ā”œā”€ā”€ cylindricalEqualArea.js
│   │       │   ā”œā”€ā”€ equalEarth.js
│   │       │   ā”œā”€ā”€ equirectangular.js
│   │       │   ā”œā”€ā”€ fit.js
│   │       │   ā”œā”€ā”€ gnomonic.js
│   │       │   ā”œā”€ā”€ identity.js
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ mercator.js
│   │       │   ā”œā”€ā”€ naturalEarth1.js
│   │       │   ā”œā”€ā”€ orthographic.js
│   │       │   ā”œā”€ā”€ resample.js
│   │       │   ā”œā”€ā”€ stereographic.js
│   │       │   └── transverseMercator.js
│   │       ā”œā”€ā”€ rotation.js
│   │       ā”œā”€ā”€ stream.js
│   │       └── transform.js
│   ā”œā”€ā”€ d3-hierarchy
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-hierarchy.js
│   │   │   └── d3-hierarchy.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ accessors.js
│   │       ā”œā”€ā”€ array.js
│   │       ā”œā”€ā”€ cluster.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ hierarchy
│   │       │   ā”œā”€ā”€ ancestors.js
│   │       │   ā”œā”€ā”€ count.js
│   │       │   ā”œā”€ā”€ descendants.js
│   │       │   ā”œā”€ā”€ each.js
│   │       │   ā”œā”€ā”€ eachAfter.js
│   │       │   ā”œā”€ā”€ eachBefore.js
│   │       │   ā”œā”€ā”€ find.js
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ iterator.js
│   │       │   ā”œā”€ā”€ leaves.js
│   │       │   ā”œā”€ā”€ links.js
│   │       │   ā”œā”€ā”€ path.js
│   │       │   ā”œā”€ā”€ sort.js
│   │       │   └── sum.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ lcg.js
│   │       ā”œā”€ā”€ pack
│   │       │   ā”œā”€ā”€ enclose.js
│   │       │   ā”œā”€ā”€ index.js
│   │       │   └── siblings.js
│   │       ā”œā”€ā”€ partition.js
│   │       ā”œā”€ā”€ stratify.js
│   │       ā”œā”€ā”€ tree.js
│   │       └── treemap
│   │           ā”œā”€ā”€ binary.js
│   │           ā”œā”€ā”€ dice.js
│   │           ā”œā”€ā”€ index.js
│   │           ā”œā”€ā”€ resquarify.js
│   │           ā”œā”€ā”€ round.js
│   │           ā”œā”€ā”€ slice.js
│   │           ā”œā”€ā”€ sliceDice.js
│   │           └── squarify.js
│   ā”œā”€ā”€ d3-interpolate
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-interpolate.js
│   │   │   └── d3-interpolate.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ array.js
│   │       ā”œā”€ā”€ basis.js
│   │       ā”œā”€ā”€ basisClosed.js
│   │       ā”œā”€ā”€ color.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ cubehelix.js
│   │       ā”œā”€ā”€ date.js
│   │       ā”œā”€ā”€ discrete.js
│   │       ā”œā”€ā”€ hcl.js
│   │       ā”œā”€ā”€ hsl.js
│   │       ā”œā”€ā”€ hue.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ lab.js
│   │       ā”œā”€ā”€ number.js
│   │       ā”œā”€ā”€ numberArray.js
│   │       ā”œā”€ā”€ object.js
│   │       ā”œā”€ā”€ piecewise.js
│   │       ā”œā”€ā”€ quantize.js
│   │       ā”œā”€ā”€ rgb.js
│   │       ā”œā”€ā”€ round.js
│   │       ā”œā”€ā”€ string.js
│   │       ā”œā”€ā”€ transform
│   │       │   ā”œā”€ā”€ decompose.js
│   │       │   ā”œā”€ā”€ index.js
│   │       │   └── parse.js
│   │       ā”œā”€ā”€ value.js
│   │       └── zoom.js
│   ā”œā”€ā”€ d3-path
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-path.js
│   │   │   └── d3-path.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ index.js
│   │       └── path.js
│   ā”œā”€ā”€ d3-polygon
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-polygon.js
│   │   │   └── d3-polygon.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ area.js
│   │       ā”œā”€ā”€ centroid.js
│   │       ā”œā”€ā”€ contains.js
│   │       ā”œā”€ā”€ cross.js
│   │       ā”œā”€ā”€ hull.js
│   │       ā”œā”€ā”€ index.js
│   │       └── length.js
│   ā”œā”€ā”€ d3-quadtree
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-quadtree.js
│   │   │   └── d3-quadtree.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ add.js
│   │       ā”œā”€ā”€ cover.js
│   │       ā”œā”€ā”€ data.js
│   │       ā”œā”€ā”€ extent.js
│   │       ā”œā”€ā”€ find.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ quad.js
│   │       ā”œā”€ā”€ quadtree.js
│   │       ā”œā”€ā”€ remove.js
│   │       ā”œā”€ā”€ root.js
│   │       ā”œā”€ā”€ size.js
│   │       ā”œā”€ā”€ visit.js
│   │       ā”œā”€ā”€ visitAfter.js
│   │       ā”œā”€ā”€ x.js
│   │       └── y.js
│   ā”œā”€ā”€ d3-random
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-random.js
│   │   │   └── d3-random.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ bates.js
│   │       ā”œā”€ā”€ bernoulli.js
│   │       ā”œā”€ā”€ beta.js
│   │       ā”œā”€ā”€ binomial.js
│   │       ā”œā”€ā”€ cauchy.js
│   │       ā”œā”€ā”€ defaultSource.js
│   │       ā”œā”€ā”€ exponential.js
│   │       ā”œā”€ā”€ gamma.js
│   │       ā”œā”€ā”€ geometric.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ int.js
│   │       ā”œā”€ā”€ irwinHall.js
│   │       ā”œā”€ā”€ lcg.js
│   │       ā”œā”€ā”€ logNormal.js
│   │       ā”œā”€ā”€ logistic.js
│   │       ā”œā”€ā”€ normal.js
│   │       ā”œā”€ā”€ pareto.js
│   │       ā”œā”€ā”€ poisson.js
│   │       ā”œā”€ā”€ uniform.js
│   │       └── weibull.js
│   ā”œā”€ā”€ d3-sankey
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-sankey.js
│   │   │   └── d3-sankey.min.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ d3-array
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   ā”œā”€ā”€ d3-array.js
│   │   │   │   │   └── d3-array.min.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ array.js
│   │   │   │       ā”œā”€ā”€ ascending.js
│   │   │   │       ā”œā”€ā”€ bin.js
│   │   │   │       ā”œā”€ā”€ bisect.js
│   │   │   │       ā”œā”€ā”€ bisector.js
│   │   │   │       ā”œā”€ā”€ constant.js
│   │   │   │       ā”œā”€ā”€ count.js
│   │   │   │       ā”œā”€ā”€ cross.js
│   │   │   │       ā”œā”€ā”€ cumsum.js
│   │   │   │       ā”œā”€ā”€ descending.js
│   │   │   │       ā”œā”€ā”€ deviation.js
│   │   │   │       ā”œā”€ā”€ difference.js
│   │   │   │       ā”œā”€ā”€ disjoint.js
│   │   │   │       ā”œā”€ā”€ every.js
│   │   │   │       ā”œā”€ā”€ extent.js
│   │   │   │       ā”œā”€ā”€ filter.js
│   │   │   │       ā”œā”€ā”€ fsum.js
│   │   │   │       ā”œā”€ā”€ greatest.js
│   │   │   │       ā”œā”€ā”€ greatestIndex.js
│   │   │   │       ā”œā”€ā”€ group.js
│   │   │   │       ā”œā”€ā”€ groupSort.js
│   │   │   │       ā”œā”€ā”€ identity.js
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ intersection.js
│   │   │   │       ā”œā”€ā”€ least.js
│   │   │   │       ā”œā”€ā”€ leastIndex.js
│   │   │   │       ā”œā”€ā”€ map.js
│   │   │   │       ā”œā”€ā”€ max.js
│   │   │   │       ā”œā”€ā”€ maxIndex.js
│   │   │   │       ā”œā”€ā”€ mean.js
│   │   │   │       ā”œā”€ā”€ median.js
│   │   │   │       ā”œā”€ā”€ merge.js
│   │   │   │       ā”œā”€ā”€ min.js
│   │   │   │       ā”œā”€ā”€ minIndex.js
│   │   │   │       ā”œā”€ā”€ nice.js
│   │   │   │       ā”œā”€ā”€ number.js
│   │   │   │       ā”œā”€ā”€ pairs.js
│   │   │   │       ā”œā”€ā”€ permute.js
│   │   │   │       ā”œā”€ā”€ quantile.js
│   │   │   │       ā”œā”€ā”€ quickselect.js
│   │   │   │       ā”œā”€ā”€ range.js
│   │   │   │       ā”œā”€ā”€ reduce.js
│   │   │   │       ā”œā”€ā”€ reverse.js
│   │   │   │       ā”œā”€ā”€ scan.js
│   │   │   │       ā”œā”€ā”€ set.js
│   │   │   │       ā”œā”€ā”€ shuffle.js
│   │   │   │       ā”œā”€ā”€ some.js
│   │   │   │       ā”œā”€ā”€ sort.js
│   │   │   │       ā”œā”€ā”€ subset.js
│   │   │   │       ā”œā”€ā”€ sum.js
│   │   │   │       ā”œā”€ā”€ superset.js
│   │   │   │       ā”œā”€ā”€ threshold
│   │   │   │       │   ā”œā”€ā”€ freedmanDiaconis.js
│   │   │   │       │   ā”œā”€ā”€ scott.js
│   │   │   │       │   └── sturges.js
│   │   │   │       ā”œā”€ā”€ ticks.js
│   │   │   │       ā”œā”€ā”€ transpose.js
│   │   │   │       ā”œā”€ā”€ union.js
│   │   │   │       ā”œā”€ā”€ variance.js
│   │   │   │       └── zip.js
│   │   │   ā”œā”€ā”€ d3-path
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   ā”œā”€ā”€ d3-path.js
│   │   │   │   │   └── d3-path.min.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       └── path.js
│   │   │   ā”œā”€ā”€ d3-shape
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   ā”œā”€ā”€ d3-shape.js
│   │   │   │   │   └── d3-shape.min.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ arc.js
│   │   │   │       ā”œā”€ā”€ area.js
│   │   │   │       ā”œā”€ā”€ areaRadial.js
│   │   │   │       ā”œā”€ā”€ array.js
│   │   │   │       ā”œā”€ā”€ constant.js
│   │   │   │       ā”œā”€ā”€ curve
│   │   │   │       │   ā”œā”€ā”€ basis.js
│   │   │   │       │   ā”œā”€ā”€ basisClosed.js
│   │   │   │       │   ā”œā”€ā”€ basisOpen.js
│   │   │   │       │   ā”œā”€ā”€ bundle.js
│   │   │   │       │   ā”œā”€ā”€ cardinal.js
│   │   │   │       │   ā”œā”€ā”€ cardinalClosed.js
│   │   │   │       │   ā”œā”€ā”€ cardinalOpen.js
│   │   │   │       │   ā”œā”€ā”€ catmullRom.js
│   │   │   │       │   ā”œā”€ā”€ catmullRomClosed.js
│   │   │   │       │   ā”œā”€ā”€ catmullRomOpen.js
│   │   │   │       │   ā”œā”€ā”€ linear.js
│   │   │   │       │   ā”œā”€ā”€ linearClosed.js
│   │   │   │       │   ā”œā”€ā”€ monotone.js
│   │   │   │       │   ā”œā”€ā”€ natural.js
│   │   │   │       │   ā”œā”€ā”€ radial.js
│   │   │   │       │   └── step.js
│   │   │   │       ā”œā”€ā”€ descending.js
│   │   │   │       ā”œā”€ā”€ identity.js
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ line.js
│   │   │   │       ā”œā”€ā”€ lineRadial.js
│   │   │   │       ā”œā”€ā”€ link
│   │   │   │       │   └── index.js
│   │   │   │       ā”œā”€ā”€ math.js
│   │   │   │       ā”œā”€ā”€ noop.js
│   │   │   │       ā”œā”€ā”€ offset
│   │   │   │       │   ā”œā”€ā”€ diverging.js
│   │   │   │       │   ā”œā”€ā”€ expand.js
│   │   │   │       │   ā”œā”€ā”€ none.js
│   │   │   │       │   ā”œā”€ā”€ silhouette.js
│   │   │   │       │   └── wiggle.js
│   │   │   │       ā”œā”€ā”€ order
│   │   │   │       │   ā”œā”€ā”€ appearance.js
│   │   │   │       │   ā”œā”€ā”€ ascending.js
│   │   │   │       │   ā”œā”€ā”€ descending.js
│   │   │   │       │   ā”œā”€ā”€ insideOut.js
│   │   │   │       │   ā”œā”€ā”€ none.js
│   │   │   │       │   └── reverse.js
│   │   │   │       ā”œā”€ā”€ pie.js
│   │   │   │       ā”œā”€ā”€ point.js
│   │   │   │       ā”œā”€ā”€ pointRadial.js
│   │   │   │       ā”œā”€ā”€ stack.js
│   │   │   │       ā”œā”€ā”€ symbol
│   │   │   │       │   ā”œā”€ā”€ circle.js
│   │   │   │       │   ā”œā”€ā”€ cross.js
│   │   │   │       │   ā”œā”€ā”€ diamond.js
│   │   │   │       │   ā”œā”€ā”€ square.js
│   │   │   │       │   ā”œā”€ā”€ star.js
│   │   │   │       │   ā”œā”€ā”€ triangle.js
│   │   │   │       │   └── wye.js
│   │   │   │       └── symbol.js
│   │   │   └── internmap
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ dist
│   │   │       │   ā”œā”€ā”€ internmap.js
│   │   │       │   └── internmap.min.js
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── src
│   │   │           └── index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ align.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ sankey.js
│   │       └── sankeyLinkHorizontal.js
│   ā”œā”€ā”€ d3-scale
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-scale.js
│   │   │   └── d3-scale.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ band.js
│   │       ā”œā”€ā”€ colors.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ continuous.js
│   │       ā”œā”€ā”€ diverging.js
│   │       ā”œā”€ā”€ identity.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ init.js
│   │       ā”œā”€ā”€ linear.js
│   │       ā”œā”€ā”€ log.js
│   │       ā”œā”€ā”€ nice.js
│   │       ā”œā”€ā”€ number.js
│   │       ā”œā”€ā”€ ordinal.js
│   │       ā”œā”€ā”€ pow.js
│   │       ā”œā”€ā”€ quantile.js
│   │       ā”œā”€ā”€ quantize.js
│   │       ā”œā”€ā”€ radial.js
│   │       ā”œā”€ā”€ sequential.js
│   │       ā”œā”€ā”€ sequentialQuantile.js
│   │       ā”œā”€ā”€ symlog.js
│   │       ā”œā”€ā”€ threshold.js
│   │       ā”œā”€ā”€ tickFormat.js
│   │       ā”œā”€ā”€ time.js
│   │       └── utcTime.js
│   ā”œā”€ā”€ d3-scale-chromatic
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-scale-chromatic.js
│   │   │   └── d3-scale-chromatic.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ categorical
│   │       │   ā”œā”€ā”€ Accent.js
│   │       │   ā”œā”€ā”€ Dark2.js
│   │       │   ā”œā”€ā”€ Paired.js
│   │       │   ā”œā”€ā”€ Pastel1.js
│   │       │   ā”œā”€ā”€ Pastel2.js
│   │       │   ā”œā”€ā”€ Set1.js
│   │       │   ā”œā”€ā”€ Set2.js
│   │       │   ā”œā”€ā”€ Set3.js
│   │       │   ā”œā”€ā”€ Tableau10.js
│   │       │   ā”œā”€ā”€ category10.js
│   │       │   └── observable10.js
│   │       ā”œā”€ā”€ colors.js
│   │       ā”œā”€ā”€ diverging
│   │       │   ā”œā”€ā”€ BrBG.js
│   │       │   ā”œā”€ā”€ PRGn.js
│   │       │   ā”œā”€ā”€ PiYG.js
│   │       │   ā”œā”€ā”€ PuOr.js
│   │       │   ā”œā”€ā”€ RdBu.js
│   │       │   ā”œā”€ā”€ RdGy.js
│   │       │   ā”œā”€ā”€ RdYlBu.js
│   │       │   ā”œā”€ā”€ RdYlGn.js
│   │       │   └── Spectral.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ ramp.js
│   │       ā”œā”€ā”€ rampClosed.js
│   │       ā”œā”€ā”€ sequential-multi
│   │       │   ā”œā”€ā”€ BuGn.js
│   │       │   ā”œā”€ā”€ BuPu.js
│   │       │   ā”œā”€ā”€ GnBu.js
│   │       │   ā”œā”€ā”€ OrRd.js
│   │       │   ā”œā”€ā”€ PuBu.js
│   │       │   ā”œā”€ā”€ PuBuGn.js
│   │       │   ā”œā”€ā”€ PuRd.js
│   │       │   ā”œā”€ā”€ RdPu.js
│   │       │   ā”œā”€ā”€ YlGn.js
│   │       │   ā”œā”€ā”€ YlGnBu.js
│   │       │   ā”œā”€ā”€ YlOrBr.js
│   │       │   ā”œā”€ā”€ YlOrRd.js
│   │       │   ā”œā”€ā”€ cividis.js
│   │       │   ā”œā”€ā”€ cubehelix.js
│   │       │   ā”œā”€ā”€ rainbow.js
│   │       │   ā”œā”€ā”€ sinebow.js
│   │       │   ā”œā”€ā”€ turbo.js
│   │       │   └── viridis.js
│   │       └── sequential-single
│   │           ā”œā”€ā”€ Blues.js
│   │           ā”œā”€ā”€ Greens.js
│   │           ā”œā”€ā”€ Greys.js
│   │           ā”œā”€ā”€ Oranges.js
│   │           ā”œā”€ā”€ Purples.js
│   │           └── Reds.js
│   ā”œā”€ā”€ d3-selection
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-selection.js
│   │   │   └── d3-selection.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ array.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ create.js
│   │       ā”œā”€ā”€ creator.js
│   │       ā”œā”€ā”€ identity.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ local.js
│   │       ā”œā”€ā”€ matcher.js
│   │       ā”œā”€ā”€ namespace.js
│   │       ā”œā”€ā”€ namespaces.js
│   │       ā”œā”€ā”€ pointer.js
│   │       ā”œā”€ā”€ pointers.js
│   │       ā”œā”€ā”€ select.js
│   │       ā”œā”€ā”€ selectAll.js
│   │       ā”œā”€ā”€ selection
│   │       │   ā”œā”€ā”€ append.js
│   │       │   ā”œā”€ā”€ attr.js
│   │       │   ā”œā”€ā”€ call.js
│   │       │   ā”œā”€ā”€ classed.js
│   │       │   ā”œā”€ā”€ clone.js
│   │       │   ā”œā”€ā”€ data.js
│   │       │   ā”œā”€ā”€ datum.js
│   │       │   ā”œā”€ā”€ dispatch.js
│   │       │   ā”œā”€ā”€ each.js
│   │       │   ā”œā”€ā”€ empty.js
│   │       │   ā”œā”€ā”€ enter.js
│   │       │   ā”œā”€ā”€ exit.js
│   │       │   ā”œā”€ā”€ filter.js
│   │       │   ā”œā”€ā”€ html.js
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ insert.js
│   │       │   ā”œā”€ā”€ iterator.js
│   │       │   ā”œā”€ā”€ join.js
│   │       │   ā”œā”€ā”€ lower.js
│   │       │   ā”œā”€ā”€ merge.js
│   │       │   ā”œā”€ā”€ node.js
│   │       │   ā”œā”€ā”€ nodes.js
│   │       │   ā”œā”€ā”€ on.js
│   │       │   ā”œā”€ā”€ order.js
│   │       │   ā”œā”€ā”€ property.js
│   │       │   ā”œā”€ā”€ raise.js
│   │       │   ā”œā”€ā”€ remove.js
│   │       │   ā”œā”€ā”€ select.js
│   │       │   ā”œā”€ā”€ selectAll.js
│   │       │   ā”œā”€ā”€ selectChild.js
│   │       │   ā”œā”€ā”€ selectChildren.js
│   │       │   ā”œā”€ā”€ size.js
│   │       │   ā”œā”€ā”€ sort.js
│   │       │   ā”œā”€ā”€ sparse.js
│   │       │   ā”œā”€ā”€ style.js
│   │       │   └── text.js
│   │       ā”œā”€ā”€ selector.js
│   │       ā”œā”€ā”€ selectorAll.js
│   │       ā”œā”€ā”€ sourceEvent.js
│   │       └── window.js
│   ā”œā”€ā”€ d3-shape
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-shape.js
│   │   │   └── d3-shape.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ arc.js
│   │       ā”œā”€ā”€ area.js
│   │       ā”œā”€ā”€ areaRadial.js
│   │       ā”œā”€ā”€ array.js
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ curve
│   │       │   ā”œā”€ā”€ basis.js
│   │       │   ā”œā”€ā”€ basisClosed.js
│   │       │   ā”œā”€ā”€ basisOpen.js
│   │       │   ā”œā”€ā”€ bump.js
│   │       │   ā”œā”€ā”€ bundle.js
│   │       │   ā”œā”€ā”€ cardinal.js
│   │       │   ā”œā”€ā”€ cardinalClosed.js
│   │       │   ā”œā”€ā”€ cardinalOpen.js
│   │       │   ā”œā”€ā”€ catmullRom.js
│   │       │   ā”œā”€ā”€ catmullRomClosed.js
│   │       │   ā”œā”€ā”€ catmullRomOpen.js
│   │       │   ā”œā”€ā”€ linear.js
│   │       │   ā”œā”€ā”€ linearClosed.js
│   │       │   ā”œā”€ā”€ monotone.js
│   │       │   ā”œā”€ā”€ natural.js
│   │       │   ā”œā”€ā”€ radial.js
│   │       │   └── step.js
│   │       ā”œā”€ā”€ descending.js
│   │       ā”œā”€ā”€ identity.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ line.js
│   │       ā”œā”€ā”€ lineRadial.js
│   │       ā”œā”€ā”€ link.js
│   │       ā”œā”€ā”€ math.js
│   │       ā”œā”€ā”€ noop.js
│   │       ā”œā”€ā”€ offset
│   │       │   ā”œā”€ā”€ diverging.js
│   │       │   ā”œā”€ā”€ expand.js
│   │       │   ā”œā”€ā”€ none.js
│   │       │   ā”œā”€ā”€ silhouette.js
│   │       │   └── wiggle.js
│   │       ā”œā”€ā”€ order
│   │       │   ā”œā”€ā”€ appearance.js
│   │       │   ā”œā”€ā”€ ascending.js
│   │       │   ā”œā”€ā”€ descending.js
│   │       │   ā”œā”€ā”€ insideOut.js
│   │       │   ā”œā”€ā”€ none.js
│   │       │   └── reverse.js
│   │       ā”œā”€ā”€ path.js
│   │       ā”œā”€ā”€ pie.js
│   │       ā”œā”€ā”€ point.js
│   │       ā”œā”€ā”€ pointRadial.js
│   │       ā”œā”€ā”€ stack.js
│   │       ā”œā”€ā”€ symbol
│   │       │   ā”œā”€ā”€ asterisk.js
│   │       │   ā”œā”€ā”€ circle.js
│   │       │   ā”œā”€ā”€ cross.js
│   │       │   ā”œā”€ā”€ diamond.js
│   │       │   ā”œā”€ā”€ diamond2.js
│   │       │   ā”œā”€ā”€ plus.js
│   │       │   ā”œā”€ā”€ square.js
│   │       │   ā”œā”€ā”€ square2.js
│   │       │   ā”œā”€ā”€ star.js
│   │       │   ā”œā”€ā”€ times.js
│   │       │   ā”œā”€ā”€ triangle.js
│   │       │   ā”œā”€ā”€ triangle2.js
│   │       │   └── wye.js
│   │       └── symbol.js
│   ā”œā”€ā”€ d3-time
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-time.js
│   │   │   └── d3-time.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ day.js
│   │       ā”œā”€ā”€ duration.js
│   │       ā”œā”€ā”€ hour.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ interval.js
│   │       ā”œā”€ā”€ millisecond.js
│   │       ā”œā”€ā”€ minute.js
│   │       ā”œā”€ā”€ month.js
│   │       ā”œā”€ā”€ second.js
│   │       ā”œā”€ā”€ ticks.js
│   │       ā”œā”€ā”€ week.js
│   │       └── year.js
│   ā”œā”€ā”€ d3-time-format
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-time-format.js
│   │   │   └── d3-time-format.min.js
│   │   ā”œā”€ā”€ locale
│   │   │   ā”œā”€ā”€ ar-EG.json
│   │   │   ā”œā”€ā”€ ar-SY.json
│   │   │   ā”œā”€ā”€ ca-ES.json
│   │   │   ā”œā”€ā”€ cs-CZ.json
│   │   │   ā”œā”€ā”€ da-DK.json
│   │   │   ā”œā”€ā”€ de-CH.json
│   │   │   ā”œā”€ā”€ de-DE.json
│   │   │   ā”œā”€ā”€ en-CA.json
│   │   │   ā”œā”€ā”€ en-GB.json
│   │   │   ā”œā”€ā”€ en-US.json
│   │   │   ā”œā”€ā”€ es-ES.json
│   │   │   ā”œā”€ā”€ es-MX.json
│   │   │   ā”œā”€ā”€ fa-IR.json
│   │   │   ā”œā”€ā”€ fi-FI.json
│   │   │   ā”œā”€ā”€ fr-CA.json
│   │   │   ā”œā”€ā”€ fr-FR.json
│   │   │   ā”œā”€ā”€ he-IL.json
│   │   │   ā”œā”€ā”€ hr-HR.json
│   │   │   ā”œā”€ā”€ hu-HU.json
│   │   │   ā”œā”€ā”€ it-IT.json
│   │   │   ā”œā”€ā”€ ja-JP.json
│   │   │   ā”œā”€ā”€ ko-KR.json
│   │   │   ā”œā”€ā”€ mk-MK.json
│   │   │   ā”œā”€ā”€ nb-NO.json
│   │   │   ā”œā”€ā”€ nl-BE.json
│   │   │   ā”œā”€ā”€ nl-NL.json
│   │   │   ā”œā”€ā”€ pl-PL.json
│   │   │   ā”œā”€ā”€ pt-BR.json
│   │   │   ā”œā”€ā”€ ru-RU.json
│   │   │   ā”œā”€ā”€ sv-SE.json
│   │   │   ā”œā”€ā”€ tr-TR.json
│   │   │   ā”œā”€ā”€ uk-UA.json
│   │   │   ā”œā”€ā”€ zh-CN.json
│   │   │   └── zh-TW.json
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ defaultLocale.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ isoFormat.js
│   │       ā”œā”€ā”€ isoParse.js
│   │       └── locale.js
│   ā”œā”€ā”€ d3-timer
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-timer.js
│   │   │   └── d3-timer.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ interval.js
│   │       ā”œā”€ā”€ timeout.js
│   │       └── timer.js
│   ā”œā”€ā”€ d3-transition
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-transition.js
│   │   │   └── d3-transition.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ active.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ interrupt.js
│   │       ā”œā”€ā”€ selection
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ interrupt.js
│   │       │   └── transition.js
│   │       └── transition
│   │           ā”œā”€ā”€ attr.js
│   │           ā”œā”€ā”€ attrTween.js
│   │           ā”œā”€ā”€ delay.js
│   │           ā”œā”€ā”€ duration.js
│   │           ā”œā”€ā”€ ease.js
│   │           ā”œā”€ā”€ easeVarying.js
│   │           ā”œā”€ā”€ end.js
│   │           ā”œā”€ā”€ filter.js
│   │           ā”œā”€ā”€ index.js
│   │           ā”œā”€ā”€ interpolate.js
│   │           ā”œā”€ā”€ merge.js
│   │           ā”œā”€ā”€ on.js
│   │           ā”œā”€ā”€ remove.js
│   │           ā”œā”€ā”€ schedule.js
│   │           ā”œā”€ā”€ select.js
│   │           ā”œā”€ā”€ selectAll.js
│   │           ā”œā”€ā”€ selection.js
│   │           ā”œā”€ā”€ style.js
│   │           ā”œā”€ā”€ styleTween.js
│   │           ā”œā”€ā”€ text.js
│   │           ā”œā”€ā”€ textTween.js
│   │           ā”œā”€ā”€ transition.js
│   │           └── tween.js
│   ā”œā”€ā”€ d3-zoom
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ d3-zoom.js
│   │   │   └── d3-zoom.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ constant.js
│   │       ā”œā”€ā”€ event.js
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ noevent.js
│   │       ā”œā”€ā”€ transform.js
│   │       └── zoom.js
│   ā”œā”€ā”€ dagre-d3-es
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ dagre
│   │       │   ā”œā”€ā”€ acyclic.d.ts
│   │       │   ā”œā”€ā”€ acyclic.js
│   │       │   ā”œā”€ā”€ add-border-segments.d.ts
│   │       │   ā”œā”€ā”€ add-border-segments.js
│   │       │   ā”œā”€ā”€ coordinate-system.d.ts
│   │       │   ā”œā”€ā”€ coordinate-system.js
│   │       │   ā”œā”€ā”€ data
│   │       │   │   ā”œā”€ā”€ list.d.ts
│   │       │   │   └── list.js
│   │       │   ā”œā”€ā”€ debug.d.ts
│   │       │   ā”œā”€ā”€ debug.js
│   │       │   ā”œā”€ā”€ greedy-fas.d.ts
│   │       │   ā”œā”€ā”€ greedy-fas.js
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ layout.d.ts
│   │       │   ā”œā”€ā”€ layout.js
│   │       │   ā”œā”€ā”€ nesting-graph.d.ts
│   │       │   ā”œā”€ā”€ nesting-graph.js
│   │       │   ā”œā”€ā”€ normalize.d.ts
│   │       │   ā”œā”€ā”€ normalize.js
│   │       │   ā”œā”€ā”€ order
│   │       │   │   ā”œā”€ā”€ add-subgraph-constraints.d.ts
│   │       │   │   ā”œā”€ā”€ add-subgraph-constraints.js
│   │       │   │   ā”œā”€ā”€ barycenter.d.ts
│   │       │   │   ā”œā”€ā”€ barycenter.js
│   │       │   │   ā”œā”€ā”€ build-layer-graph.d.ts
│   │       │   │   ā”œā”€ā”€ build-layer-graph.js
│   │       │   │   ā”œā”€ā”€ cross-count.d.ts
│   │       │   │   ā”œā”€ā”€ cross-count.js
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ init-order.d.ts
│   │       │   │   ā”œā”€ā”€ init-order.js
│   │       │   │   ā”œā”€ā”€ resolve-conflicts.d.ts
│   │       │   │   ā”œā”€ā”€ resolve-conflicts.js
│   │       │   │   ā”œā”€ā”€ sort-subgraph.d.ts
│   │       │   │   ā”œā”€ā”€ sort-subgraph.js
│   │       │   │   ā”œā”€ā”€ sort.d.ts
│   │       │   │   └── sort.js
│   │       │   ā”œā”€ā”€ parent-dummy-chains.d.ts
│   │       │   ā”œā”€ā”€ parent-dummy-chains.js
│   │       │   ā”œā”€ā”€ position
│   │       │   │   ā”œā”€ā”€ bk.d.ts
│   │       │   │   ā”œā”€ā”€ bk.js
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   └── index.js
│   │       │   ā”œā”€ā”€ rank
│   │       │   │   ā”œā”€ā”€ feasible-tree.d.ts
│   │       │   │   ā”œā”€ā”€ feasible-tree.js
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ network-simplex.d.ts
│   │       │   │   ā”œā”€ā”€ network-simplex.js
│   │       │   │   ā”œā”€ā”€ util.d.ts
│   │       │   │   └── util.js
│   │       │   ā”œā”€ā”€ util.d.ts
│   │       │   └── util.js
│   │       ā”œā”€ā”€ dagre-js
│   │       │   ā”œā”€ā”€ arrows.d.ts
│   │       │   ā”œā”€ā”€ arrows.js
│   │       │   ā”œā”€ā”€ create-clusters.d.ts
│   │       │   ā”œā”€ā”€ create-clusters.js
│   │       │   ā”œā”€ā”€ create-edge-labels.d.ts
│   │       │   ā”œā”€ā”€ create-edge-labels.js
│   │       │   ā”œā”€ā”€ create-edge-paths.d.ts
│   │       │   ā”œā”€ā”€ create-edge-paths.js
│   │       │   ā”œā”€ā”€ create-nodes.d.ts
│   │       │   ā”œā”€ā”€ create-nodes.js
│   │       │   ā”œā”€ā”€ intersect
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ intersect-circle.d.ts
│   │       │   │   ā”œā”€ā”€ intersect-circle.js
│   │       │   │   ā”œā”€ā”€ intersect-ellipse.d.ts
│   │       │   │   ā”œā”€ā”€ intersect-ellipse.js
│   │       │   │   ā”œā”€ā”€ intersect-line.d.ts
│   │       │   │   ā”œā”€ā”€ intersect-line.js
│   │       │   │   ā”œā”€ā”€ intersect-node.d.ts
│   │       │   │   ā”œā”€ā”€ intersect-node.js
│   │       │   │   ā”œā”€ā”€ intersect-polygon.d.ts
│   │       │   │   ā”œā”€ā”€ intersect-polygon.js
│   │       │   │   ā”œā”€ā”€ intersect-rect.d.ts
│   │       │   │   └── intersect-rect.js
│   │       │   ā”œā”€ā”€ label
│   │       │   │   ā”œā”€ā”€ add-html-label.d.ts
│   │       │   │   ā”œā”€ā”€ add-html-label.js
│   │       │   │   ā”œā”€ā”€ add-label.d.ts
│   │       │   │   ā”œā”€ā”€ add-label.js
│   │       │   │   ā”œā”€ā”€ add-svg-label.d.ts
│   │       │   │   ā”œā”€ā”€ add-svg-label.js
│   │       │   │   ā”œā”€ā”€ add-text-label.d.ts
│   │       │   │   └── add-text-label.js
│   │       │   ā”œā”€ā”€ position-clusters.d.ts
│   │       │   ā”œā”€ā”€ position-clusters.js
│   │       │   ā”œā”€ā”€ position-edge-labels.d.ts
│   │       │   ā”œā”€ā”€ position-edge-labels.js
│   │       │   ā”œā”€ā”€ position-nodes.d.ts
│   │       │   ā”œā”€ā”€ position-nodes.js
│   │       │   ā”œā”€ā”€ render.d.ts
│   │       │   ā”œā”€ā”€ render.js
│   │       │   ā”œā”€ā”€ shapes.d.ts
│   │       │   ā”œā”€ā”€ shapes.js
│   │       │   ā”œā”€ā”€ util.d.ts
│   │       │   └── util.js
│   │       ā”œā”€ā”€ graphlib
│   │       │   ā”œā”€ā”€ alg
│   │       │   │   ā”œā”€ā”€ components.d.ts
│   │       │   │   ā”œā”€ā”€ components.js
│   │       │   │   ā”œā”€ā”€ dfs.d.ts
│   │       │   │   ā”œā”€ā”€ dfs.js
│   │       │   │   ā”œā”€ā”€ dijkstra-all.d.ts
│   │       │   │   ā”œā”€ā”€ dijkstra-all.js
│   │       │   │   ā”œā”€ā”€ dijkstra.d.ts
│   │       │   │   ā”œā”€ā”€ dijkstra.js
│   │       │   │   ā”œā”€ā”€ find-cycles.d.ts
│   │       │   │   ā”œā”€ā”€ find-cycles.js
│   │       │   │   ā”œā”€ā”€ floyd-warshall.d.ts
│   │       │   │   ā”œā”€ā”€ floyd-warshall.js
│   │       │   │   ā”œā”€ā”€ index.d.ts
│   │       │   │   ā”œā”€ā”€ index.js
│   │       │   │   ā”œā”€ā”€ is-acyclic.d.ts
│   │       │   │   ā”œā”€ā”€ is-acyclic.js
│   │       │   │   ā”œā”€ā”€ postorder.d.ts
│   │       │   │   ā”œā”€ā”€ postorder.js
│   │       │   │   ā”œā”€ā”€ preorder.d.ts
│   │       │   │   ā”œā”€ā”€ preorder.js
│   │       │   │   ā”œā”€ā”€ prim.d.ts
│   │       │   │   ā”œā”€ā”€ prim.js
│   │       │   │   ā”œā”€ā”€ tarjan.d.ts
│   │       │   │   ā”œā”€ā”€ tarjan.js
│   │       │   │   ā”œā”€ā”€ topsort.d.ts
│   │       │   │   └── topsort.js
│   │       │   ā”œā”€ā”€ data
│   │       │   │   ā”œā”€ā”€ priority-queue.d.ts
│   │       │   │   └── priority-queue.js
│   │       │   ā”œā”€ā”€ graph.d.ts
│   │       │   ā”œā”€ā”€ graph.js
│   │       │   ā”œā”€ā”€ index.d.ts
│   │       │   ā”œā”€ā”€ index.js
│   │       │   ā”œā”€ā”€ json.d.ts
│   │       │   └── json.js
│   │       ā”œā”€ā”€ index.d.ts
│   │       └── index.js
│   ā”œā”€ā”€ dayjs
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dayjs.min.js
│   │   ā”œā”€ā”€ esm
│   │   │   ā”œā”€ā”€ constant.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ locale
│   │   │   │   ā”œā”€ā”€ af.js
│   │   │   │   ā”œā”€ā”€ am.js
│   │   │   │   ā”œā”€ā”€ ar-dz.js
│   │   │   │   ā”œā”€ā”€ ar-iq.js
│   │   │   │   ā”œā”€ā”€ ar-kw.js
│   │   │   │   ā”œā”€ā”€ ar-ly.js
│   │   │   │   ā”œā”€ā”€ ar-ma.js
│   │   │   │   ā”œā”€ā”€ ar-sa.js
│   │   │   │   ā”œā”€ā”€ ar-tn.js
│   │   │   │   ā”œā”€ā”€ ar.js
│   │   │   │   ā”œā”€ā”€ az.js
│   │   │   │   ā”œā”€ā”€ be.js
│   │   │   │   ā”œā”€ā”€ bg.js
│   │   │   │   ā”œā”€ā”€ bi.js
│   │   │   │   ā”œā”€ā”€ bm.js
│   │   │   │   ā”œā”€ā”€ bn-bd.js
│   │   │   │   ā”œā”€ā”€ bn.js
│   │   │   │   ā”œā”€ā”€ bo.js
│   │   │   │   ā”œā”€ā”€ br.js
│   │   │   │   ā”œā”€ā”€ bs.js
│   │   │   │   ā”œā”€ā”€ ca.js
│   │   │   │   ā”œā”€ā”€ cs.js
│   │   │   │   ā”œā”€ā”€ cv.js
│   │   │   │   ā”œā”€ā”€ cy.js
│   │   │   │   ā”œā”€ā”€ da.js
│   │   │   │   ā”œā”€ā”€ de-at.js
│   │   │   │   ā”œā”€ā”€ de-ch.js
│   │   │   │   ā”œā”€ā”€ de.js
│   │   │   │   ā”œā”€ā”€ dv.js
│   │   │   │   ā”œā”€ā”€ el.js
│   │   │   │   ā”œā”€ā”€ en-au.js
│   │   │   │   ā”œā”€ā”€ en-ca.js
│   │   │   │   ā”œā”€ā”€ en-gb.js
│   │   │   │   ā”œā”€ā”€ en-ie.js
│   │   │   │   ā”œā”€ā”€ en-il.js
│   │   │   │   ā”œā”€ā”€ en-in.js
│   │   │   │   ā”œā”€ā”€ en-nz.js
│   │   │   │   ā”œā”€ā”€ en-sg.js
│   │   │   │   ā”œā”€ā”€ en-tt.js
│   │   │   │   ā”œā”€ā”€ en.js
│   │   │   │   ā”œā”€ā”€ eo.js
│   │   │   │   ā”œā”€ā”€ es-do.js
│   │   │   │   ā”œā”€ā”€ es-mx.js
│   │   │   │   ā”œā”€ā”€ es-pr.js
│   │   │   │   ā”œā”€ā”€ es-us.js
│   │   │   │   ā”œā”€ā”€ es.js
│   │   │   │   ā”œā”€ā”€ et.js
│   │   │   │   ā”œā”€ā”€ eu.js
│   │   │   │   ā”œā”€ā”€ fa.js
│   │   │   │   ā”œā”€ā”€ fi.js
│   │   │   │   ā”œā”€ā”€ fo.js
│   │   │   │   ā”œā”€ā”€ fr-ca.js
│   │   │   │   ā”œā”€ā”€ fr-ch.js
│   │   │   │   ā”œā”€ā”€ fr.js
│   │   │   │   ā”œā”€ā”€ fy.js
│   │   │   │   ā”œā”€ā”€ ga.js
│   │   │   │   ā”œā”€ā”€ gd.js
│   │   │   │   ā”œā”€ā”€ gl.js
│   │   │   │   ā”œā”€ā”€ gom-latn.js
│   │   │   │   ā”œā”€ā”€ gu.js
│   │   │   │   ā”œā”€ā”€ he.js
│   │   │   │   ā”œā”€ā”€ hi.js
│   │   │   │   ā”œā”€ā”€ hr.js
│   │   │   │   ā”œā”€ā”€ ht.js
│   │   │   │   ā”œā”€ā”€ hu.js
│   │   │   │   ā”œā”€ā”€ hy-am.js
│   │   │   │   ā”œā”€ā”€ id.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ is.js
│   │   │   │   ā”œā”€ā”€ it-ch.js
│   │   │   │   ā”œā”€ā”€ it.js
│   │   │   │   ā”œā”€ā”€ ja.js
│   │   │   │   ā”œā”€ā”€ jv.js
│   │   │   │   ā”œā”€ā”€ ka.js
│   │   │   │   ā”œā”€ā”€ kk.js
│   │   │   │   ā”œā”€ā”€ km.js
│   │   │   │   ā”œā”€ā”€ kn.js
│   │   │   │   ā”œā”€ā”€ ko.js
│   │   │   │   ā”œā”€ā”€ ku.js
│   │   │   │   ā”œā”€ā”€ ky.js
│   │   │   │   ā”œā”€ā”€ lb.js
│   │   │   │   ā”œā”€ā”€ lo.js
│   │   │   │   ā”œā”€ā”€ lt.js
│   │   │   │   ā”œā”€ā”€ lv.js
│   │   │   │   ā”œā”€ā”€ me.js
│   │   │   │   ā”œā”€ā”€ mi.js
│   │   │   │   ā”œā”€ā”€ mk.js
│   │   │   │   ā”œā”€ā”€ ml.js
│   │   │   │   ā”œā”€ā”€ mn.js
│   │   │   │   ā”œā”€ā”€ mr.js
│   │   │   │   ā”œā”€ā”€ ms-my.js
│   │   │   │   ā”œā”€ā”€ ms.js
│   │   │   │   ā”œā”€ā”€ mt.js
│   │   │   │   ā”œā”€ā”€ my.js
│   │   │   │   ā”œā”€ā”€ nb.js
│   │   │   │   ā”œā”€ā”€ ne.js
│   │   │   │   ā”œā”€ā”€ nl-be.js
│   │   │   │   ā”œā”€ā”€ nl.js
│   │   │   │   ā”œā”€ā”€ nn.js
│   │   │   │   ā”œā”€ā”€ oc-lnc.js
│   │   │   │   ā”œā”€ā”€ pa-in.js
│   │   │   │   ā”œā”€ā”€ pl.js
│   │   │   │   ā”œā”€ā”€ pt-br.js
│   │   │   │   ā”œā”€ā”€ pt.js
│   │   │   │   ā”œā”€ā”€ rn.js
│   │   │   │   ā”œā”€ā”€ ro.js
│   │   │   │   ā”œā”€ā”€ ru.js
│   │   │   │   ā”œā”€ā”€ rw.js
│   │   │   │   ā”œā”€ā”€ sd.js
│   │   │   │   ā”œā”€ā”€ se.js
│   │   │   │   ā”œā”€ā”€ si.js
│   │   │   │   ā”œā”€ā”€ sk.js
│   │   │   │   ā”œā”€ā”€ sl.js
│   │   │   │   ā”œā”€ā”€ sq.js
│   │   │   │   ā”œā”€ā”€ sr-cyrl.js
│   │   │   │   ā”œā”€ā”€ sr.js
│   │   │   │   ā”œā”€ā”€ ss.js
│   │   │   │   ā”œā”€ā”€ sv-fi.js
│   │   │   │   ā”œā”€ā”€ sv.js
│   │   │   │   ā”œā”€ā”€ sw.js
│   │   │   │   ā”œā”€ā”€ ta.js
│   │   │   │   ā”œā”€ā”€ te.js
│   │   │   │   ā”œā”€ā”€ tet.js
│   │   │   │   ā”œā”€ā”€ tg.js
│   │   │   │   ā”œā”€ā”€ th.js
│   │   │   │   ā”œā”€ā”€ tk.js
│   │   │   │   ā”œā”€ā”€ tl-ph.js
│   │   │   │   ā”œā”€ā”€ tlh.js
│   │   │   │   ā”œā”€ā”€ tr.js
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   ā”œā”€ā”€ tzl.js
│   │   │   │   ā”œā”€ā”€ tzm-latn.js
│   │   │   │   ā”œā”€ā”€ tzm.js
│   │   │   │   ā”œā”€ā”€ ug-cn.js
│   │   │   │   ā”œā”€ā”€ uk.js
│   │   │   │   ā”œā”€ā”€ ur.js
│   │   │   │   ā”œā”€ā”€ uz-latn.js
│   │   │   │   ā”œā”€ā”€ uz.js
│   │   │   │   ā”œā”€ā”€ vi.js
│   │   │   │   ā”œā”€ā”€ x-pseudo.js
│   │   │   │   ā”œā”€ā”€ yo.js
│   │   │   │   ā”œā”€ā”€ zh-cn.js
│   │   │   │   ā”œā”€ā”€ zh-hk.js
│   │   │   │   ā”œā”€ā”€ zh-tw.js
│   │   │   │   └── zh.js
│   │   │   ā”œā”€ā”€ plugin
│   │   │   │   ā”œā”€ā”€ advancedFormat
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ arraySupport
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ badMutable
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ bigIntSupport
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ buddhistEra
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ calendar
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ customParseFormat
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ dayOfYear
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ devHelper
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ duration
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isBetween
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isLeapYear
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isMoment
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isSameOrAfter
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isSameOrBefore
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isToday
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isTomorrow
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isYesterday
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isoWeek
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ isoWeeksInYear
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ localeData
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ localizedFormat
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   └── utils.js
│   │   │   │   ā”œā”€ā”€ minMax
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ negativeYear
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ objectSupport
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ pluralGetSet
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ preParsePostFormat
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ quarterOfYear
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ relativeTime
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ timezone
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ toArray
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ toObject
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ updateLocale
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ utc
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ weekOfYear
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ weekYear
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   └── weekday
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       └── index.js
│   │   │   └── utils.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ locale
│   │   │   ā”œā”€ā”€ af.js
│   │   │   ā”œā”€ā”€ am.js
│   │   │   ā”œā”€ā”€ ar-dz.js
│   │   │   ā”œā”€ā”€ ar-iq.js
│   │   │   ā”œā”€ā”€ ar-kw.js
│   │   │   ā”œā”€ā”€ ar-ly.js
│   │   │   ā”œā”€ā”€ ar-ma.js
│   │   │   ā”œā”€ā”€ ar-sa.js
│   │   │   ā”œā”€ā”€ ar-tn.js
│   │   │   ā”œā”€ā”€ ar.js
│   │   │   ā”œā”€ā”€ az.js
│   │   │   ā”œā”€ā”€ be.js
│   │   │   ā”œā”€ā”€ bg.js
│   │   │   ā”œā”€ā”€ bi.js
│   │   │   ā”œā”€ā”€ bm.js
│   │   │   ā”œā”€ā”€ bn-bd.js
│   │   │   ā”œā”€ā”€ bn.js
│   │   │   ā”œā”€ā”€ bo.js
│   │   │   ā”œā”€ā”€ br.js
│   │   │   ā”œā”€ā”€ bs.js
│   │   │   ā”œā”€ā”€ ca.js
│   │   │   ā”œā”€ā”€ cs.js
│   │   │   ā”œā”€ā”€ cv.js
│   │   │   ā”œā”€ā”€ cy.js
│   │   │   ā”œā”€ā”€ da.js
│   │   │   ā”œā”€ā”€ de-at.js
│   │   │   ā”œā”€ā”€ de-ch.js
│   │   │   ā”œā”€ā”€ de.js
│   │   │   ā”œā”€ā”€ dv.js
│   │   │   ā”œā”€ā”€ el.js
│   │   │   ā”œā”€ā”€ en-au.js
│   │   │   ā”œā”€ā”€ en-ca.js
│   │   │   ā”œā”€ā”€ en-gb.js
│   │   │   ā”œā”€ā”€ en-ie.js
│   │   │   ā”œā”€ā”€ en-il.js
│   │   │   ā”œā”€ā”€ en-in.js
│   │   │   ā”œā”€ā”€ en-nz.js
│   │   │   ā”œā”€ā”€ en-sg.js
│   │   │   ā”œā”€ā”€ en-tt.js
│   │   │   ā”œā”€ā”€ en.js
│   │   │   ā”œā”€ā”€ eo.js
│   │   │   ā”œā”€ā”€ es-do.js
│   │   │   ā”œā”€ā”€ es-mx.js
│   │   │   ā”œā”€ā”€ es-pr.js
│   │   │   ā”œā”€ā”€ es-us.js
│   │   │   ā”œā”€ā”€ es.js
│   │   │   ā”œā”€ā”€ et.js
│   │   │   ā”œā”€ā”€ eu.js
│   │   │   ā”œā”€ā”€ fa.js
│   │   │   ā”œā”€ā”€ fi.js
│   │   │   ā”œā”€ā”€ fo.js
│   │   │   ā”œā”€ā”€ fr-ca.js
│   │   │   ā”œā”€ā”€ fr-ch.js
│   │   │   ā”œā”€ā”€ fr.js
│   │   │   ā”œā”€ā”€ fy.js
│   │   │   ā”œā”€ā”€ ga.js
│   │   │   ā”œā”€ā”€ gd.js
│   │   │   ā”œā”€ā”€ gl.js
│   │   │   ā”œā”€ā”€ gom-latn.js
│   │   │   ā”œā”€ā”€ gu.js
│   │   │   ā”œā”€ā”€ he.js
│   │   │   ā”œā”€ā”€ hi.js
│   │   │   ā”œā”€ā”€ hr.js
│   │   │   ā”œā”€ā”€ ht.js
│   │   │   ā”œā”€ā”€ hu.js
│   │   │   ā”œā”€ā”€ hy-am.js
│   │   │   ā”œā”€ā”€ id.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ is.js
│   │   │   ā”œā”€ā”€ it-ch.js
│   │   │   ā”œā”€ā”€ it.js
│   │   │   ā”œā”€ā”€ ja.js
│   │   │   ā”œā”€ā”€ jv.js
│   │   │   ā”œā”€ā”€ ka.js
│   │   │   ā”œā”€ā”€ kk.js
│   │   │   ā”œā”€ā”€ km.js
│   │   │   ā”œā”€ā”€ kn.js
│   │   │   ā”œā”€ā”€ ko.js
│   │   │   ā”œā”€ā”€ ku.js
│   │   │   ā”œā”€ā”€ ky.js
│   │   │   ā”œā”€ā”€ lb.js
│   │   │   ā”œā”€ā”€ lo.js
│   │   │   ā”œā”€ā”€ lt.js
│   │   │   ā”œā”€ā”€ lv.js
│   │   │   ā”œā”€ā”€ me.js
│   │   │   ā”œā”€ā”€ mi.js
│   │   │   ā”œā”€ā”€ mk.js
│   │   │   ā”œā”€ā”€ ml.js
│   │   │   ā”œā”€ā”€ mn.js
│   │   │   ā”œā”€ā”€ mr.js
│   │   │   ā”œā”€ā”€ ms-my.js
│   │   │   ā”œā”€ā”€ ms.js
│   │   │   ā”œā”€ā”€ mt.js
│   │   │   ā”œā”€ā”€ my.js
│   │   │   ā”œā”€ā”€ nb.js
│   │   │   ā”œā”€ā”€ ne.js
│   │   │   ā”œā”€ā”€ nl-be.js
│   │   │   ā”œā”€ā”€ nl.js
│   │   │   ā”œā”€ā”€ nn.js
│   │   │   ā”œā”€ā”€ oc-lnc.js
│   │   │   ā”œā”€ā”€ pa-in.js
│   │   │   ā”œā”€ā”€ pl.js
│   │   │   ā”œā”€ā”€ pt-br.js
│   │   │   ā”œā”€ā”€ pt.js
│   │   │   ā”œā”€ā”€ rn.js
│   │   │   ā”œā”€ā”€ ro.js
│   │   │   ā”œā”€ā”€ ru.js
│   │   │   ā”œā”€ā”€ rw.js
│   │   │   ā”œā”€ā”€ sd.js
│   │   │   ā”œā”€ā”€ se.js
│   │   │   ā”œā”€ā”€ si.js
│   │   │   ā”œā”€ā”€ sk.js
│   │   │   ā”œā”€ā”€ sl.js
│   │   │   ā”œā”€ā”€ sq.js
│   │   │   ā”œā”€ā”€ sr-cyrl.js
│   │   │   ā”œā”€ā”€ sr.js
│   │   │   ā”œā”€ā”€ ss.js
│   │   │   ā”œā”€ā”€ sv-fi.js
│   │   │   ā”œā”€ā”€ sv.js
│   │   │   ā”œā”€ā”€ sw.js
│   │   │   ā”œā”€ā”€ ta.js
│   │   │   ā”œā”€ā”€ te.js
│   │   │   ā”œā”€ā”€ tet.js
│   │   │   ā”œā”€ā”€ tg.js
│   │   │   ā”œā”€ā”€ th.js
│   │   │   ā”œā”€ā”€ tk.js
│   │   │   ā”œā”€ā”€ tl-ph.js
│   │   │   ā”œā”€ā”€ tlh.js
│   │   │   ā”œā”€ā”€ tr.js
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   ā”œā”€ā”€ tzl.js
│   │   │   ā”œā”€ā”€ tzm-latn.js
│   │   │   ā”œā”€ā”€ tzm.js
│   │   │   ā”œā”€ā”€ ug-cn.js
│   │   │   ā”œā”€ā”€ uk.js
│   │   │   ā”œā”€ā”€ ur.js
│   │   │   ā”œā”€ā”€ uz-latn.js
│   │   │   ā”œā”€ā”€ uz.js
│   │   │   ā”œā”€ā”€ vi.js
│   │   │   ā”œā”€ā”€ x-pseudo.js
│   │   │   ā”œā”€ā”€ yo.js
│   │   │   ā”œā”€ā”€ zh-cn.js
│   │   │   ā”œā”€ā”€ zh-hk.js
│   │   │   ā”œā”€ā”€ zh-tw.js
│   │   │   └── zh.js
│   │   ā”œā”€ā”€ locale.json
│   │   ā”œā”€ā”€ package.json
│   │   └── plugin
│   │       ā”œā”€ā”€ advancedFormat.d.ts
│   │       ā”œā”€ā”€ advancedFormat.js
│   │       ā”œā”€ā”€ arraySupport.d.ts
│   │       ā”œā”€ā”€ arraySupport.js
│   │       ā”œā”€ā”€ badMutable.d.ts
│   │       ā”œā”€ā”€ badMutable.js
│   │       ā”œā”€ā”€ bigIntSupport.d.ts
│   │       ā”œā”€ā”€ bigIntSupport.js
│   │       ā”œā”€ā”€ buddhistEra.d.ts
│   │       ā”œā”€ā”€ buddhistEra.js
│   │       ā”œā”€ā”€ calendar.d.ts
│   │       ā”œā”€ā”€ calendar.js
│   │       ā”œā”€ā”€ customParseFormat.d.ts
│   │       ā”œā”€ā”€ customParseFormat.js
│   │       ā”œā”€ā”€ dayOfYear.d.ts
│   │       ā”œā”€ā”€ dayOfYear.js
│   │       ā”œā”€ā”€ devHelper.d.ts
│   │       ā”œā”€ā”€ devHelper.js
│   │       ā”œā”€ā”€ duration.d.ts
│   │       ā”œā”€ā”€ duration.js
│   │       ā”œā”€ā”€ isBetween.d.ts
│   │       ā”œā”€ā”€ isBetween.js
│   │       ā”œā”€ā”€ isLeapYear.d.ts
│   │       ā”œā”€ā”€ isLeapYear.js
│   │       ā”œā”€ā”€ isMoment.d.ts
│   │       ā”œā”€ā”€ isMoment.js
│   │       ā”œā”€ā”€ isSameOrAfter.d.ts
│   │       ā”œā”€ā”€ isSameOrAfter.js
│   │       ā”œā”€ā”€ isSameOrBefore.d.ts
│   │       ā”œā”€ā”€ isSameOrBefore.js
│   │       ā”œā”€ā”€ isToday.d.ts
│   │       ā”œā”€ā”€ isToday.js
│   │       ā”œā”€ā”€ isTomorrow.d.ts
│   │       ā”œā”€ā”€ isTomorrow.js
│   │       ā”œā”€ā”€ isYesterday.d.ts
│   │       ā”œā”€ā”€ isYesterday.js
│   │       ā”œā”€ā”€ isoWeek.d.ts
│   │       ā”œā”€ā”€ isoWeek.js
│   │       ā”œā”€ā”€ isoWeeksInYear.d.ts
│   │       ā”œā”€ā”€ isoWeeksInYear.js
│   │       ā”œā”€ā”€ localeData.d.ts
│   │       ā”œā”€ā”€ localeData.js
│   │       ā”œā”€ā”€ localizedFormat.d.ts
│   │       ā”œā”€ā”€ localizedFormat.js
│   │       ā”œā”€ā”€ minMax.d.ts
│   │       ā”œā”€ā”€ minMax.js
│   │       ā”œā”€ā”€ negativeYear.d.ts
│   │       ā”œā”€ā”€ negativeYear.js
│   │       ā”œā”€ā”€ objectSupport.d.ts
│   │       ā”œā”€ā”€ objectSupport.js
│   │       ā”œā”€ā”€ pluralGetSet.d.ts
│   │       ā”œā”€ā”€ pluralGetSet.js
│   │       ā”œā”€ā”€ preParsePostFormat.d.ts
│   │       ā”œā”€ā”€ preParsePostFormat.js
│   │       ā”œā”€ā”€ quarterOfYear.d.ts
│   │       ā”œā”€ā”€ quarterOfYear.js
│   │       ā”œā”€ā”€ relativeTime.d.ts
│   │       ā”œā”€ā”€ relativeTime.js
│   │       ā”œā”€ā”€ timezone.d.ts
│   │       ā”œā”€ā”€ timezone.js
│   │       ā”œā”€ā”€ toArray.d.ts
│   │       ā”œā”€ā”€ toArray.js
│   │       ā”œā”€ā”€ toObject.d.ts
│   │       ā”œā”€ā”€ toObject.js
│   │       ā”œā”€ā”€ updateLocale.d.ts
│   │       ā”œā”€ā”€ updateLocale.js
│   │       ā”œā”€ā”€ utc.d.ts
│   │       ā”œā”€ā”€ utc.js
│   │       ā”œā”€ā”€ weekOfYear.d.ts
│   │       ā”œā”€ā”€ weekOfYear.js
│   │       ā”œā”€ā”€ weekYear.d.ts
│   │       ā”œā”€ā”€ weekYear.js
│   │       ā”œā”€ā”€ weekday.d.ts
│   │       └── weekday.js
│   ā”œā”€ā”€ debug
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ browser.js
│   │       ā”œā”€ā”€ common.js
│   │       ā”œā”€ā”€ index.js
│   │       └── node.js
│   ā”œā”€ā”€ deep-eql
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ deep-is
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.markdown
│   │   ā”œā”€ā”€ example
│   │   │   └── cmp.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ NaN.js
│   │       ā”œā”€ā”€ cmp.js
│   │       └── neg-vs-pos-0.js
│   ā”œā”€ā”€ defu
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ defu.cjs
│   │   │   ā”œā”€ā”€ defu.d.cts
│   │   │   ā”œā”€ā”€ defu.d.mts
│   │   │   ā”œā”€ā”€ defu.d.ts
│   │   │   └── defu.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   └── defu.cjs
│   │   └── package.json
│   ā”œā”€ā”€ degit
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ degit
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ bin.js
│   │   │   ā”œā”€ā”€ bin.js.map
│   │   │   ā”œā”€ā”€ index-688c5d50.js
│   │   │   ā”œā”€ā”€ index-688c5d50.js.map
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.js.map
│   │   ā”œā”€ā”€ help.md
│   │   └── package.json
│   ā”œā”€ā”€ delaunator
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ delaunator.js
│   │   ā”œā”€ā”€ delaunator.min.js
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ delayed-stream
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ License
│   │   ā”œā”€ā”€ Makefile
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ lib
│   │   │   └── delayed_stream.js
│   │   └── package.json
│   ā”œā”€ā”€ depd
│   │   ā”œā”€ā”€ History.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   └── browser
│   │   │       └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ dependency-graph
│   │   ā”œā”€ā”€ .github
│   │   │   └── workflows
│   │   │       └── node.js.yml
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ dep_graph.js
│   │   │   └── index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   └── specs
│   │       └── dep_graph_spec.js
│   ā”œā”€ā”€ detect-libc
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ detect-libc.js
│   │   │   ā”œā”€ā”€ filesystem.js
│   │   │   └── process.js
│   │   └── package.json
│   ā”œā”€ā”€ dom-serializer
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ esm
│   │   │   │   ā”œā”€ā”€ foreignNames.d.ts
│   │   │   │   ā”œā”€ā”€ foreignNames.d.ts.map
│   │   │   │   ā”œā”€ā”€ foreignNames.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── package.json
│   │   │   ā”œā”€ā”€ foreignNames.d.ts
│   │   │   ā”œā”€ā”€ foreignNames.d.ts.map
│   │   │   ā”œā”€ā”€ foreignNames.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   └── index.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── entities
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ decode.d.ts
│   │   │       │   ā”œā”€ā”€ decode.d.ts.map
│   │   │       │   ā”œā”€ā”€ decode.js
│   │   │       │   ā”œā”€ā”€ decode_codepoint.d.ts
│   │   │       │   ā”œā”€ā”€ decode_codepoint.d.ts.map
│   │   │       │   ā”œā”€ā”€ decode_codepoint.js
│   │   │       │   ā”œā”€ā”€ encode.d.ts
│   │   │       │   ā”œā”€ā”€ encode.d.ts.map
│   │   │       │   ā”œā”€ā”€ encode.js
│   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │       │   ā”œā”€ā”€ index.d.ts.map
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   └── maps
│   │   │       │       ā”œā”€ā”€ decode.json
│   │   │       │       ā”œā”€ā”€ entities.json
│   │   │       │       ā”œā”€ā”€ legacy.json
│   │   │       │       └── xml.json
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   └── package.json
│   ā”œā”€ā”€ domelementtype
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ esm
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── package.json
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   └── index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ domhandler
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ node.d.ts
│   │   │   ā”œā”€ā”€ node.d.ts.map
│   │   │   └── node.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ dompurify
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ purify.cjs.d.ts
│   │   │   ā”œā”€ā”€ purify.cjs.js
│   │   │   ā”œā”€ā”€ purify.cjs.js.map
│   │   │   ā”œā”€ā”€ purify.es.d.mts
│   │   │   ā”œā”€ā”€ purify.es.mjs
│   │   │   ā”œā”€ā”€ purify.es.mjs.map
│   │   │   ā”œā”€ā”€ purify.js
│   │   │   ā”œā”€ā”€ purify.js.map
│   │   │   ā”œā”€ā”€ purify.min.js
│   │   │   └── purify.min.js.map
│   │   └── package.json
│   ā”œā”€ā”€ domutils
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ feeds.d.ts
│   │   │   ā”œā”€ā”€ feeds.d.ts.map
│   │   │   ā”œā”€ā”€ feeds.js
│   │   │   ā”œā”€ā”€ helpers.d.ts
│   │   │   ā”œā”€ā”€ helpers.d.ts.map
│   │   │   ā”œā”€ā”€ helpers.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ legacy.d.ts
│   │   │   ā”œā”€ā”€ legacy.d.ts.map
│   │   │   ā”œā”€ā”€ legacy.js
│   │   │   ā”œā”€ā”€ manipulation.d.ts
│   │   │   ā”œā”€ā”€ manipulation.d.ts.map
│   │   │   ā”œā”€ā”€ manipulation.js
│   │   │   ā”œā”€ā”€ querying.d.ts
│   │   │   ā”œā”€ā”€ querying.d.ts.map
│   │   │   ā”œā”€ā”€ querying.js
│   │   │   ā”œā”€ā”€ stringify.d.ts
│   │   │   ā”œā”€ā”€ stringify.d.ts.map
│   │   │   ā”œā”€ā”€ stringify.js
│   │   │   ā”œā”€ā”€ traversal.d.ts
│   │   │   ā”œā”€ā”€ traversal.d.ts.map
│   │   │   └── traversal.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ dotenv
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README-es.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ SECURITY.md
│   │   ā”œā”€ā”€ config.d.ts
│   │   ā”œā”€ā”€ config.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ cli-options.js
│   │   │   ā”œā”€ā”€ env-options.js
│   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   └── main.js
│   │   └── package.json
│   ā”œā”€ā”€ dunder-proto
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ get.d.ts
│   │   ā”œā”€ā”€ get.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ set.d.ts
│   │   ā”œā”€ā”€ set.js
│   │   ā”œā”€ā”€ test
│   │   │   ā”œā”€ā”€ get.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── set.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ duplexer
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENCE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── index.js
│   ā”œā”€ā”€ eastasianwidth
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ eastasianwidth.js
│   │   └── package.json
│   ā”œā”€ā”€ ee-first
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ emoji-regex
│   │   ā”œā”€ā”€ LICENSE-MIT.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ encodeurl
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ entities
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ decode.d.ts
│   │   ā”œā”€ā”€ decode.js
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commonjs
│   │   │   │   ā”œā”€ā”€ decode-codepoint.d.ts
│   │   │   │   ā”œā”€ā”€ decode-codepoint.d.ts.map
│   │   │   │   ā”œā”€ā”€ decode-codepoint.js
│   │   │   │   ā”œā”€ā”€ decode-codepoint.js.map
│   │   │   │   ā”œā”€ā”€ decode.d.ts
│   │   │   │   ā”œā”€ā”€ decode.d.ts.map
│   │   │   │   ā”œā”€ā”€ decode.js
│   │   │   │   ā”œā”€ā”€ decode.js.map
│   │   │   │   ā”œā”€ā”€ encode.d.ts
│   │   │   │   ā”œā”€ā”€ encode.d.ts.map
│   │   │   │   ā”œā”€ā”€ encode.js
│   │   │   │   ā”œā”€ā”€ encode.js.map
│   │   │   │   ā”œā”€ā”€ escape.d.ts
│   │   │   │   ā”œā”€ā”€ escape.d.ts.map
│   │   │   │   ā”œā”€ā”€ escape.js
│   │   │   │   ā”œā”€ā”€ escape.js.map
│   │   │   │   ā”œā”€ā”€ generated
│   │   │   │   │   ā”œā”€ā”€ decode-data-html.d.ts
│   │   │   │   │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ decode-data-html.js
│   │   │   │   │   ā”œā”€ā”€ decode-data-html.js.map
│   │   │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │   │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ decode-data-xml.js
│   │   │   │   │   ā”œā”€ā”€ decode-data-xml.js.map
│   │   │   │   │   ā”œā”€ā”€ encode-html.d.ts
│   │   │   │   │   ā”œā”€ā”€ encode-html.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ encode-html.js
│   │   │   │   │   └── encode-html.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ā”œā”€ā”€ decode-codepoint.d.ts
│   │   │       ā”œā”€ā”€ decode-codepoint.d.ts.map
│   │   │       ā”œā”€ā”€ decode-codepoint.js
│   │   │       ā”œā”€ā”€ decode-codepoint.js.map
│   │   │       ā”œā”€ā”€ decode.d.ts
│   │   │       ā”œā”€ā”€ decode.d.ts.map
│   │   │       ā”œā”€ā”€ decode.js
│   │   │       ā”œā”€ā”€ decode.js.map
│   │   │       ā”œā”€ā”€ encode.d.ts
│   │   │       ā”œā”€ā”€ encode.d.ts.map
│   │   │       ā”œā”€ā”€ encode.js
│   │   │       ā”œā”€ā”€ encode.js.map
│   │   │       ā”œā”€ā”€ escape.d.ts
│   │   │       ā”œā”€ā”€ escape.d.ts.map
│   │   │       ā”œā”€ā”€ escape.js
│   │   │       ā”œā”€ā”€ escape.js.map
│   │   │       ā”œā”€ā”€ generated
│   │   │       │   ā”œā”€ā”€ decode-data-html.d.ts
│   │   │       │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │   │       │   ā”œā”€ā”€ decode-data-html.js
│   │   │       │   ā”œā”€ā”€ decode-data-html.js.map
│   │   │       │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │   │       │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │   │       │   ā”œā”€ā”€ decode-data-xml.js
│   │   │       │   ā”œā”€ā”€ decode-data-xml.js.map
│   │   │       │   ā”œā”€ā”€ encode-html.d.ts
│   │   │       │   ā”œā”€ā”€ encode-html.d.ts.map
│   │   │       │   ā”œā”€ā”€ encode-html.js
│   │   │       │   └── encode-html.js.map
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       └── package.json
│   │   ā”œā”€ā”€ escape.d.ts
│   │   ā”œā”€ā”€ escape.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── src
│   │       ā”œā”€ā”€ decode-codepoint.ts
│   │       ā”œā”€ā”€ decode.spec.ts
│   │       ā”œā”€ā”€ decode.ts
│   │       ā”œā”€ā”€ encode.spec.ts
│   │       ā”œā”€ā”€ encode.ts
│   │       ā”œā”€ā”€ escape.spec.ts
│   │       ā”œā”€ā”€ escape.ts
│   │       ā”œā”€ā”€ generated
│   │       │   ā”œā”€ā”€ .eslintrc.json
│   │       │   ā”œā”€ā”€ decode-data-html.ts
│   │       │   ā”œā”€ā”€ decode-data-xml.ts
│   │       │   └── encode-html.ts
│   │       ā”œā”€ā”€ index.spec.ts
│   │       └── index.ts
│   ā”œā”€ā”€ environment
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ errno
│   │   ā”œā”€ā”€ .jshintrc
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ build.js
│   │   ā”œā”€ā”€ cli.js
│   │   ā”œā”€ā”€ custom.js
│   │   ā”œā”€ā”€ errno.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test.js
│   ā”œā”€ā”€ error-stack-parser-es
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ lite.cjs
│   │   │   ā”œā”€ā”€ lite.d.cts
│   │   │   ā”œā”€ā”€ lite.d.mts
│   │   │   ā”œā”€ā”€ lite.d.ts
│   │   │   └── lite.mjs
│   │   └── package.json
│   ā”œā”€ā”€ es-define-property
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ es-errors
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ eval.d.ts
│   │   ā”œā”€ā”€ eval.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ range.d.ts
│   │   ā”œā”€ā”€ range.js
│   │   ā”œā”€ā”€ ref.d.ts
│   │   ā”œā”€ā”€ ref.js
│   │   ā”œā”€ā”€ syntax.d.ts
│   │   ā”œā”€ā”€ syntax.js
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   ā”œā”€ā”€ tsconfig.json
│   │   ā”œā”€ā”€ type.d.ts
│   │   ā”œā”€ā”€ type.js
│   │   ā”œā”€ā”€ uri.d.ts
│   │   └── uri.js
│   ā”œā”€ā”€ es-module-lexer
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ lexer.asm.js
│   │   │   ā”œā”€ā”€ lexer.cjs
│   │   │   └── lexer.js
│   │   ā”œā”€ā”€ lexer.js
│   │   ā”œā”€ā”€ package.json
│   │   └── types
│   │       └── lexer.d.ts
│   ā”œā”€ā”€ es-object-atoms
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ RequireObjectCoercible.d.ts
│   │   ā”œā”€ā”€ RequireObjectCoercible.js
│   │   ā”œā”€ā”€ ToObject.d.ts
│   │   ā”œā”€ā”€ ToObject.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ isObject.d.ts
│   │   ā”œā”€ā”€ isObject.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ esbuild
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── esbuild
│   │   ā”œā”€ā”€ install.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   └── main.js
│   │   └── package.json
│   ā”œā”€ā”€ escape-html
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ escape-string-regexp
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ eslint
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── eslint.js
│   │   ā”œā”€ā”€ conf
│   │   │   ā”œā”€ā”€ default-cli-options.js
│   │   │   ā”œā”€ā”€ ecma-version.js
│   │   │   ā”œā”€ā”€ globals.js
│   │   │   ā”œā”€ā”€ replacements.json
│   │   │   └── rule-type-list.json
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ api.js
│   │   │   ā”œā”€ā”€ cli-engine
│   │   │   │   ā”œā”€ā”€ cli-engine.js
│   │   │   │   ā”œā”€ā”€ file-enumerator.js
│   │   │   │   ā”œā”€ā”€ formatters
│   │   │   │   │   ā”œā”€ā”€ formatters-meta.json
│   │   │   │   │   ā”œā”€ā”€ html.js
│   │   │   │   │   ā”œā”€ā”€ json-with-metadata.js
│   │   │   │   │   ā”œā”€ā”€ json.js
│   │   │   │   │   └── stylish.js
│   │   │   │   ā”œā”€ā”€ hash.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ lint-result-cache.js
│   │   │   │   └── load-rules.js
│   │   │   ā”œā”€ā”€ cli.js
│   │   │   ā”œā”€ā”€ config
│   │   │   │   ā”œā”€ā”€ config-loader.js
│   │   │   │   ā”œā”€ā”€ config.js
│   │   │   │   ā”œā”€ā”€ default-config.js
│   │   │   │   ā”œā”€ā”€ flat-config-array.js
│   │   │   │   └── flat-config-schema.js
│   │   │   ā”œā”€ā”€ config-api.js
│   │   │   ā”œā”€ā”€ eslint
│   │   │   │   ā”œā”€ā”€ eslint-helpers.js
│   │   │   │   ā”œā”€ā”€ eslint.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── legacy-eslint.js
│   │   │   ā”œā”€ā”€ languages
│   │   │   │   └── js
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ source-code
│   │   │   │       │   ā”œā”€ā”€ index.js
│   │   │   │       │   ā”œā”€ā”€ source-code.js
│   │   │   │       │   └── token-store
│   │   │   │       │       ā”œā”€ā”€ backward-token-comment-cursor.js
│   │   │   │       │       ā”œā”€ā”€ backward-token-cursor.js
│   │   │   │       │       ā”œā”€ā”€ cursor.js
│   │   │   │       │       ā”œā”€ā”€ cursors.js
│   │   │   │       │       ā”œā”€ā”€ decorative-cursor.js
│   │   │   │       │       ā”œā”€ā”€ filter-cursor.js
│   │   │   │       │       ā”œā”€ā”€ forward-token-comment-cursor.js
│   │   │   │       │       ā”œā”€ā”€ forward-token-cursor.js
│   │   │   │       │       ā”œā”€ā”€ index.js
│   │   │   │       │       ā”œā”€ā”€ limit-cursor.js
│   │   │   │       │       ā”œā”€ā”€ padded-token-cursor.js
│   │   │   │       │       ā”œā”€ā”€ skip-cursor.js
│   │   │   │       │       └── utils.js
│   │   │   │       └── validate-language-options.js
│   │   │   ā”œā”€ā”€ linter
│   │   │   │   ā”œā”€ā”€ apply-disable-directives.js
│   │   │   │   ā”œā”€ā”€ code-path-analysis
│   │   │   │   │   ā”œā”€ā”€ code-path-analyzer.js
│   │   │   │   │   ā”œā”€ā”€ code-path-segment.js
│   │   │   │   │   ā”œā”€ā”€ code-path-state.js
│   │   │   │   │   ā”œā”€ā”€ code-path.js
│   │   │   │   │   ā”œā”€ā”€ debug-helpers.js
│   │   │   │   │   ā”œā”€ā”€ fork-context.js
│   │   │   │   │   └── id-generator.js
│   │   │   │   ā”œā”€ā”€ esquery.js
│   │   │   │   ā”œā”€ā”€ file-context.js
│   │   │   │   ā”œā”€ā”€ file-report.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ interpolate.js
│   │   │   │   ā”œā”€ā”€ linter.js
│   │   │   │   ā”œā”€ā”€ rule-fixer.js
│   │   │   │   ā”œā”€ā”€ rules.js
│   │   │   │   ā”œā”€ā”€ source-code-fixer.js
│   │   │   │   ā”œā”€ā”€ source-code-traverser.js
│   │   │   │   ā”œā”€ā”€ source-code-visitor.js
│   │   │   │   ā”œā”€ā”€ timing.js
│   │   │   │   └── vfile.js
│   │   │   ā”œā”€ā”€ options.js
│   │   │   ā”œā”€ā”€ rule-tester
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── rule-tester.js
│   │   │   ā”œā”€ā”€ rules
│   │   │   │   ā”œā”€ā”€ accessor-pairs.js
│   │   │   │   ā”œā”€ā”€ array-bracket-newline.js
│   │   │   │   ā”œā”€ā”€ array-bracket-spacing.js
│   │   │   │   ā”œā”€ā”€ array-callback-return.js
│   │   │   │   ā”œā”€ā”€ array-element-newline.js
│   │   │   │   ā”œā”€ā”€ arrow-body-style.js
│   │   │   │   ā”œā”€ā”€ arrow-parens.js
│   │   │   │   ā”œā”€ā”€ arrow-spacing.js
│   │   │   │   ā”œā”€ā”€ block-scoped-var.js
│   │   │   │   ā”œā”€ā”€ block-spacing.js
│   │   │   │   ā”œā”€ā”€ brace-style.js
│   │   │   │   ā”œā”€ā”€ callback-return.js
│   │   │   │   ā”œā”€ā”€ camelcase.js
│   │   │   │   ā”œā”€ā”€ capitalized-comments.js
│   │   │   │   ā”œā”€ā”€ class-methods-use-this.js
│   │   │   │   ā”œā”€ā”€ comma-dangle.js
│   │   │   │   ā”œā”€ā”€ comma-spacing.js
│   │   │   │   ā”œā”€ā”€ comma-style.js
│   │   │   │   ā”œā”€ā”€ complexity.js
│   │   │   │   ā”œā”€ā”€ computed-property-spacing.js
│   │   │   │   ā”œā”€ā”€ consistent-return.js
│   │   │   │   ā”œā”€ā”€ consistent-this.js
│   │   │   │   ā”œā”€ā”€ constructor-super.js
│   │   │   │   ā”œā”€ā”€ curly.js
│   │   │   │   ā”œā”€ā”€ default-case-last.js
│   │   │   │   ā”œā”€ā”€ default-case.js
│   │   │   │   ā”œā”€ā”€ default-param-last.js
│   │   │   │   ā”œā”€ā”€ dot-location.js
│   │   │   │   ā”œā”€ā”€ dot-notation.js
│   │   │   │   ā”œā”€ā”€ eol-last.js
│   │   │   │   ā”œā”€ā”€ eqeqeq.js
│   │   │   │   ā”œā”€ā”€ for-direction.js
│   │   │   │   ā”œā”€ā”€ func-call-spacing.js
│   │   │   │   ā”œā”€ā”€ func-name-matching.js
│   │   │   │   ā”œā”€ā”€ func-names.js
│   │   │   │   ā”œā”€ā”€ func-style.js
│   │   │   │   ā”œā”€ā”€ function-call-argument-newline.js
│   │   │   │   ā”œā”€ā”€ function-paren-newline.js
│   │   │   │   ā”œā”€ā”€ generator-star-spacing.js
│   │   │   │   ā”œā”€ā”€ getter-return.js
│   │   │   │   ā”œā”€ā”€ global-require.js
│   │   │   │   ā”œā”€ā”€ grouped-accessor-pairs.js
│   │   │   │   ā”œā”€ā”€ guard-for-in.js
│   │   │   │   ā”œā”€ā”€ handle-callback-err.js
│   │   │   │   ā”œā”€ā”€ id-blacklist.js
│   │   │   │   ā”œā”€ā”€ id-denylist.js
│   │   │   │   ā”œā”€ā”€ id-length.js
│   │   │   │   ā”œā”€ā”€ id-match.js
│   │   │   │   ā”œā”€ā”€ implicit-arrow-linebreak.js
│   │   │   │   ā”œā”€ā”€ indent-legacy.js
│   │   │   │   ā”œā”€ā”€ indent.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ init-declarations.js
│   │   │   │   ā”œā”€ā”€ jsx-quotes.js
│   │   │   │   ā”œā”€ā”€ key-spacing.js
│   │   │   │   ā”œā”€ā”€ keyword-spacing.js
│   │   │   │   ā”œā”€ā”€ line-comment-position.js
│   │   │   │   ā”œā”€ā”€ linebreak-style.js
│   │   │   │   ā”œā”€ā”€ lines-around-comment.js
│   │   │   │   ā”œā”€ā”€ lines-around-directive.js
│   │   │   │   ā”œā”€ā”€ lines-between-class-members.js
│   │   │   │   ā”œā”€ā”€ logical-assignment-operators.js
│   │   │   │   ā”œā”€ā”€ max-classes-per-file.js
│   │   │   │   ā”œā”€ā”€ max-depth.js
│   │   │   │   ā”œā”€ā”€ max-len.js
│   │   │   │   ā”œā”€ā”€ max-lines-per-function.js
│   │   │   │   ā”œā”€ā”€ max-lines.js
│   │   │   │   ā”œā”€ā”€ max-nested-callbacks.js
│   │   │   │   ā”œā”€ā”€ max-params.js
│   │   │   │   ā”œā”€ā”€ max-statements-per-line.js
│   │   │   │   ā”œā”€ā”€ max-statements.js
│   │   │   │   ā”œā”€ā”€ multiline-comment-style.js
│   │   │   │   ā”œā”€ā”€ multiline-ternary.js
│   │   │   │   ā”œā”€ā”€ new-cap.js
│   │   │   │   ā”œā”€ā”€ new-parens.js
│   │   │   │   ā”œā”€ā”€ newline-after-var.js
│   │   │   │   ā”œā”€ā”€ newline-before-return.js
│   │   │   │   ā”œā”€ā”€ newline-per-chained-call.js
│   │   │   │   ā”œā”€ā”€ no-alert.js
│   │   │   │   ā”œā”€ā”€ no-array-constructor.js
│   │   │   │   ā”œā”€ā”€ no-async-promise-executor.js
│   │   │   │   ā”œā”€ā”€ no-await-in-loop.js
│   │   │   │   ā”œā”€ā”€ no-bitwise.js
│   │   │   │   ā”œā”€ā”€ no-buffer-constructor.js
│   │   │   │   ā”œā”€ā”€ no-caller.js
│   │   │   │   ā”œā”€ā”€ no-case-declarations.js
│   │   │   │   ā”œā”€ā”€ no-catch-shadow.js
│   │   │   │   ā”œā”€ā”€ no-class-assign.js
│   │   │   │   ā”œā”€ā”€ no-compare-neg-zero.js
│   │   │   │   ā”œā”€ā”€ no-cond-assign.js
│   │   │   │   ā”œā”€ā”€ no-confusing-arrow.js
│   │   │   │   ā”œā”€ā”€ no-console.js
│   │   │   │   ā”œā”€ā”€ no-const-assign.js
│   │   │   │   ā”œā”€ā”€ no-constant-binary-expression.js
│   │   │   │   ā”œā”€ā”€ no-constant-condition.js
│   │   │   │   ā”œā”€ā”€ no-constructor-return.js
│   │   │   │   ā”œā”€ā”€ no-continue.js
│   │   │   │   ā”œā”€ā”€ no-control-regex.js
│   │   │   │   ā”œā”€ā”€ no-debugger.js
│   │   │   │   ā”œā”€ā”€ no-delete-var.js
│   │   │   │   ā”œā”€ā”€ no-div-regex.js
│   │   │   │   ā”œā”€ā”€ no-dupe-args.js
│   │   │   │   ā”œā”€ā”€ no-dupe-class-members.js
│   │   │   │   ā”œā”€ā”€ no-dupe-else-if.js
│   │   │   │   ā”œā”€ā”€ no-dupe-keys.js
│   │   │   │   ā”œā”€ā”€ no-duplicate-case.js
│   │   │   │   ā”œā”€ā”€ no-duplicate-imports.js
│   │   │   │   ā”œā”€ā”€ no-else-return.js
│   │   │   │   ā”œā”€ā”€ no-empty-character-class.js
│   │   │   │   ā”œā”€ā”€ no-empty-function.js
│   │   │   │   ā”œā”€ā”€ no-empty-pattern.js
│   │   │   │   ā”œā”€ā”€ no-empty-static-block.js
│   │   │   │   ā”œā”€ā”€ no-empty.js
│   │   │   │   ā”œā”€ā”€ no-eq-null.js
│   │   │   │   ā”œā”€ā”€ no-eval.js
│   │   │   │   ā”œā”€ā”€ no-ex-assign.js
│   │   │   │   ā”œā”€ā”€ no-extend-native.js
│   │   │   │   ā”œā”€ā”€ no-extra-bind.js
│   │   │   │   ā”œā”€ā”€ no-extra-boolean-cast.js
│   │   │   │   ā”œā”€ā”€ no-extra-label.js
│   │   │   │   ā”œā”€ā”€ no-extra-parens.js
│   │   │   │   ā”œā”€ā”€ no-extra-semi.js
│   │   │   │   ā”œā”€ā”€ no-fallthrough.js
│   │   │   │   ā”œā”€ā”€ no-floating-decimal.js
│   │   │   │   ā”œā”€ā”€ no-func-assign.js
│   │   │   │   ā”œā”€ā”€ no-global-assign.js
│   │   │   │   ā”œā”€ā”€ no-implicit-coercion.js
│   │   │   │   ā”œā”€ā”€ no-implicit-globals.js
│   │   │   │   ā”œā”€ā”€ no-implied-eval.js
│   │   │   │   ā”œā”€ā”€ no-import-assign.js
│   │   │   │   ā”œā”€ā”€ no-inline-comments.js
│   │   │   │   ā”œā”€ā”€ no-inner-declarations.js
│   │   │   │   ā”œā”€ā”€ no-invalid-regexp.js
│   │   │   │   ā”œā”€ā”€ no-invalid-this.js
│   │   │   │   ā”œā”€ā”€ no-irregular-whitespace.js
│   │   │   │   ā”œā”€ā”€ no-iterator.js
│   │   │   │   ā”œā”€ā”€ no-label-var.js
│   │   │   │   ā”œā”€ā”€ no-labels.js
│   │   │   │   ā”œā”€ā”€ no-lone-blocks.js
│   │   │   │   ā”œā”€ā”€ no-lonely-if.js
│   │   │   │   ā”œā”€ā”€ no-loop-func.js
│   │   │   │   ā”œā”€ā”€ no-loss-of-precision.js
│   │   │   │   ā”œā”€ā”€ no-magic-numbers.js
│   │   │   │   ā”œā”€ā”€ no-misleading-character-class.js
│   │   │   │   ā”œā”€ā”€ no-mixed-operators.js
│   │   │   │   ā”œā”€ā”€ no-mixed-requires.js
│   │   │   │   ā”œā”€ā”€ no-mixed-spaces-and-tabs.js
│   │   │   │   ā”œā”€ā”€ no-multi-assign.js
│   │   │   │   ā”œā”€ā”€ no-multi-spaces.js
│   │   │   │   ā”œā”€ā”€ no-multi-str.js
│   │   │   │   ā”œā”€ā”€ no-multiple-empty-lines.js
│   │   │   │   ā”œā”€ā”€ no-native-reassign.js
│   │   │   │   ā”œā”€ā”€ no-negated-condition.js
│   │   │   │   ā”œā”€ā”€ no-negated-in-lhs.js
│   │   │   │   ā”œā”€ā”€ no-nested-ternary.js
│   │   │   │   ā”œā”€ā”€ no-new-func.js
│   │   │   │   ā”œā”€ā”€ no-new-native-nonconstructor.js
│   │   │   │   ā”œā”€ā”€ no-new-object.js
│   │   │   │   ā”œā”€ā”€ no-new-require.js
│   │   │   │   ā”œā”€ā”€ no-new-symbol.js
│   │   │   │   ā”œā”€ā”€ no-new-wrappers.js
│   │   │   │   ā”œā”€ā”€ no-new.js
│   │   │   │   ā”œā”€ā”€ no-nonoctal-decimal-escape.js
│   │   │   │   ā”œā”€ā”€ no-obj-calls.js
│   │   │   │   ā”œā”€ā”€ no-object-constructor.js
│   │   │   │   ā”œā”€ā”€ no-octal-escape.js
│   │   │   │   ā”œā”€ā”€ no-octal.js
│   │   │   │   ā”œā”€ā”€ no-param-reassign.js
│   │   │   │   ā”œā”€ā”€ no-path-concat.js
│   │   │   │   ā”œā”€ā”€ no-plusplus.js
│   │   │   │   ā”œā”€ā”€ no-process-env.js
│   │   │   │   ā”œā”€ā”€ no-process-exit.js
│   │   │   │   ā”œā”€ā”€ no-promise-executor-return.js
│   │   │   │   ā”œā”€ā”€ no-proto.js
│   │   │   │   ā”œā”€ā”€ no-prototype-builtins.js
│   │   │   │   ā”œā”€ā”€ no-redeclare.js
│   │   │   │   ā”œā”€ā”€ no-regex-spaces.js
│   │   │   │   ā”œā”€ā”€ no-restricted-exports.js
│   │   │   │   ā”œā”€ā”€ no-restricted-globals.js
│   │   │   │   ā”œā”€ā”€ no-restricted-imports.js
│   │   │   │   ā”œā”€ā”€ no-restricted-modules.js
│   │   │   │   ā”œā”€ā”€ no-restricted-properties.js
│   │   │   │   ā”œā”€ā”€ no-restricted-syntax.js
│   │   │   │   ā”œā”€ā”€ no-return-assign.js
│   │   │   │   ā”œā”€ā”€ no-return-await.js
│   │   │   │   ā”œā”€ā”€ no-script-url.js
│   │   │   │   ā”œā”€ā”€ no-self-assign.js
│   │   │   │   ā”œā”€ā”€ no-self-compare.js
│   │   │   │   ā”œā”€ā”€ no-sequences.js
│   │   │   │   ā”œā”€ā”€ no-setter-return.js
│   │   │   │   ā”œā”€ā”€ no-shadow-restricted-names.js
│   │   │   │   ā”œā”€ā”€ no-shadow.js
│   │   │   │   ā”œā”€ā”€ no-spaced-func.js
│   │   │   │   ā”œā”€ā”€ no-sparse-arrays.js
│   │   │   │   ā”œā”€ā”€ no-sync.js
│   │   │   │   ā”œā”€ā”€ no-tabs.js
│   │   │   │   ā”œā”€ā”€ no-template-curly-in-string.js
│   │   │   │   ā”œā”€ā”€ no-ternary.js
│   │   │   │   ā”œā”€ā”€ no-this-before-super.js
│   │   │   │   ā”œā”€ā”€ no-throw-literal.js
│   │   │   │   ā”œā”€ā”€ no-trailing-spaces.js
│   │   │   │   ā”œā”€ā”€ no-unassigned-vars.js
│   │   │   │   ā”œā”€ā”€ no-undef-init.js
│   │   │   │   ā”œā”€ā”€ no-undef.js
│   │   │   │   ā”œā”€ā”€ no-undefined.js
│   │   │   │   ā”œā”€ā”€ no-underscore-dangle.js
│   │   │   │   ā”œā”€ā”€ no-unexpected-multiline.js
│   │   │   │   ā”œā”€ā”€ no-unmodified-loop-condition.js
│   │   │   │   ā”œā”€ā”€ no-unneeded-ternary.js
│   │   │   │   ā”œā”€ā”€ no-unreachable-loop.js
│   │   │   │   ā”œā”€ā”€ no-unreachable.js
│   │   │   │   ā”œā”€ā”€ no-unsafe-finally.js
│   │   │   │   ā”œā”€ā”€ no-unsafe-negation.js
│   │   │   │   ā”œā”€ā”€ no-unsafe-optional-chaining.js
│   │   │   │   ā”œā”€ā”€ no-unused-expressions.js
│   │   │   │   ā”œā”€ā”€ no-unused-labels.js
│   │   │   │   ā”œā”€ā”€ no-unused-private-class-members.js
│   │   │   │   ā”œā”€ā”€ no-unused-vars.js
│   │   │   │   ā”œā”€ā”€ no-use-before-define.js
│   │   │   │   ā”œā”€ā”€ no-useless-assignment.js
│   │   │   │   ā”œā”€ā”€ no-useless-backreference.js
│   │   │   │   ā”œā”€ā”€ no-useless-call.js
│   │   │   │   ā”œā”€ā”€ no-useless-catch.js
│   │   │   │   ā”œā”€ā”€ no-useless-computed-key.js
│   │   │   │   ā”œā”€ā”€ no-useless-concat.js
│   │   │   │   ā”œā”€ā”€ no-useless-constructor.js
│   │   │   │   ā”œā”€ā”€ no-useless-escape.js
│   │   │   │   ā”œā”€ā”€ no-useless-rename.js
│   │   │   │   ā”œā”€ā”€ no-useless-return.js
│   │   │   │   ā”œā”€ā”€ no-var.js
│   │   │   │   ā”œā”€ā”€ no-void.js
│   │   │   │   ā”œā”€ā”€ no-warning-comments.js
│   │   │   │   ā”œā”€ā”€ no-whitespace-before-property.js
│   │   │   │   ā”œā”€ā”€ no-with.js
│   │   │   │   ā”œā”€ā”€ nonblock-statement-body-position.js
│   │   │   │   ā”œā”€ā”€ object-curly-newline.js
│   │   │   │   ā”œā”€ā”€ object-curly-spacing.js
│   │   │   │   ā”œā”€ā”€ object-property-newline.js
│   │   │   │   ā”œā”€ā”€ object-shorthand.js
│   │   │   │   ā”œā”€ā”€ one-var-declaration-per-line.js
│   │   │   │   ā”œā”€ā”€ one-var.js
│   │   │   │   ā”œā”€ā”€ operator-assignment.js
│   │   │   │   ā”œā”€ā”€ operator-linebreak.js
│   │   │   │   ā”œā”€ā”€ padded-blocks.js
│   │   │   │   ā”œā”€ā”€ padding-line-between-statements.js
│   │   │   │   ā”œā”€ā”€ prefer-arrow-callback.js
│   │   │   │   ā”œā”€ā”€ prefer-const.js
│   │   │   │   ā”œā”€ā”€ prefer-destructuring.js
│   │   │   │   ā”œā”€ā”€ prefer-exponentiation-operator.js
│   │   │   │   ā”œā”€ā”€ prefer-named-capture-group.js
│   │   │   │   ā”œā”€ā”€ prefer-numeric-literals.js
│   │   │   │   ā”œā”€ā”€ prefer-object-has-own.js
│   │   │   │   ā”œā”€ā”€ prefer-object-spread.js
│   │   │   │   ā”œā”€ā”€ prefer-promise-reject-errors.js
│   │   │   │   ā”œā”€ā”€ prefer-reflect.js
│   │   │   │   ā”œā”€ā”€ prefer-regex-literals.js
│   │   │   │   ā”œā”€ā”€ prefer-rest-params.js
│   │   │   │   ā”œā”€ā”€ prefer-spread.js
│   │   │   │   ā”œā”€ā”€ prefer-template.js
│   │   │   │   ā”œā”€ā”€ quote-props.js
│   │   │   │   ā”œā”€ā”€ quotes.js
│   │   │   │   ā”œā”€ā”€ radix.js
│   │   │   │   ā”œā”€ā”€ require-atomic-updates.js
│   │   │   │   ā”œā”€ā”€ require-await.js
│   │   │   │   ā”œā”€ā”€ require-unicode-regexp.js
│   │   │   │   ā”œā”€ā”€ require-yield.js
│   │   │   │   ā”œā”€ā”€ rest-spread-spacing.js
│   │   │   │   ā”œā”€ā”€ semi-spacing.js
│   │   │   │   ā”œā”€ā”€ semi-style.js
│   │   │   │   ā”œā”€ā”€ semi.js
│   │   │   │   ā”œā”€ā”€ sort-imports.js
│   │   │   │   ā”œā”€ā”€ sort-keys.js
│   │   │   │   ā”œā”€ā”€ sort-vars.js
│   │   │   │   ā”œā”€ā”€ space-before-blocks.js
│   │   │   │   ā”œā”€ā”€ space-before-function-paren.js
│   │   │   │   ā”œā”€ā”€ space-in-parens.js
│   │   │   │   ā”œā”€ā”€ space-infix-ops.js
│   │   │   │   ā”œā”€ā”€ space-unary-ops.js
│   │   │   │   ā”œā”€ā”€ spaced-comment.js
│   │   │   │   ā”œā”€ā”€ strict.js
│   │   │   │   ā”œā”€ā”€ switch-colon-spacing.js
│   │   │   │   ā”œā”€ā”€ symbol-description.js
│   │   │   │   ā”œā”€ā”€ template-curly-spacing.js
│   │   │   │   ā”œā”€ā”€ template-tag-spacing.js
│   │   │   │   ā”œā”€ā”€ unicode-bom.js
│   │   │   │   ā”œā”€ā”€ use-isnan.js
│   │   │   │   ā”œā”€ā”€ utils
│   │   │   │   │   ā”œā”€ā”€ ast-utils.js
│   │   │   │   │   ā”œā”€ā”€ char-source.js
│   │   │   │   │   ā”œā”€ā”€ fix-tracker.js
│   │   │   │   │   ā”œā”€ā”€ keywords.js
│   │   │   │   │   ā”œā”€ā”€ lazy-loading-rule-map.js
│   │   │   │   │   ā”œā”€ā”€ regular-expressions.js
│   │   │   │   │   └── unicode
│   │   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │   │       ā”œā”€ā”€ is-combining-character.js
│   │   │   │   │       ā”œā”€ā”€ is-emoji-modifier.js
│   │   │   │   │       ā”œā”€ā”€ is-regional-indicator-symbol.js
│   │   │   │   │       └── is-surrogate-pair.js
│   │   │   │   ā”œā”€ā”€ valid-typeof.js
│   │   │   │   ā”œā”€ā”€ vars-on-top.js
│   │   │   │   ā”œā”€ā”€ wrap-iife.js
│   │   │   │   ā”œā”€ā”€ wrap-regex.js
│   │   │   │   ā”œā”€ā”€ yield-star-spacing.js
│   │   │   │   └── yoda.js
│   │   │   ā”œā”€ā”€ services
│   │   │   │   ā”œā”€ā”€ parser-service.js
│   │   │   │   ā”œā”€ā”€ processor-service.js
│   │   │   │   ā”œā”€ā”€ suppressions-service.js
│   │   │   │   └── warning-service.js
│   │   │   ā”œā”€ā”€ shared
│   │   │   │   ā”œā”€ā”€ ajv.js
│   │   │   │   ā”œā”€ā”€ assert.js
│   │   │   │   ā”œā”€ā”€ ast-utils.js
│   │   │   │   ā”œā”€ā”€ deep-merge-arrays.js
│   │   │   │   ā”œā”€ā”€ directives.js
│   │   │   │   ā”œā”€ā”€ flags.js
│   │   │   │   ā”œā”€ā”€ logging.js
│   │   │   │   ā”œā”€ā”€ naming.js
│   │   │   │   ā”œā”€ā”€ option-utils.js
│   │   │   │   ā”œā”€ā”€ relative-module-resolver.js
│   │   │   │   ā”œā”€ā”€ runtime-info.js
│   │   │   │   ā”œā”€ā”€ serialization.js
│   │   │   │   ā”œā”€ā”€ severity.js
│   │   │   │   ā”œā”€ā”€ stats.js
│   │   │   │   ā”œā”€ā”€ string-utils.js
│   │   │   │   ā”œā”€ā”€ text-table.js
│   │   │   │   └── traverser.js
│   │   │   ā”œā”€ā”€ types
│   │   │   │   ā”œā”€ā”€ config-api.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ rules.d.ts
│   │   │   │   ā”œā”€ā”€ universal.d.ts
│   │   │   │   └── use-at-your-own-risk.d.ts
│   │   │   ā”œā”€ā”€ universal.js
│   │   │   └── unsupported-api.js
│   │   ā”œā”€ā”€ messages
│   │   │   ā”œā”€ā”€ all-files-ignored.js
│   │   │   ā”œā”€ā”€ all-matched-files-ignored.js
│   │   │   ā”œā”€ā”€ config-file-missing.js
│   │   │   ā”œā”€ā”€ config-plugin-missing.js
│   │   │   ā”œā”€ā”€ config-serialize-function.js
│   │   │   ā”œā”€ā”€ eslintrc-incompat.js
│   │   │   ā”œā”€ā”€ eslintrc-plugins.js
│   │   │   ā”œā”€ā”€ extend-config-missing.js
│   │   │   ā”œā”€ā”€ failed-to-read-json.js
│   │   │   ā”œā”€ā”€ file-not-found.js
│   │   │   ā”œā”€ā”€ invalid-rule-options.js
│   │   │   ā”œā”€ā”€ invalid-rule-severity.js
│   │   │   ā”œā”€ā”€ no-config-found.js
│   │   │   ā”œā”€ā”€ plugin-conflict.js
│   │   │   ā”œā”€ā”€ plugin-invalid.js
│   │   │   ā”œā”€ā”€ plugin-missing.js
│   │   │   ā”œā”€ā”€ print-config-with-directory-path.js
│   │   │   ā”œā”€ā”€ shared.js
│   │   │   └── whitespace-found.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ ansi-styles
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   ā”œā”€ā”€ chalk
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ readme.md
│   │   │   │   └── source
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ templates.js
│   │   │   │       └── util.js
│   │   │   ā”œā”€ā”€ escape-string-regexp
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   ā”œā”€ā”€ glob-parent
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── package.json
│   │   │   └── supports-color
│   │   │       ā”œā”€ā”€ browser.js
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ license
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   └── package.json
│   ā”œā”€ā”€ eslint-scope
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   └── eslint-scope.cjs
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ assert.js
│   │   │   ā”œā”€ā”€ definition.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ pattern-visitor.js
│   │   │   ā”œā”€ā”€ reference.js
│   │   │   ā”œā”€ā”€ referencer.js
│   │   │   ā”œā”€ā”€ scope-manager.js
│   │   │   ā”œā”€ā”€ scope.js
│   │   │   ā”œā”€ā”€ variable.js
│   │   │   └── version.js
│   │   └── package.json
│   ā”œā”€ā”€ eslint-visitor-keys
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ eslint-visitor-keys.cjs
│   │   │   ā”œā”€ā”€ eslint-visitor-keys.d.cts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── visitor-keys.d.ts
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── visitor-keys.js
│   │   └── package.json
│   ā”œā”€ā”€ esm-import-transformer
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ import-transformer.js
│   │   └── package.json
│   ā”œā”€ā”€ espree
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   └── espree.cjs
│   │   ā”œā”€ā”€ espree.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ espree.js
│   │   │   ā”œā”€ā”€ features.js
│   │   │   ā”œā”€ā”€ options.js
│   │   │   ā”œā”€ā”€ token-translator.js
│   │   │   └── version.js
│   │   └── package.json
│   ā”œā”€ā”€ esquery
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ esquery.esm.js
│   │   │   ā”œā”€ā”€ esquery.esm.min.js
│   │   │   ā”œā”€ā”€ esquery.esm.min.js.map
│   │   │   ā”œā”€ā”€ esquery.js
│   │   │   ā”œā”€ā”€ esquery.lite.js
│   │   │   ā”œā”€ā”€ esquery.lite.min.js
│   │   │   ā”œā”€ā”€ esquery.lite.min.js.map
│   │   │   ā”œā”€ā”€ esquery.min.js
│   │   │   └── esquery.min.js.map
│   │   ā”œā”€ā”€ license.txt
│   │   ā”œā”€ā”€ package.json
│   │   └── parser.js
│   ā”œā”€ā”€ esrecurse
│   │   ā”œā”€ā”€ .babelrc
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ esrecurse.js
│   │   ā”œā”€ā”€ gulpfile.babel.js
│   │   └── package.json
│   ā”œā”€ā”€ estraverse
│   │   ā”œā”€ā”€ .jshintrc
│   │   ā”œā”€ā”€ LICENSE.BSD
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ estraverse.js
│   │   ā”œā”€ā”€ gulpfile.js
│   │   └── package.json
│   ā”œā”€ā”€ estree-walker
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ async.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ sync.js
│   │   │   └── walker.js
│   │   └── types
│   │       ā”œā”€ā”€ async.d.ts
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ sync.d.ts
│   │       └── walker.d.ts
│   ā”œā”€ā”€ esutils
│   │   ā”œā”€ā”€ LICENSE.BSD
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ ast.js
│   │   │   ā”œā”€ā”€ code.js
│   │   │   ā”œā”€ā”€ keyword.js
│   │   │   └── utils.js
│   │   └── package.json
│   ā”œā”€ā”€ etag
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ evaluate-value
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index-es5.js
│   │   ā”œā”€ā”€ index-es5.js.map
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ eventemitter3
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── umd
│   │       ā”œā”€ā”€ eventemitter3.js
│   │       ā”œā”€ā”€ eventemitter3.min.js
│   │       └── eventemitter3.min.js.map
│   ā”œā”€ā”€ exit-hook
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ expect-type
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ SECURITY.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ branding.d.ts
│   │   │   ā”œā”€ā”€ branding.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ messages.d.ts
│   │   │   ā”œā”€ā”€ messages.js
│   │   │   ā”œā”€ā”€ overloads.d.ts
│   │   │   ā”œā”€ā”€ overloads.js
│   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   └── utils.js
│   │   └── package.json
│   ā”œā”€ā”€ exsolve
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ extend
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .jscs.json
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ component.json
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ extend-shallow
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ extract-colors
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ assets
│   │   │   │   └── worker-BpWVVq8n.js.map
│   │   │   ā”œā”€ā”€ color
│   │   │   │   ā”œā”€ā”€ Color.d.ts
│   │   │   │   ā”œā”€ā”€ FinalColor.d.ts
│   │   │   │   ā”œā”€ā”€ LeafGroup.d.ts
│   │   │   │   └── RootGroup.d.ts
│   │   │   ā”œā”€ā”€ extract
│   │   │   │   ā”œā”€ā”€ cleanInputs.d.ts
│   │   │   │   └── extractor.d.ts
│   │   │   ā”œā”€ā”€ extract-colors.cjs
│   │   │   ā”œā”€ā”€ extract-colors.cjs.map
│   │   │   ā”œā”€ā”€ extract-colors.d.ts
│   │   │   ā”œā”€ā”€ extract-colors.mjs
│   │   │   ā”œā”€ā”€ extract-colors.mjs.map
│   │   │   ā”œā”€ā”€ helpers.d.ts
│   │   │   ā”œā”€ā”€ sort
│   │   │   │   ā”œā”€ā”€ AverageGroup.d.ts
│   │   │   │   ā”œā”€ā”€ AverageManager.d.ts
│   │   │   │   └── sortColors.d.ts
│   │   │   ā”œā”€ā”€ types
│   │   │   │   ā”œā”€ā”€ Color.d.ts
│   │   │   │   └── Options.d.ts
│   │   │   ā”œā”€ā”€ worker-wrapper.cjs
│   │   │   ā”œā”€ā”€ worker-wrapper.cjs.map
│   │   │   ā”œā”€ā”€ worker-wrapper.d.ts
│   │   │   ā”œā”€ā”€ worker-wrapper.mjs
│   │   │   └── worker-wrapper.mjs.map
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ eyes
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Makefile
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   └── eyes.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── eyes-test.js
│   ā”œā”€ā”€ fast-deep-equal
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ es6
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ react.d.ts
│   │   │   └── react.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ react.d.ts
│   │   └── react.js
│   ā”œā”€ā”€ fast-glob
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ out
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ managers
│   │   │   │   ā”œā”€ā”€ tasks.d.ts
│   │   │   │   └── tasks.js
│   │   │   ā”œā”€ā”€ providers
│   │   │   │   ā”œā”€ā”€ async.d.ts
│   │   │   │   ā”œā”€ā”€ async.js
│   │   │   │   ā”œā”€ā”€ filters
│   │   │   │   │   ā”œā”€ā”€ deep.d.ts
│   │   │   │   │   ā”œā”€ā”€ deep.js
│   │   │   │   │   ā”œā”€ā”€ entry.d.ts
│   │   │   │   │   ā”œā”€ā”€ entry.js
│   │   │   │   │   ā”œā”€ā”€ error.d.ts
│   │   │   │   │   └── error.js
│   │   │   │   ā”œā”€ā”€ matchers
│   │   │   │   │   ā”œā”€ā”€ matcher.d.ts
│   │   │   │   │   ā”œā”€ā”€ matcher.js
│   │   │   │   │   ā”œā”€ā”€ partial.d.ts
│   │   │   │   │   └── partial.js
│   │   │   │   ā”œā”€ā”€ provider.d.ts
│   │   │   │   ā”œā”€ā”€ provider.js
│   │   │   │   ā”œā”€ā”€ stream.d.ts
│   │   │   │   ā”œā”€ā”€ stream.js
│   │   │   │   ā”œā”€ā”€ sync.d.ts
│   │   │   │   ā”œā”€ā”€ sync.js
│   │   │   │   └── transformers
│   │   │   │       ā”œā”€ā”€ entry.d.ts
│   │   │   │       └── entry.js
│   │   │   ā”œā”€ā”€ readers
│   │   │   │   ā”œā”€ā”€ async.d.ts
│   │   │   │   ā”œā”€ā”€ async.js
│   │   │   │   ā”œā”€ā”€ reader.d.ts
│   │   │   │   ā”œā”€ā”€ reader.js
│   │   │   │   ā”œā”€ā”€ stream.d.ts
│   │   │   │   ā”œā”€ā”€ stream.js
│   │   │   │   ā”œā”€ā”€ sync.d.ts
│   │   │   │   └── sync.js
│   │   │   ā”œā”€ā”€ settings.d.ts
│   │   │   ā”œā”€ā”€ settings.js
│   │   │   ā”œā”€ā”€ types
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   └── index.js
│   │   │   └── utils
│   │   │       ā”œā”€ā”€ array.d.ts
│   │   │       ā”œā”€ā”€ array.js
│   │   │       ā”œā”€ā”€ errno.d.ts
│   │   │       ā”œā”€ā”€ errno.js
│   │   │       ā”œā”€ā”€ fs.d.ts
│   │   │       ā”œā”€ā”€ fs.js
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ path.d.ts
│   │   │       ā”œā”€ā”€ path.js
│   │   │       ā”œā”€ā”€ pattern.d.ts
│   │   │       ā”œā”€ā”€ pattern.js
│   │   │       ā”œā”€ā”€ stream.d.ts
│   │   │       ā”œā”€ā”€ stream.js
│   │   │       ā”œā”€ā”€ string.d.ts
│   │   │       └── string.js
│   │   └── package.json
│   ā”œā”€ā”€ fast-json-stable-stringify
│   │   ā”œā”€ā”€ .eslintrc.yml
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ benchmark
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── test.json
│   │   ā”œā”€ā”€ example
│   │   │   ā”œā”€ā”€ key_cmp.js
│   │   │   ā”œā”€ā”€ nested.js
│   │   │   ā”œā”€ā”€ str.js
│   │   │   └── value_cmp.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ cmp.js
│   │       ā”œā”€ā”€ nested.js
│   │       ā”œā”€ā”€ str.js
│   │       └── to-json.js
│   ā”œā”€ā”€ fast-levenshtein
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ levenshtein.js
│   │   └── package.json
│   ā”œā”€ā”€ fast-xml-parser
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ cli
│   │       │   ā”œā”€ā”€ cli.js
│   │       │   ā”œā”€ā”€ man.js
│   │       │   └── read.js
│   │       ā”œā”€ā”€ fxp.d.ts
│   │       ā”œā”€ā”€ fxp.js
│   │       ā”œā”€ā”€ ignoreAttributes.js
│   │       ā”œā”€ā”€ util.js
│   │       ā”œā”€ā”€ v5
│   │       │   ā”œā”€ā”€ CharsSymbol.js
│   │       │   ā”œā”€ā”€ EntitiesParser.js
│   │       │   ā”œā”€ā”€ OptionsBuilder.js
│   │       │   ā”œā”€ā”€ OutputBuilders
│   │       │   │   ā”œā”€ā”€ BaseOutputBuilder.js
│   │       │   │   ā”œā”€ā”€ JsArrBuilder.js
│   │       │   │   ā”œā”€ā”€ JsMinArrBuilder.js
│   │       │   │   ā”œā”€ā”€ JsObjBuilder.js
│   │       │   │   └── ParserOptionsBuilder.js
│   │       │   ā”œā”€ā”€ Report.js
│   │       │   ā”œā”€ā”€ TagPath.js
│   │       │   ā”œā”€ā”€ TagPathMatcher.js
│   │       │   ā”œā”€ā”€ XMLParser.js
│   │       │   ā”œā”€ā”€ Xml2JsParser.js
│   │       │   ā”œā”€ā”€ XmlPartReader.js
│   │       │   ā”œā”€ā”€ XmlSpecialTagsReader.js
│   │       │   ā”œā”€ā”€ inputSource
│   │       │   │   ā”œā”€ā”€ BufferSource.js
│   │       │   │   └── StringSource.js
│   │       │   └── valueParsers
│   │       │       ā”œā”€ā”€ EntitiesParser.js
│   │       │       ā”œā”€ā”€ booleanParser.js
│   │       │       ā”œā”€ā”€ booleanParserExt.js
│   │       │       ā”œā”€ā”€ currency.js
│   │       │       ā”œā”€ā”€ join.js
│   │       │       ā”œā”€ā”€ number.js
│   │       │       └── trim.js
│   │       ā”œā”€ā”€ v6
│   │       │   ā”œā”€ā”€ CharsSymbol.js
│   │       │   ā”œā”€ā”€ EntitiesParser.js
│   │       │   ā”œā”€ā”€ OptionsBuilder.js
│   │       │   ā”œā”€ā”€ OutputBuilders
│   │       │   │   ā”œā”€ā”€ BaseOutputBuilder.js
│   │       │   │   ā”œā”€ā”€ JsArrBuilder.js
│   │       │   │   ā”œā”€ā”€ JsMinArrBuilder.js
│   │       │   │   ā”œā”€ā”€ JsObjBuilder.js
│   │       │   │   └── ParserOptionsBuilder.js
│   │       │   ā”œā”€ā”€ Report.js
│   │       │   ā”œā”€ā”€ TagPath.js
│   │       │   ā”œā”€ā”€ TagPathMatcher.js
│   │       │   ā”œā”€ā”€ XMLParser.js
│   │       │   ā”œā”€ā”€ Xml2JsParser.js
│   │       │   ā”œā”€ā”€ XmlPartReader.js
│   │       │   ā”œā”€ā”€ XmlSpecialTagsReader.js
│   │       │   ā”œā”€ā”€ inputSource
│   │       │   │   ā”œā”€ā”€ BufferSource.js
│   │       │   │   └── StringSource.js
│   │       │   └── valueParsers
│   │       │       ā”œā”€ā”€ EntitiesParser.js
│   │       │       ā”œā”€ā”€ booleanParser.js
│   │       │       ā”œā”€ā”€ booleanParserExt.js
│   │       │       ā”œā”€ā”€ currency.js
│   │       │       ā”œā”€ā”€ join.js
│   │       │       ā”œā”€ā”€ number.js
│   │       │       └── trim.js
│   │       ā”œā”€ā”€ validator.js
│   │       ā”œā”€ā”€ xmlbuilder
│   │       │   ā”œā”€ā”€ json2xml.js
│   │       │   ā”œā”€ā”€ orderedJs2Xml.js
│   │       │   └── prettifyJs2Xml.js
│   │       └── xmlparser
│   │           ā”œā”€ā”€ DocTypeReader.js
│   │           ā”œā”€ā”€ OptionsBuilder.js
│   │           ā”œā”€ā”€ OrderedObjParser.js
│   │           ā”œā”€ā”€ XMLParser.js
│   │           ā”œā”€ā”€ node2json.js
│   │           └── xmlNode.js
│   ā”œā”€ā”€ fastq
│   │   ā”œā”€ā”€ .github
│   │   │   ā”œā”€ā”€ dependabot.yml
│   │   │   └── workflows
│   │   │       └── ci.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ SECURITY.md
│   │   ā”œā”€ā”€ bench.js
│   │   ā”œā”€ā”€ example.js
│   │   ā”œā”€ā”€ example.mjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ queue.js
│   │   └── test
│   │       ā”œā”€ā”€ example.ts
│   │       ā”œā”€ā”€ promise.js
│   │       ā”œā”€ā”€ test.js
│   │       └── tsconfig.json
│   ā”œā”€ā”€ fdir
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ fflate
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ esm
│   │   │   ā”œā”€ā”€ browser.d.ts
│   │   │   ā”œā”€ā”€ browser.js
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   └── index.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ browser.cjs
│   │   │   ā”œā”€ā”€ browser.d.cts
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ node-worker.cjs
│   │   │   ā”œā”€ā”€ node.cjs
│   │   │   ā”œā”€ā”€ node.d.cts
│   │   │   └── worker.cjs
│   │   ā”œā”€ā”€ package.json
│   │   └── umd
│   │       └── index.js
│   ā”œā”€ā”€ file-entry-cache
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ cache.js
│   │   └── package.json
│   ā”œā”€ā”€ filesize
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ filesize.cjs
│   │   │   └── filesize.esm.js
│   │   ā”œā”€ā”€ package.json
│   │   └── types
│   │       └── filesize.d.ts
│   ā”œā”€ā”€ fill-range
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ finalhandler
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ find-up
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ flat-cache
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ changelog.md
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ cache.js
│   │       ā”œā”€ā”€ del.js
│   │       └── utils.js
│   ā”œā”€ā”€ flatted
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ cjs
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ es.js
│   │   ā”œā”€ā”€ esm
│   │   │   └── index.js
│   │   ā”œā”€ā”€ esm.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ min.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ php
│   │   │   └── flatted.php
│   │   ā”œā”€ā”€ python
│   │   │   └── flatted.py
│   │   └── types
│   │       └── index.d.ts
│   ā”œā”€ā”€ foreground-child
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commonjs
│   │   │   │   ā”œā”€ā”€ all-signals.d.ts
│   │   │   │   ā”œā”€ā”€ all-signals.d.ts.map
│   │   │   │   ā”œā”€ā”€ all-signals.js
│   │   │   │   ā”œā”€ā”€ all-signals.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ proxy-signals.d.ts
│   │   │   │   ā”œā”€ā”€ proxy-signals.d.ts.map
│   │   │   │   ā”œā”€ā”€ proxy-signals.js
│   │   │   │   ā”œā”€ā”€ proxy-signals.js.map
│   │   │   │   ā”œā”€ā”€ watchdog.d.ts
│   │   │   │   ā”œā”€ā”€ watchdog.d.ts.map
│   │   │   │   ā”œā”€ā”€ watchdog.js
│   │   │   │   └── watchdog.js.map
│   │   │   └── esm
│   │   │       ā”œā”€ā”€ all-signals.d.ts
│   │   │       ā”œā”€ā”€ all-signals.d.ts.map
│   │   │       ā”œā”€ā”€ all-signals.js
│   │   │       ā”œā”€ā”€ all-signals.js.map
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ package.json
│   │   │       ā”œā”€ā”€ proxy-signals.d.ts
│   │   │       ā”œā”€ā”€ proxy-signals.d.ts.map
│   │   │       ā”œā”€ā”€ proxy-signals.js
│   │   │       ā”œā”€ā”€ proxy-signals.js.map
│   │   │       ā”œā”€ā”€ watchdog.d.ts
│   │   │       ā”œā”€ā”€ watchdog.d.ts.map
│   │   │       ā”œā”€ā”€ watchdog.js
│   │   │       └── watchdog.js.map
│   │   └── package.json
│   ā”œā”€ā”€ form-data
│   │   ā”œā”€ā”€ .dockerignore
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ .eslintignore
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ License
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ browser.js
│   │   │   ā”œā”€ā”€ form_data.js
│   │   │   └── populate.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ mime-db
│   │   │   │   ā”œā”€ā”€ HISTORY.md
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ db.json
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── package.json
│   │   │   └── mime-types
│   │   │       ā”œā”€ā”€ HISTORY.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ index.js
│   │   │       └── package.json
│   │   ā”œā”€ā”€ package.json
│   │   └── wercker.yml
│   ā”œā”€ā”€ formidable
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ file.js
│   │   │   ā”œā”€ā”€ incoming_form.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ json_parser.js
│   │   │   ā”œā”€ā”€ multipart_parser.js
│   │   │   ā”œā”€ā”€ octet_parser.js
│   │   │   └── querystring_parser.js
│   │   └── package.json
│   ā”œā”€ā”€ fresh
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ fs-extra
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ copy
│   │   │   │   ā”œā”€ā”€ copy-sync.js
│   │   │   │   ā”œā”€ā”€ copy.js
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ empty
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ ensure
│   │   │   │   ā”œā”€ā”€ file.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ link.js
│   │   │   │   ā”œā”€ā”€ symlink-paths.js
│   │   │   │   ā”œā”€ā”€ symlink-type.js
│   │   │   │   └── symlink.js
│   │   │   ā”œā”€ā”€ esm.mjs
│   │   │   ā”œā”€ā”€ fs
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ json
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ jsonfile.js
│   │   │   │   ā”œā”€ā”€ output-json-sync.js
│   │   │   │   └── output-json.js
│   │   │   ā”œā”€ā”€ mkdirs
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ make-dir.js
│   │   │   │   └── utils.js
│   │   │   ā”œā”€ā”€ move
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ move-sync.js
│   │   │   │   └── move.js
│   │   │   ā”œā”€ā”€ output-file
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ path-exists
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ remove
│   │   │   │   └── index.js
│   │   │   └── util
│   │   │       ā”œā”€ā”€ stat.js
│   │   │       └── utimes.js
│   │   └── package.json
│   ā”œā”€ā”€ function-bind
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   ā”œā”€ā”€ FUNDING.yml
│   │   │   └── SECURITY.md
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ implementation.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ .eslintrc
│   │       └── index.js
│   ā”œā”€ā”€ get-east-asian-width
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ lookup.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ get-intrinsic
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── GetIntrinsic.js
│   ā”œā”€ā”€ get-proto
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Object.getPrototypeOf.d.ts
│   │   ā”œā”€ā”€ Object.getPrototypeOf.js
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ Reflect.getPrototypeOf.d.ts
│   │   ā”œā”€ā”€ Reflect.getPrototypeOf.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ github-publish
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.d.ts.map
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ glob
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commonjs
│   │   │   │   ā”œā”€ā”€ glob.d.ts
│   │   │   │   ā”œā”€ā”€ glob.d.ts.map
│   │   │   │   ā”œā”€ā”€ glob.js
│   │   │   │   ā”œā”€ā”€ glob.js.map
│   │   │   │   ā”œā”€ā”€ has-magic.d.ts
│   │   │   │   ā”œā”€ā”€ has-magic.d.ts.map
│   │   │   │   ā”œā”€ā”€ has-magic.js
│   │   │   │   ā”œā”€ā”€ has-magic.js.map
│   │   │   │   ā”œā”€ā”€ ignore.d.ts
│   │   │   │   ā”œā”€ā”€ ignore.d.ts.map
│   │   │   │   ā”œā”€ā”€ ignore.js
│   │   │   │   ā”œā”€ā”€ ignore.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ pattern.d.ts
│   │   │   │   ā”œā”€ā”€ pattern.d.ts.map
│   │   │   │   ā”œā”€ā”€ pattern.js
│   │   │   │   ā”œā”€ā”€ pattern.js.map
│   │   │   │   ā”œā”€ā”€ processor.d.ts
│   │   │   │   ā”œā”€ā”€ processor.d.ts.map
│   │   │   │   ā”œā”€ā”€ processor.js
│   │   │   │   ā”œā”€ā”€ processor.js.map
│   │   │   │   ā”œā”€ā”€ walker.d.ts
│   │   │   │   ā”œā”€ā”€ walker.d.ts.map
│   │   │   │   ā”œā”€ā”€ walker.js
│   │   │   │   └── walker.js.map
│   │   │   └── esm
│   │   │       ā”œā”€ā”€ bin.d.mts
│   │   │       ā”œā”€ā”€ bin.d.mts.map
│   │   │       ā”œā”€ā”€ bin.mjs
│   │   │       ā”œā”€ā”€ bin.mjs.map
│   │   │       ā”œā”€ā”€ glob.d.ts
│   │   │       ā”œā”€ā”€ glob.d.ts.map
│   │   │       ā”œā”€ā”€ glob.js
│   │   │       ā”œā”€ā”€ glob.js.map
│   │   │       ā”œā”€ā”€ has-magic.d.ts
│   │   │       ā”œā”€ā”€ has-magic.d.ts.map
│   │   │       ā”œā”€ā”€ has-magic.js
│   │   │       ā”œā”€ā”€ has-magic.js.map
│   │   │       ā”œā”€ā”€ ignore.d.ts
│   │   │       ā”œā”€ā”€ ignore.d.ts.map
│   │   │       ā”œā”€ā”€ ignore.js
│   │   │       ā”œā”€ā”€ ignore.js.map
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ package.json
│   │   │       ā”œā”€ā”€ pattern.d.ts
│   │   │       ā”œā”€ā”€ pattern.d.ts.map
│   │   │       ā”œā”€ā”€ pattern.js
│   │   │       ā”œā”€ā”€ pattern.js.map
│   │   │       ā”œā”€ā”€ processor.d.ts
│   │   │       ā”œā”€ā”€ processor.d.ts.map
│   │   │       ā”œā”€ā”€ processor.js
│   │   │       ā”œā”€ā”€ processor.js.map
│   │   │       ā”œā”€ā”€ walker.d.ts
│   │   │       ā”œā”€ā”€ walker.d.ts.map
│   │   │       ā”œā”€ā”€ walker.js
│   │   │       └── walker.js.map
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ brace-expansion
│   │   │   │   ā”œā”€ā”€ .github
│   │   │   │   │   └── FUNDING.yml
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── package.json
│   │   │   └── minimatch
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ dist
│   │   │       │   ā”œā”€ā”€ commonjs
│   │   │       │   │   ā”œā”€ā”€ assert-valid-pattern.d.ts
│   │   │       │   │   ā”œā”€ā”€ assert-valid-pattern.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ assert-valid-pattern.js
│   │   │       │   │   ā”œā”€ā”€ assert-valid-pattern.js.map
│   │   │       │   │   ā”œā”€ā”€ ast.d.ts
│   │   │       │   │   ā”œā”€ā”€ ast.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ ast.js
│   │   │       │   │   ā”œā”€ā”€ ast.js.map
│   │   │       │   │   ā”œā”€ā”€ brace-expressions.d.ts
│   │   │       │   │   ā”œā”€ā”€ brace-expressions.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ brace-expressions.js
│   │   │       │   │   ā”œā”€ā”€ brace-expressions.js.map
│   │   │       │   │   ā”œā”€ā”€ escape.d.ts
│   │   │       │   │   ā”œā”€ā”€ escape.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ escape.js
│   │   │       │   │   ā”œā”€ā”€ escape.js.map
│   │   │       │   │   ā”œā”€ā”€ index.d.ts
│   │   │       │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ index.js
│   │   │       │   │   ā”œā”€ā”€ index.js.map
│   │   │       │   │   ā”œā”€ā”€ package.json
│   │   │       │   │   ā”œā”€ā”€ unescape.d.ts
│   │   │       │   │   ā”œā”€ā”€ unescape.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ unescape.js
│   │   │       │   │   └── unescape.js.map
│   │   │       │   └── esm
│   │   │       │       ā”œā”€ā”€ assert-valid-pattern.d.ts
│   │   │       │       ā”œā”€ā”€ assert-valid-pattern.d.ts.map
│   │   │       │       ā”œā”€ā”€ assert-valid-pattern.js
│   │   │       │       ā”œā”€ā”€ assert-valid-pattern.js.map
│   │   │       │       ā”œā”€ā”€ ast.d.ts
│   │   │       │       ā”œā”€ā”€ ast.d.ts.map
│   │   │       │       ā”œā”€ā”€ ast.js
│   │   │       │       ā”œā”€ā”€ ast.js.map
│   │   │       │       ā”œā”€ā”€ brace-expressions.d.ts
│   │   │       │       ā”œā”€ā”€ brace-expressions.d.ts.map
│   │   │       │       ā”œā”€ā”€ brace-expressions.js
│   │   │       │       ā”œā”€ā”€ brace-expressions.js.map
│   │   │       │       ā”œā”€ā”€ escape.d.ts
│   │   │       │       ā”œā”€ā”€ escape.d.ts.map
│   │   │       │       ā”œā”€ā”€ escape.js
│   │   │       │       ā”œā”€ā”€ escape.js.map
│   │   │       │       ā”œā”€ā”€ index.d.ts
│   │   │       │       ā”œā”€ā”€ index.d.ts.map
│   │   │       │       ā”œā”€ā”€ index.js
│   │   │       │       ā”œā”€ā”€ index.js.map
│   │   │       │       ā”œā”€ā”€ package.json
│   │   │       │       ā”œā”€ā”€ unescape.d.ts
│   │   │       │       ā”œā”€ā”€ unescape.d.ts.map
│   │   │       │       ā”œā”€ā”€ unescape.js
│   │   │       │       └── unescape.js.map
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ glob-parent
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ glob-to-regexp
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test.js
│   ā”œā”€ā”€ globals
│   │   ā”œā”€ā”€ globals.json
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ gopd
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ gOPD.d.ts
│   │   ā”œā”€ā”€ gOPD.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ graceful-fs
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ clone.js
│   │   ā”œā”€ā”€ graceful-fs.js
│   │   ā”œā”€ā”€ legacy-streams.js
│   │   ā”œā”€ā”€ package.json
│   │   └── polyfills.js
│   ā”œā”€ā”€ hachure-fill
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   ā”œā”€ā”€ hachure.d.ts
│   │   │   └── hachure.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   └── package.json
│   ā”œā”€ā”€ has-flag
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ has-symbols
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ shams.d.ts
│   │   ā”œā”€ā”€ shams.js
│   │   ā”œā”€ā”€ test
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ shams
│   │   │   │   ā”œā”€ā”€ core-js.js
│   │   │   │   └── get-own-property-symbols.js
│   │   │   └── tests.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ hash-string
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bower.json
│   │   ā”œā”€ā”€ build
│   │   │   ā”œā”€ā”€ hash-string.js
│   │   │   └── hash-string.min.js
│   │   ā”œā”€ā”€ example
│   │   │   └── example.html
│   │   ā”œā”€ā”€ gulpfile.js
│   │   ā”œā”€ā”€ package.json
│   │   └── source
│   │       └── hash-string.js
│   ā”œā”€ā”€ hasown
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── tsconfig.json
│   ā”œā”€ā”€ he
│   │   ā”œā”€ā”€ LICENSE-MIT.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── he
│   │   ā”œā”€ā”€ he.js
│   │   ā”œā”€ā”€ man
│   │   │   └── he.1
│   │   └── package.json
│   ā”œā”€ā”€ html-escaper
│   │   ā”œā”€ā”€ LICENSE.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ cjs
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ esm
│   │   │   └── index.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ index.js
│   │       └── package.json
│   ā”œā”€ā”€ htmlparser2
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ FeedHandler.d.ts
│   │   │   ā”œā”€ā”€ FeedHandler.d.ts.map
│   │   │   ā”œā”€ā”€ FeedHandler.js
│   │   │   ā”œā”€ā”€ Parser.d.ts
│   │   │   ā”œā”€ā”€ Parser.d.ts.map
│   │   │   ā”œā”€ā”€ Parser.js
│   │   │   ā”œā”€ā”€ Tokenizer.d.ts
│   │   │   ā”œā”€ā”€ Tokenizer.d.ts.map
│   │   │   ā”œā”€ā”€ Tokenizer.js
│   │   │   ā”œā”€ā”€ WritableStream.d.ts
│   │   │   ā”œā”€ā”€ WritableStream.d.ts.map
│   │   │   ā”œā”€ā”€ WritableStream.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   └── index.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── entities
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ decode.d.ts
│   │   │       │   ā”œā”€ā”€ decode.d.ts.map
│   │   │       │   ā”œā”€ā”€ decode.js
│   │   │       │   ā”œā”€ā”€ decode_codepoint.d.ts
│   │   │       │   ā”œā”€ā”€ decode_codepoint.d.ts.map
│   │   │       │   ā”œā”€ā”€ decode_codepoint.js
│   │   │       │   ā”œā”€ā”€ encode-trie.d.ts
│   │   │       │   ā”œā”€ā”€ encode-trie.d.ts.map
│   │   │       │   ā”œā”€ā”€ encode-trie.js
│   │   │       │   ā”œā”€ā”€ encode.d.ts
│   │   │       │   ā”œā”€ā”€ encode.d.ts.map
│   │   │       │   ā”œā”€ā”€ encode.js
│   │   │       │   ā”œā”€ā”€ generated
│   │   │       │   │   ā”œā”€ā”€ decode-data-html.d.ts
│   │   │       │   │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ decode-data-html.js
│   │   │       │   │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │   │       │   │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │   │       │   │   └── decode-data-xml.js
│   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │       │   ā”œā”€ā”€ index.d.ts.map
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   └── maps
│   │   │       │       ā”œā”€ā”€ entities.json
│   │   │       │       ā”œā”€ā”€ legacy.json
│   │   │       │       └── xml.json
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   └── package.json
│   ā”œā”€ā”€ http-equiv-refresh
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index-es5.js
│   │   ā”œā”€ā”€ index-es5.js.map
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   └── package.json
│   ā”œā”€ā”€ http-errors
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── statuses
│   │   │       ā”œā”€ā”€ HISTORY.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ codes.json
│   │   │       ā”œā”€ā”€ index.js
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ human-readable-numbers
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   └── index.min.js
│   │   └── package.json
│   ā”œā”€ā”€ iconv-lite
│   │   ā”œā”€ā”€ .github
│   │   │   └── dependabot.yml
│   │   ā”œā”€ā”€ .idea
│   │   │   ā”œā”€ā”€ codeStyles
│   │   │   │   ā”œā”€ā”€ Project.xml
│   │   │   │   └── codeStyleConfig.xml
│   │   │   ā”œā”€ā”€ iconv-lite.iml
│   │   │   ā”œā”€ā”€ inspectionProfiles
│   │   │   │   └── Project_Default.xml
│   │   │   ā”œā”€ā”€ modules.xml
│   │   │   └── vcs.xml
│   │   ā”œā”€ā”€ Changelog.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ encodings
│   │   │   ā”œā”€ā”€ dbcs-codec.js
│   │   │   ā”œā”€ā”€ dbcs-data.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ internal.js
│   │   │   ā”œā”€ā”€ sbcs-codec.js
│   │   │   ā”œā”€ā”€ sbcs-data-generated.js
│   │   │   ā”œā”€ā”€ sbcs-data.js
│   │   │   ā”œā”€ā”€ tables
│   │   │   │   ā”œā”€ā”€ big5-added.json
│   │   │   │   ā”œā”€ā”€ cp936.json
│   │   │   │   ā”œā”€ā”€ cp949.json
│   │   │   │   ā”œā”€ā”€ cp950.json
│   │   │   │   ā”œā”€ā”€ eucjp.json
│   │   │   │   ā”œā”€ā”€ gb18030-ranges.json
│   │   │   │   ā”œā”€ā”€ gbk-added.json
│   │   │   │   └── shiftjis.json
│   │   │   ā”œā”€ā”€ utf16.js
│   │   │   ā”œā”€ā”€ utf32.js
│   │   │   └── utf7.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ bom-handling.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── streams.js
│   │   └── package.json
│   ā”œā”€ā”€ ignore
│   │   ā”œā”€ā”€ LICENSE-MIT
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ legacy.js
│   │   └── package.json
│   ā”œā”€ā”€ image-size
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── image-size.js
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ detector.d.ts
│   │   │   ā”œā”€ā”€ detector.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ types
│   │   │   │   ā”œā”€ā”€ bmp.d.ts
│   │   │   │   ā”œā”€ā”€ bmp.js
│   │   │   │   ā”œā”€ā”€ cur.d.ts
│   │   │   │   ā”œā”€ā”€ cur.js
│   │   │   │   ā”œā”€ā”€ dds.d.ts
│   │   │   │   ā”œā”€ā”€ dds.js
│   │   │   │   ā”œā”€ā”€ gif.d.ts
│   │   │   │   ā”œā”€ā”€ gif.js
│   │   │   │   ā”œā”€ā”€ heif.d.ts
│   │   │   │   ā”œā”€ā”€ heif.js
│   │   │   │   ā”œā”€ā”€ icns.d.ts
│   │   │   │   ā”œā”€ā”€ icns.js
│   │   │   │   ā”œā”€ā”€ ico.d.ts
│   │   │   │   ā”œā”€ā”€ ico.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ interface.d.ts
│   │   │   │   ā”œā”€ā”€ interface.js
│   │   │   │   ā”œā”€ā”€ j2c.d.ts
│   │   │   │   ā”œā”€ā”€ j2c.js
│   │   │   │   ā”œā”€ā”€ jp2.d.ts
│   │   │   │   ā”œā”€ā”€ jp2.js
│   │   │   │   ā”œā”€ā”€ jpg.d.ts
│   │   │   │   ā”œā”€ā”€ jpg.js
│   │   │   │   ā”œā”€ā”€ jxl-stream.d.ts
│   │   │   │   ā”œā”€ā”€ jxl-stream.js
│   │   │   │   ā”œā”€ā”€ jxl.d.ts
│   │   │   │   ā”œā”€ā”€ jxl.js
│   │   │   │   ā”œā”€ā”€ ktx.d.ts
│   │   │   │   ā”œā”€ā”€ ktx.js
│   │   │   │   ā”œā”€ā”€ png.d.ts
│   │   │   │   ā”œā”€ā”€ png.js
│   │   │   │   ā”œā”€ā”€ pnm.d.ts
│   │   │   │   ā”œā”€ā”€ pnm.js
│   │   │   │   ā”œā”€ā”€ psd.d.ts
│   │   │   │   ā”œā”€ā”€ psd.js
│   │   │   │   ā”œā”€ā”€ svg.d.ts
│   │   │   │   ā”œā”€ā”€ svg.js
│   │   │   │   ā”œā”€ā”€ tga.d.ts
│   │   │   │   ā”œā”€ā”€ tga.js
│   │   │   │   ā”œā”€ā”€ tiff.d.ts
│   │   │   │   ā”œā”€ā”€ tiff.js
│   │   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   │   ā”œā”€ā”€ utils.js
│   │   │   │   ā”œā”€ā”€ webp.d.ts
│   │   │   │   └── webp.js
│   │   │   └── utils
│   │   │       ā”œā”€ā”€ bit-reader.d.ts
│   │   │       └── bit-reader.js
│   │   └── package.json
│   ā”œā”€ā”€ import-fresh
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ import-module-string
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ import-module-string.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ parse-code.js
│   │       ā”œā”€ā”€ preprocess-imports.js
│   │       ā”œā”€ā”€ resolve.js
│   │       ā”œā”€ā”€ stringify-data.js
│   │       ā”œā”€ā”€ supports.js
│   │       ā”œā”€ā”€ url.js
│   │       └── walk-code.js
│   ā”œā”€ā”€ imurmurhash
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ imurmurhash.js
│   │   ā”œā”€ā”€ imurmurhash.min.js
│   │   └── package.json
│   ā”œā”€ā”€ inherits
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ inherits.js
│   │   ā”œā”€ā”€ inherits_browser.js
│   │   └── package.json
│   ā”œā”€ā”€ internmap
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ internmap.js
│   │   │   └── internmap.min.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       └── index.js
│   ā”œā”€ā”€ iota-array
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ iota.js
│   │   └── package.json
│   ā”œā”€ā”€ is-alphabetical
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ is-alphanumerical
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ is-arrayish
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── yarn-error.log
│   ā”œā”€ā”€ is-binary-path
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ is-buffer
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── basic.js
│   ā”œā”€ā”€ is-decimal
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ is-extendable
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ is-extglob
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ is-fullwidth-code-point
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ is-glob
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ is-json
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── index.js
│   ā”œā”€ā”€ is-number
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ isarray
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ Makefile
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ component.json
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test.js
│   ā”œā”€ā”€ isexe
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ mode.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── basic.js
│   │   └── windows.js
│   ā”œā”€ā”€ iso-639-1
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .nvmrc
│   │   ā”œā”€ā”€ .prettierrc
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ .vscode
│   │   │   └── settings.json
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ build
│   │   │   └── index.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ data.js
│   │   │   └── index.js
│   │   ā”œā”€ā”€ test
│   │   │   └── test.js
│   │   └── webpack.config.js
│   ā”œā”€ā”€ isstream
│   │   ā”œā”€ā”€ .jshintrc
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ isstream.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test.js
│   ā”œā”€ā”€ istanbul-lib-coverage
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ coverage-map.js
│   │   │   ā”œā”€ā”€ coverage-summary.js
│   │   │   ā”œā”€ā”€ data-properties.js
│   │   │   ā”œā”€ā”€ file-coverage.js
│   │   │   └── percent.js
│   │   └── package.json
│   ā”œā”€ā”€ istanbul-lib-report
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ context.js
│   │   │   ā”œā”€ā”€ file-writer.js
│   │   │   ā”œā”€ā”€ path.js
│   │   │   ā”œā”€ā”€ report-base.js
│   │   │   ā”œā”€ā”€ summarizer-factory.js
│   │   │   ā”œā”€ā”€ tree.js
│   │   │   ā”œā”€ā”€ watermarks.js
│   │   │   └── xml-writer.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── supports-color
│   │   │       ā”œā”€ā”€ browser.js
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ license
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   └── package.json
│   ā”œā”€ā”€ istanbul-lib-source-maps
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ get-mapping.js
│   │   │   ā”œā”€ā”€ map-store.js
│   │   │   ā”œā”€ā”€ mapped.js
│   │   │   ā”œā”€ā”€ pathutils.js
│   │   │   ā”œā”€ā”€ transform-utils.js
│   │   │   └── transformer.js
│   │   └── package.json
│   ā”œā”€ā”€ istanbul-reports
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ clover
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ cobertura
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ html
│   │   │   │   ā”œā”€ā”€ annotator.js
│   │   │   │   ā”œā”€ā”€ assets
│   │   │   │   │   ā”œā”€ā”€ base.css
│   │   │   │   │   ā”œā”€ā”€ block-navigation.js
│   │   │   │   │   ā”œā”€ā”€ favicon.png
│   │   │   │   │   ā”œā”€ā”€ sort-arrow-sprite.png
│   │   │   │   │   ā”œā”€ā”€ sorter.js
│   │   │   │   │   └── vendor
│   │   │   │   │       ā”œā”€ā”€ prettify.css
│   │   │   │   │       └── prettify.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── insertion-text.js
│   │   │   ā”œā”€ā”€ html-spa
│   │   │   │   ā”œā”€ā”€ .babelrc
│   │   │   │   ā”œā”€ā”€ assets
│   │   │   │   │   ā”œā”€ā”€ bundle.js
│   │   │   │   │   ā”œā”€ā”€ sort-arrow-sprite.png
│   │   │   │   │   └── spa.css
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ src
│   │   │   │   │   ā”œā”€ā”€ fileBreadcrumbs.js
│   │   │   │   │   ā”œā”€ā”€ filterToggle.js
│   │   │   │   │   ā”œā”€ā”€ flattenToggle.js
│   │   │   │   │   ā”œā”€ā”€ getChildData.js
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   ā”œā”€ā”€ routing.js
│   │   │   │   │   ā”œā”€ā”€ summaryHeader.js
│   │   │   │   │   ā”œā”€ā”€ summaryTableHeader.js
│   │   │   │   │   └── summaryTableLine.js
│   │   │   │   └── webpack.config.js
│   │   │   ā”œā”€ā”€ json
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ json-summary
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ lcov
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ lcovonly
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ none
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ teamcity
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ text
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ text-lcov
│   │   │   │   └── index.js
│   │   │   └── text-summary
│   │   │       └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ jackspeak
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commonjs
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ parse-args-cjs.cjs.map
│   │   │   │   ā”œā”€ā”€ parse-args-cjs.d.cts.map
│   │   │   │   ā”œā”€ā”€ parse-args.d.ts
│   │   │   │   └── parse-args.js
│   │   │   └── esm
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ package.json
│   │   │       ā”œā”€ā”€ parse-args.d.ts
│   │   │       ā”œā”€ā”€ parse-args.d.ts.map
│   │   │       ā”œā”€ā”€ parse-args.js
│   │   │       └── parse-args.js.map
│   │   └── package.json
│   ā”œā”€ā”€ js-tokens
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ js-yaml
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── js-yaml.js
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ js-yaml.js
│   │   │   ā”œā”€ā”€ js-yaml.min.js
│   │   │   └── js-yaml.mjs
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ common.js
│   │   │   ā”œā”€ā”€ dumper.js
│   │   │   ā”œā”€ā”€ exception.js
│   │   │   ā”œā”€ā”€ loader.js
│   │   │   ā”œā”€ā”€ schema
│   │   │   │   ā”œā”€ā”€ core.js
│   │   │   │   ā”œā”€ā”€ default.js
│   │   │   │   ā”œā”€ā”€ failsafe.js
│   │   │   │   └── json.js
│   │   │   ā”œā”€ā”€ schema.js
│   │   │   ā”œā”€ā”€ snippet.js
│   │   │   ā”œā”€ā”€ type
│   │   │   │   ā”œā”€ā”€ binary.js
│   │   │   │   ā”œā”€ā”€ bool.js
│   │   │   │   ā”œā”€ā”€ float.js
│   │   │   │   ā”œā”€ā”€ int.js
│   │   │   │   ā”œā”€ā”€ map.js
│   │   │   │   ā”œā”€ā”€ merge.js
│   │   │   │   ā”œā”€ā”€ null.js
│   │   │   │   ā”œā”€ā”€ omap.js
│   │   │   │   ā”œā”€ā”€ pairs.js
│   │   │   │   ā”œā”€ā”€ seq.js
│   │   │   │   ā”œā”€ā”€ set.js
│   │   │   │   ā”œā”€ā”€ str.js
│   │   │   │   └── timestamp.js
│   │   │   └── type.js
│   │   └── package.json
│   ā”œā”€ā”€ json-buffer
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── index.js
│   ā”œā”€ā”€ json-schema-traverse
│   │   ā”œā”€ā”€ .eslintrc.yml
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── spec
│   │       ā”œā”€ā”€ .eslintrc.yml
│   │       ā”œā”€ā”€ fixtures
│   │       │   └── schema.js
│   │       └── index.spec.js
│   ā”œā”€ā”€ json-stable-stringify-without-jsonify
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ example
│   │   │   ā”œā”€ā”€ key_cmp.js
│   │   │   ā”œā”€ā”€ nested.js
│   │   │   ā”œā”€ā”€ str.js
│   │   │   └── value_cmp.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.markdown
│   │   └── test
│   │       ā”œā”€ā”€ cmp.js
│   │       ā”œā”€ā”€ nested.js
│   │       ā”œā”€ā”€ replacer.js
│   │       ā”œā”€ā”€ space.js
│   │       ā”œā”€ā”€ str.js
│   │       └── to-json.js
│   ā”œā”€ā”€ jsonfile
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── utils.js
│   ā”œā”€ā”€ junk
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ katex
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ cli.js
│   │   ā”œā”€ā”€ contrib
│   │   │   ā”œā”€ā”€ auto-render
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ auto-render.js
│   │   │   │   ā”œā”€ā”€ index.html
│   │   │   │   ā”œā”€ā”€ splitAtDelimiters.js
│   │   │   │   └── test
│   │   │   │       └── auto-render-spec.js
│   │   │   ā”œā”€ā”€ copy-tex
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ copy-tex.js
│   │   │   │   ā”œā”€ā”€ index.html
│   │   │   │   └── katex2tex.js
│   │   │   ā”œā”€ā”€ mathtex-script-type
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   └── mathtex-script-type.js
│   │   │   ā”œā”€ā”€ mhchem
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   └── mhchem.js
│   │   │   └── render-a11y-string
│   │   │       ā”œā”€ā”€ render-a11y-string.js
│   │   │       └── test
│   │   │           └── render-a11y-string-spec.js
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ README.md
│   │   │   ā”œā”€ā”€ contrib
│   │   │   │   ā”œā”€ā”€ auto-render.js
│   │   │   │   ā”œā”€ā”€ auto-render.min.js
│   │   │   │   ā”œā”€ā”€ auto-render.mjs
│   │   │   │   ā”œā”€ā”€ copy-tex.js
│   │   │   │   ā”œā”€ā”€ copy-tex.min.js
│   │   │   │   ā”œā”€ā”€ copy-tex.mjs
│   │   │   │   ā”œā”€ā”€ mathtex-script-type.js
│   │   │   │   ā”œā”€ā”€ mathtex-script-type.min.js
│   │   │   │   ā”œā”€ā”€ mathtex-script-type.mjs
│   │   │   │   ā”œā”€ā”€ mhchem.js
│   │   │   │   ā”œā”€ā”€ mhchem.min.js
│   │   │   │   ā”œā”€ā”€ mhchem.mjs
│   │   │   │   ā”œā”€ā”€ render-a11y-string.js
│   │   │   │   ā”œā”€ā”€ render-a11y-string.min.js
│   │   │   │   └── render-a11y-string.mjs
│   │   │   ā”œā”€ā”€ fonts
│   │   │   │   ā”œā”€ā”€ KaTeX_AMS-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_AMS-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_AMS-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Caligraphic-Bold.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Caligraphic-Bold.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Caligraphic-Bold.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Caligraphic-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Caligraphic-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Caligraphic-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Fraktur-Bold.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Fraktur-Bold.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Fraktur-Bold.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Fraktur-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Fraktur-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Fraktur-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Bold.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Bold.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Bold.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-BoldItalic.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-BoldItalic.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-BoldItalic.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Italic.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Italic.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Italic.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Main-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Math-BoldItalic.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Math-BoldItalic.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Math-BoldItalic.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Math-Italic.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Math-Italic.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Math-Italic.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Bold.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Bold.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Bold.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Italic.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Italic.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Italic.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_SansSerif-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Script-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Script-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Script-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Size1-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Size1-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Size1-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Size2-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Size2-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Size2-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Size3-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Size3-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Size3-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Size4-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Size4-Regular.woff
│   │   │   │   ā”œā”€ā”€ KaTeX_Size4-Regular.woff2
│   │   │   │   ā”œā”€ā”€ KaTeX_Typewriter-Regular.ttf
│   │   │   │   ā”œā”€ā”€ KaTeX_Typewriter-Regular.woff
│   │   │   │   └── KaTeX_Typewriter-Regular.woff2
│   │   │   ā”œā”€ā”€ katex.css
│   │   │   ā”œā”€ā”€ katex.js
│   │   │   ā”œā”€ā”€ katex.min.css
│   │   │   ā”œā”€ā”€ katex.min.js
│   │   │   └── katex.mjs
│   │   ā”œā”€ā”€ katex.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── commander
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ Readme.md
│   │   │       ā”œā”€ā”€ esm.mjs
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ argument.js
│   │   │       │   ā”œā”€ā”€ command.js
│   │   │       │   ā”œā”€ā”€ error.js
│   │   │       │   ā”œā”€ā”€ help.js
│   │   │       │   ā”œā”€ā”€ option.js
│   │   │       │   └── suggestSimilar.js
│   │   │       ā”œā”€ā”€ package-support.json
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── typings
│   │   │           └── index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ Lexer.js
│   │   │   ā”œā”€ā”€ MacroExpander.js
│   │   │   ā”œā”€ā”€ Namespace.js
│   │   │   ā”œā”€ā”€ Options.js
│   │   │   ā”œā”€ā”€ ParseError.js
│   │   │   ā”œā”€ā”€ Parser.js
│   │   │   ā”œā”€ā”€ Settings.js
│   │   │   ā”œā”€ā”€ SourceLocation.js
│   │   │   ā”œā”€ā”€ Style.js
│   │   │   ā”œā”€ā”€ Token.js
│   │   │   ā”œā”€ā”€ buildCommon.js
│   │   │   ā”œā”€ā”€ buildHTML.js
│   │   │   ā”œā”€ā”€ buildMathML.js
│   │   │   ā”œā”€ā”€ buildTree.js
│   │   │   ā”œā”€ā”€ defineEnvironment.js
│   │   │   ā”œā”€ā”€ defineFunction.js
│   │   │   ā”œā”€ā”€ defineMacro.js
│   │   │   ā”œā”€ā”€ delimiter.js
│   │   │   ā”œā”€ā”€ domTree.js
│   │   │   ā”œā”€ā”€ environments
│   │   │   │   ā”œā”€ā”€ array.js
│   │   │   │   └── cd.js
│   │   │   ā”œā”€ā”€ environments.js
│   │   │   ā”œā”€ā”€ fontMetrics.js
│   │   │   ā”œā”€ā”€ fontMetricsData.js
│   │   │   ā”œā”€ā”€ fonts
│   │   │   │   ā”œā”€ā”€ Makefile
│   │   │   │   ā”œā”€ā”€ default.cfg
│   │   │   │   ā”œā”€ā”€ generate_fonts.py
│   │   │   │   ā”œā”€ā”€ lib
│   │   │   │   │   ā”œā”€ā”€ Extra.otf
│   │   │   │   │   └── Space.ttx
│   │   │   │   ā”œā”€ā”€ makeBlacker
│   │   │   │   ā”œā”€ā”€ makeFF
│   │   │   │   └── xbbold.mf
│   │   │   ā”œā”€ā”€ functions
│   │   │   │   ā”œā”€ā”€ accent.js
│   │   │   │   ā”œā”€ā”€ accentunder.js
│   │   │   │   ā”œā”€ā”€ arrow.js
│   │   │   │   ā”œā”€ā”€ char.js
│   │   │   │   ā”œā”€ā”€ color.js
│   │   │   │   ā”œā”€ā”€ cr.js
│   │   │   │   ā”œā”€ā”€ def.js
│   │   │   │   ā”œā”€ā”€ delimsizing.js
│   │   │   │   ā”œā”€ā”€ enclose.js
│   │   │   │   ā”œā”€ā”€ environment.js
│   │   │   │   ā”œā”€ā”€ font.js
│   │   │   │   ā”œā”€ā”€ genfrac.js
│   │   │   │   ā”œā”€ā”€ hbox.js
│   │   │   │   ā”œā”€ā”€ horizBrace.js
│   │   │   │   ā”œā”€ā”€ href.js
│   │   │   │   ā”œā”€ā”€ html.js
│   │   │   │   ā”œā”€ā”€ htmlmathml.js
│   │   │   │   ā”œā”€ā”€ includegraphics.js
│   │   │   │   ā”œā”€ā”€ kern.js
│   │   │   │   ā”œā”€ā”€ lap.js
│   │   │   │   ā”œā”€ā”€ math.js
│   │   │   │   ā”œā”€ā”€ mathchoice.js
│   │   │   │   ā”œā”€ā”€ mclass.js
│   │   │   │   ā”œā”€ā”€ op.js
│   │   │   │   ā”œā”€ā”€ operatorname.js
│   │   │   │   ā”œā”€ā”€ ordgroup.js
│   │   │   │   ā”œā”€ā”€ overline.js
│   │   │   │   ā”œā”€ā”€ phantom.js
│   │   │   │   ā”œā”€ā”€ pmb.js
│   │   │   │   ā”œā”€ā”€ raisebox.js
│   │   │   │   ā”œā”€ā”€ relax.js
│   │   │   │   ā”œā”€ā”€ rule.js
│   │   │   │   ā”œā”€ā”€ sizing.js
│   │   │   │   ā”œā”€ā”€ smash.js
│   │   │   │   ā”œā”€ā”€ sqrt.js
│   │   │   │   ā”œā”€ā”€ styling.js
│   │   │   │   ā”œā”€ā”€ supsub.js
│   │   │   │   ā”œā”€ā”€ symbolsOp.js
│   │   │   │   ā”œā”€ā”€ symbolsOrd.js
│   │   │   │   ā”œā”€ā”€ symbolsSpacing.js
│   │   │   │   ā”œā”€ā”€ tag.js
│   │   │   │   ā”œā”€ā”€ text.js
│   │   │   │   ā”œā”€ā”€ underline.js
│   │   │   │   ā”œā”€ā”€ utils
│   │   │   │   │   └── assembleSupSub.js
│   │   │   │   ā”œā”€ā”€ vcenter.js
│   │   │   │   └── verb.js
│   │   │   ā”œā”€ā”€ functions.js
│   │   │   ā”œā”€ā”€ macros.js
│   │   │   ā”œā”€ā”€ mathMLTree.js
│   │   │   ā”œā”€ā”€ metrics
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ extract_tfms.py
│   │   │   │   ā”œā”€ā”€ extract_ttfs.py
│   │   │   │   ā”œā”€ā”€ format_json.py
│   │   │   │   ā”œā”€ā”€ mapping.pl
│   │   │   │   └── parse_tfm.py
│   │   │   ā”œā”€ā”€ parseNode.js
│   │   │   ā”œā”€ā”€ parseTree.js
│   │   │   ā”œā”€ā”€ spacingData.js
│   │   │   ā”œā”€ā”€ stretchy.js
│   │   │   ā”œā”€ā”€ styles
│   │   │   │   ā”œā”€ā”€ fonts.scss
│   │   │   │   └── katex.scss
│   │   │   ā”œā”€ā”€ svgGeometry.js
│   │   │   ā”œā”€ā”€ symbols.js
│   │   │   ā”œā”€ā”€ tree.js
│   │   │   ā”œā”€ā”€ types.js
│   │   │   ā”œā”€ā”€ unicodeAccents.js
│   │   │   ā”œā”€ā”€ unicodeScripts.js
│   │   │   ā”œā”€ā”€ unicodeSupOrSub.js
│   │   │   ā”œā”€ā”€ unicodeSymbols.js
│   │   │   ā”œā”€ā”€ units.js
│   │   │   ā”œā”€ā”€ utils.js
│   │   │   └── wide-character.js
│   │   └── types
│   │       └── katex.d.ts
│   ā”œā”€ā”€ keyv
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ index.d.ts
│   │       └── index.js
│   ā”œā”€ā”€ khroma
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ channels
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ reusable.d.ts
│   │   │   │   ā”œā”€ā”€ reusable.js
│   │   │   │   ā”œā”€ā”€ type.d.ts
│   │   │   │   └── type.js
│   │   │   ā”œā”€ā”€ color
│   │   │   │   ā”œā”€ā”€ hex.d.ts
│   │   │   │   ā”œā”€ā”€ hex.js
│   │   │   │   ā”œā”€ā”€ hsl.d.ts
│   │   │   │   ā”œā”€ā”€ hsl.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ keyword.d.ts
│   │   │   │   ā”œā”€ā”€ keyword.js
│   │   │   │   ā”œā”€ā”€ rgb.d.ts
│   │   │   │   └── rgb.js
│   │   │   ā”œā”€ā”€ constants.d.ts
│   │   │   ā”œā”€ā”€ constants.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ methods
│   │   │   │   ā”œā”€ā”€ adjust.d.ts
│   │   │   │   ā”œā”€ā”€ adjust.js
│   │   │   │   ā”œā”€ā”€ adjust_channel.d.ts
│   │   │   │   ā”œā”€ā”€ adjust_channel.js
│   │   │   │   ā”œā”€ā”€ alpha.d.ts
│   │   │   │   ā”œā”€ā”€ alpha.js
│   │   │   │   ā”œā”€ā”€ blue.d.ts
│   │   │   │   ā”œā”€ā”€ blue.js
│   │   │   │   ā”œā”€ā”€ change.d.ts
│   │   │   │   ā”œā”€ā”€ change.js
│   │   │   │   ā”œā”€ā”€ channel.d.ts
│   │   │   │   ā”œā”€ā”€ channel.js
│   │   │   │   ā”œā”€ā”€ complement.d.ts
│   │   │   │   ā”œā”€ā”€ complement.js
│   │   │   │   ā”œā”€ā”€ contrast.d.ts
│   │   │   │   ā”œā”€ā”€ contrast.js
│   │   │   │   ā”œā”€ā”€ darken.d.ts
│   │   │   │   ā”œā”€ā”€ darken.js
│   │   │   │   ā”œā”€ā”€ desaturate.d.ts
│   │   │   │   ā”œā”€ā”€ desaturate.js
│   │   │   │   ā”œā”€ā”€ grayscale.d.ts
│   │   │   │   ā”œā”€ā”€ grayscale.js
│   │   │   │   ā”œā”€ā”€ green.d.ts
│   │   │   │   ā”œā”€ā”€ green.js
│   │   │   │   ā”œā”€ā”€ hsla.d.ts
│   │   │   │   ā”œā”€ā”€ hsla.js
│   │   │   │   ā”œā”€ā”€ hue.d.ts
│   │   │   │   ā”œā”€ā”€ hue.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ invert.d.ts
│   │   │   │   ā”œā”€ā”€ invert.js
│   │   │   │   ā”œā”€ā”€ is_dark.d.ts
│   │   │   │   ā”œā”€ā”€ is_dark.js
│   │   │   │   ā”œā”€ā”€ is_light.d.ts
│   │   │   │   ā”œā”€ā”€ is_light.js
│   │   │   │   ā”œā”€ā”€ is_transparent.d.ts
│   │   │   │   ā”œā”€ā”€ is_transparent.js
│   │   │   │   ā”œā”€ā”€ is_valid.d.ts
│   │   │   │   ā”œā”€ā”€ is_valid.js
│   │   │   │   ā”œā”€ā”€ lighten.d.ts
│   │   │   │   ā”œā”€ā”€ lighten.js
│   │   │   │   ā”œā”€ā”€ lightness.d.ts
│   │   │   │   ā”œā”€ā”€ lightness.js
│   │   │   │   ā”œā”€ā”€ luminance.d.ts
│   │   │   │   ā”œā”€ā”€ luminance.js
│   │   │   │   ā”œā”€ā”€ mix.d.ts
│   │   │   │   ā”œā”€ā”€ mix.js
│   │   │   │   ā”œā”€ā”€ opacify.d.ts
│   │   │   │   ā”œā”€ā”€ opacify.js
│   │   │   │   ā”œā”€ā”€ red.d.ts
│   │   │   │   ā”œā”€ā”€ red.js
│   │   │   │   ā”œā”€ā”€ rgba.d.ts
│   │   │   │   ā”œā”€ā”€ rgba.js
│   │   │   │   ā”œā”€ā”€ saturate.d.ts
│   │   │   │   ā”œā”€ā”€ saturate.js
│   │   │   │   ā”œā”€ā”€ saturation.d.ts
│   │   │   │   ā”œā”€ā”€ saturation.js
│   │   │   │   ā”œā”€ā”€ scale.d.ts
│   │   │   │   ā”œā”€ā”€ scale.js
│   │   │   │   ā”œā”€ā”€ to_hex.d.ts
│   │   │   │   ā”œā”€ā”€ to_hex.js
│   │   │   │   ā”œā”€ā”€ to_hsla.d.ts
│   │   │   │   ā”œā”€ā”€ to_hsla.js
│   │   │   │   ā”œā”€ā”€ to_keyword.d.ts
│   │   │   │   ā”œā”€ā”€ to_keyword.js
│   │   │   │   ā”œā”€ā”€ to_rgba.d.ts
│   │   │   │   ā”œā”€ā”€ to_rgba.js
│   │   │   │   ā”œā”€ā”€ transparentize.d.ts
│   │   │   │   └── transparentize.js
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   ā”œā”€ā”€ types.js
│   │   │   └── utils
│   │   │       ā”œā”€ā”€ channel.d.ts
│   │   │       ā”œā”€ā”€ channel.js
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ lang.d.ts
│   │   │       ā”œā”€ā”€ lang.js
│   │   │       ā”œā”€ā”€ unit.d.ts
│   │   │       └── unit.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ channels
│   │   │   │   ā”œā”€ā”€ index.ts
│   │   │   │   ā”œā”€ā”€ reusable.ts
│   │   │   │   └── type.ts
│   │   │   ā”œā”€ā”€ color
│   │   │   │   ā”œā”€ā”€ hex.ts
│   │   │   │   ā”œā”€ā”€ hsl.ts
│   │   │   │   ā”œā”€ā”€ index.ts
│   │   │   │   ā”œā”€ā”€ keyword.ts
│   │   │   │   └── rgb.ts
│   │   │   ā”œā”€ā”€ constants.ts
│   │   │   ā”œā”€ā”€ index.ts
│   │   │   ā”œā”€ā”€ methods
│   │   │   │   ā”œā”€ā”€ adjust.ts
│   │   │   │   ā”œā”€ā”€ adjust_channel.ts
│   │   │   │   ā”œā”€ā”€ alpha.ts
│   │   │   │   ā”œā”€ā”€ blue.ts
│   │   │   │   ā”œā”€ā”€ change.ts
│   │   │   │   ā”œā”€ā”€ channel.ts
│   │   │   │   ā”œā”€ā”€ complement.ts
│   │   │   │   ā”œā”€ā”€ contrast.ts
│   │   │   │   ā”œā”€ā”€ darken.ts
│   │   │   │   ā”œā”€ā”€ desaturate.ts
│   │   │   │   ā”œā”€ā”€ grayscale.ts
│   │   │   │   ā”œā”€ā”€ green.ts
│   │   │   │   ā”œā”€ā”€ hsla.ts
│   │   │   │   ā”œā”€ā”€ hue.ts
│   │   │   │   ā”œā”€ā”€ index.ts
│   │   │   │   ā”œā”€ā”€ invert.ts
│   │   │   │   ā”œā”€ā”€ is_dark.ts
│   │   │   │   ā”œā”€ā”€ is_light.ts
│   │   │   │   ā”œā”€ā”€ is_transparent.ts
│   │   │   │   ā”œā”€ā”€ is_valid.ts
│   │   │   │   ā”œā”€ā”€ lighten.ts
│   │   │   │   ā”œā”€ā”€ lightness.ts
│   │   │   │   ā”œā”€ā”€ luminance.ts
│   │   │   │   ā”œā”€ā”€ mix.ts
│   │   │   │   ā”œā”€ā”€ opacify.ts
│   │   │   │   ā”œā”€ā”€ red.ts
│   │   │   │   ā”œā”€ā”€ rgba.ts
│   │   │   │   ā”œā”€ā”€ saturate.ts
│   │   │   │   ā”œā”€ā”€ saturation.ts
│   │   │   │   ā”œā”€ā”€ scale.ts
│   │   │   │   ā”œā”€ā”€ to_hex.ts
│   │   │   │   ā”œā”€ā”€ to_hsla.ts
│   │   │   │   ā”œā”€ā”€ to_keyword.ts
│   │   │   │   ā”œā”€ā”€ to_rgba.ts
│   │   │   │   └── transparentize.ts
│   │   │   ā”œā”€ā”€ types.ts
│   │   │   └── utils
│   │   │       ā”œā”€ā”€ channel.ts
│   │   │       ā”œā”€ā”€ index.ts
│   │   │       ā”œā”€ā”€ lang.ts
│   │   │       └── unit.ts
│   │   ā”œā”€ā”€ tasks
│   │   │   └── benchmark.js
│   │   ā”œā”€ā”€ test
│   │   │   ā”œā”€ā”€ color
│   │   │   │   ā”œā”€ā”€ hex.js
│   │   │   │   ā”œā”€ā”€ hsl.js
│   │   │   │   ā”œā”€ā”€ hsla.js
│   │   │   │   ā”œā”€ā”€ keyword.js
│   │   │   │   ā”œā”€ā”€ rgb.js
│   │   │   │   └── rgba.js
│   │   │   └── methods
│   │   │       ā”œā”€ā”€ adjust.js
│   │   │       ā”œā”€ā”€ alpha.js
│   │   │       ā”œā”€ā”€ blue.js
│   │   │       ā”œā”€ā”€ change.js
│   │   │       ā”œā”€ā”€ complement.js
│   │   │       ā”œā”€ā”€ contrast.js
│   │   │       ā”œā”€ā”€ darken.js
│   │   │       ā”œā”€ā”€ desaturate.js
│   │   │       ā”œā”€ā”€ grayscale.js
│   │   │       ā”œā”€ā”€ green.js
│   │   │       ā”œā”€ā”€ hex.js
│   │   │       ā”œā”€ā”€ hsla.js
│   │   │       ā”œā”€ā”€ hue.js
│   │   │       ā”œā”€ā”€ invert.js
│   │   │       ā”œā”€ā”€ is_dark.js
│   │   │       ā”œā”€ā”€ is_light.js
│   │   │       ā”œā”€ā”€ is_transparent.js
│   │   │       ā”œā”€ā”€ is_valid.js
│   │   │       ā”œā”€ā”€ lighten.js
│   │   │       ā”œā”€ā”€ lightness.js
│   │   │       ā”œā”€ā”€ luminance.js
│   │   │       ā”œā”€ā”€ mix.js
│   │   │       ā”œā”€ā”€ opacify.js
│   │   │       ā”œā”€ā”€ red.js
│   │   │       ā”œā”€ā”€ rgba.js
│   │   │       ā”œā”€ā”€ saturate.js
│   │   │       ā”œā”€ā”€ saturation.js
│   │   │       ā”œā”€ā”€ scale.js
│   │   │       └── transparentize.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ kind-of
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ kleur
│   │   ā”œā”€ā”€ colors.d.ts
│   │   ā”œā”€ā”€ colors.js
│   │   ā”œā”€ā”€ colors.mjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ kolorist
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ cjs
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── index.js.map
│   │   │   ā”œā”€ā”€ esm
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   └── index.mjs
│   │   │   ā”œā”€ā”€ module
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── index.js.map
│   │   │   └── types
│   │   │       └── index.d.ts
│   │   └── package.json
│   ā”œā”€ā”€ langium
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ default-module.d.ts
│   │   │   ā”œā”€ā”€ default-module.d.ts.map
│   │   │   ā”œā”€ā”€ default-module.js
│   │   │   ā”œā”€ā”€ default-module.js.map
│   │   │   ā”œā”€ā”€ dependency-injection.d.ts
│   │   │   ā”œā”€ā”€ dependency-injection.d.ts.map
│   │   │   ā”œā”€ā”€ dependency-injection.js
│   │   │   ā”œā”€ā”€ dependency-injection.js.map
│   │   │   ā”œā”€ā”€ documentation
│   │   │   │   ā”œā”€ā”€ comment-provider.d.ts
│   │   │   │   ā”œā”€ā”€ comment-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ comment-provider.js
│   │   │   │   ā”œā”€ā”€ comment-provider.js.map
│   │   │   │   ā”œā”€ā”€ documentation-provider.d.ts
│   │   │   │   ā”œā”€ā”€ documentation-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ documentation-provider.js
│   │   │   │   ā”œā”€ā”€ documentation-provider.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ jsdoc.d.ts
│   │   │   │   ā”œā”€ā”€ jsdoc.d.ts.map
│   │   │   │   ā”œā”€ā”€ jsdoc.js
│   │   │   │   └── jsdoc.js.map
│   │   │   ā”œā”€ā”€ generate
│   │   │   │   ā”œā”€ā”€ generator-node.d.ts
│   │   │   │   ā”œā”€ā”€ generator-node.d.ts.map
│   │   │   │   ā”œā”€ā”€ generator-node.js
│   │   │   │   ā”œā”€ā”€ generator-node.js.map
│   │   │   │   ā”œā”€ā”€ generator-tracing.d.ts
│   │   │   │   ā”œā”€ā”€ generator-tracing.d.ts.map
│   │   │   │   ā”œā”€ā”€ generator-tracing.js
│   │   │   │   ā”œā”€ā”€ generator-tracing.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ node-joiner.d.ts
│   │   │   │   ā”œā”€ā”€ node-joiner.d.ts.map
│   │   │   │   ā”œā”€ā”€ node-joiner.js
│   │   │   │   ā”œā”€ā”€ node-joiner.js.map
│   │   │   │   ā”œā”€ā”€ node-processor.d.ts
│   │   │   │   ā”œā”€ā”€ node-processor.d.ts.map
│   │   │   │   ā”œā”€ā”€ node-processor.js
│   │   │   │   ā”œā”€ā”€ node-processor.js.map
│   │   │   │   ā”œā”€ā”€ template-node.d.ts
│   │   │   │   ā”œā”€ā”€ template-node.d.ts.map
│   │   │   │   ā”œā”€ā”€ template-node.js
│   │   │   │   ā”œā”€ā”€ template-node.js.map
│   │   │   │   ā”œā”€ā”€ template-string.d.ts
│   │   │   │   ā”œā”€ā”€ template-string.d.ts.map
│   │   │   │   ā”œā”€ā”€ template-string.js
│   │   │   │   └── template-string.js.map
│   │   │   ā”œā”€ā”€ grammar
│   │   │   │   ā”œā”€ā”€ ast-reflection-interpreter.d.ts
│   │   │   │   ā”œā”€ā”€ ast-reflection-interpreter.d.ts.map
│   │   │   │   ā”œā”€ā”€ ast-reflection-interpreter.js
│   │   │   │   ā”œā”€ā”€ ast-reflection-interpreter.js.map
│   │   │   │   ā”œā”€ā”€ generated
│   │   │   │   │   ā”œā”€ā”€ grammar.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar.js
│   │   │   │   │   ā”œā”€ā”€ grammar.js.map
│   │   │   │   │   ā”œā”€ā”€ module.d.ts
│   │   │   │   │   ā”œā”€ā”€ module.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ module.js
│   │   │   │   │   └── module.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ internal-grammar-util.d.ts
│   │   │   │   ā”œā”€ā”€ internal-grammar-util.d.ts.map
│   │   │   │   ā”œā”€ā”€ internal-grammar-util.js
│   │   │   │   ā”œā”€ā”€ internal-grammar-util.js.map
│   │   │   │   ā”œā”€ā”€ langium-grammar-module.d.ts
│   │   │   │   ā”œā”€ā”€ langium-grammar-module.d.ts.map
│   │   │   │   ā”œā”€ā”€ langium-grammar-module.js
│   │   │   │   ā”œā”€ā”€ langium-grammar-module.js.map
│   │   │   │   ā”œā”€ā”€ lsp
│   │   │   │   │   ā”œā”€ā”€ grammar-call-hierarchy.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-call-hierarchy.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-call-hierarchy.js
│   │   │   │   │   ā”œā”€ā”€ grammar-call-hierarchy.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-code-actions.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-code-actions.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-code-actions.js
│   │   │   │   │   ā”œā”€ā”€ grammar-code-actions.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-completion-provider.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-completion-provider.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-completion-provider.js
│   │   │   │   │   ā”œā”€ā”€ grammar-completion-provider.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-definition.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-definition.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-definition.js
│   │   │   │   │   ā”œā”€ā”€ grammar-definition.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-folding-ranges.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-folding-ranges.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-folding-ranges.js
│   │   │   │   │   ā”œā”€ā”€ grammar-folding-ranges.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-formatter.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-formatter.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-formatter.js
│   │   │   │   │   ā”œā”€ā”€ grammar-formatter.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-semantic-tokens.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-semantic-tokens.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-semantic-tokens.js
│   │   │   │   │   ā”œā”€ā”€ grammar-semantic-tokens.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-type-hierarchy.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-type-hierarchy.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-type-hierarchy.js
│   │   │   │   │   └── grammar-type-hierarchy.js.map
│   │   │   │   ā”œā”€ā”€ references
│   │   │   │   │   ā”œā”€ā”€ grammar-naming.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-naming.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-naming.js
│   │   │   │   │   ā”œā”€ā”€ grammar-naming.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-references.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-references.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-references.js
│   │   │   │   │   ā”œā”€ā”€ grammar-references.js.map
│   │   │   │   │   ā”œā”€ā”€ grammar-scope.d.ts
│   │   │   │   │   ā”œā”€ā”€ grammar-scope.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ grammar-scope.js
│   │   │   │   │   └── grammar-scope.js.map
│   │   │   │   ā”œā”€ā”€ type-system
│   │   │   │   │   ā”œā”€ā”€ ast-collector.d.ts
│   │   │   │   │   ā”œā”€ā”€ ast-collector.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ ast-collector.js
│   │   │   │   │   ā”œā”€ā”€ ast-collector.js.map
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   │   ā”œā”€ā”€ type-collector
│   │   │   │   │   │   ā”œā”€ā”€ all-types.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ all-types.d.ts.map
│   │   │   │   │   │   ā”œā”€ā”€ all-types.js
│   │   │   │   │   │   ā”œā”€ā”€ all-types.js.map
│   │   │   │   │   │   ā”œā”€ā”€ declared-types.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ declared-types.d.ts.map
│   │   │   │   │   │   ā”œā”€ā”€ declared-types.js
│   │   │   │   │   │   ā”œā”€ā”€ declared-types.js.map
│   │   │   │   │   │   ā”œā”€ā”€ inferred-types.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ inferred-types.d.ts.map
│   │   │   │   │   │   ā”œā”€ā”€ inferred-types.js
│   │   │   │   │   │   ā”œā”€ā”€ inferred-types.js.map
│   │   │   │   │   │   ā”œā”€ā”€ plain-types.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ plain-types.d.ts.map
│   │   │   │   │   │   ā”œā”€ā”€ plain-types.js
│   │   │   │   │   │   ā”œā”€ā”€ plain-types.js.map
│   │   │   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ types.d.ts.map
│   │   │   │   │   │   ā”œā”€ā”€ types.js
│   │   │   │   │   │   └── types.js.map
│   │   │   │   │   ā”œā”€ā”€ types-util.d.ts
│   │   │   │   │   ā”œā”€ā”€ types-util.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ types-util.js
│   │   │   │   │   └── types-util.js.map
│   │   │   │   ā”œā”€ā”€ validation
│   │   │   │   │   ā”œā”€ā”€ types-validator.d.ts
│   │   │   │   │   ā”œā”€ā”€ types-validator.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ types-validator.js
│   │   │   │   │   ā”œā”€ā”€ types-validator.js.map
│   │   │   │   │   ā”œā”€ā”€ validation-resources-collector.d.ts
│   │   │   │   │   ā”œā”€ā”€ validation-resources-collector.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ validation-resources-collector.js
│   │   │   │   │   ā”œā”€ā”€ validation-resources-collector.js.map
│   │   │   │   │   ā”œā”€ā”€ validator.d.ts
│   │   │   │   │   ā”œā”€ā”€ validator.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ validator.js
│   │   │   │   │   └── validator.js.map
│   │   │   │   └── workspace
│   │   │   │       ā”œā”€ā”€ documents.d.ts
│   │   │   │       ā”œā”€ā”€ documents.d.ts.map
│   │   │   │       ā”œā”€ā”€ documents.js
│   │   │   │       └── documents.js.map
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ index.js.map
│   │   │   ā”œā”€ā”€ languages
│   │   │   │   ā”œā”€ā”€ generated
│   │   │   │   │   ā”œā”€ā”€ ast.d.ts
│   │   │   │   │   ā”œā”€ā”€ ast.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ ast.js
│   │   │   │   │   └── ast.js.map
│   │   │   │   ā”œā”€ā”€ grammar-config.d.ts
│   │   │   │   ā”œā”€ā”€ grammar-config.d.ts.map
│   │   │   │   ā”œā”€ā”€ grammar-config.js
│   │   │   │   ā”œā”€ā”€ grammar-config.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ language-meta-data.d.ts
│   │   │   │   ā”œā”€ā”€ language-meta-data.d.ts.map
│   │   │   │   ā”œā”€ā”€ language-meta-data.js
│   │   │   │   └── language-meta-data.js.map
│   │   │   ā”œā”€ā”€ lsp
│   │   │   │   ā”œā”€ā”€ call-hierarchy-provider.d.ts
│   │   │   │   ā”œā”€ā”€ call-hierarchy-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ call-hierarchy-provider.js
│   │   │   │   ā”œā”€ā”€ call-hierarchy-provider.js.map
│   │   │   │   ā”œā”€ā”€ code-action.d.ts
│   │   │   │   ā”œā”€ā”€ code-action.d.ts.map
│   │   │   │   ā”œā”€ā”€ code-action.js
│   │   │   │   ā”œā”€ā”€ code-action.js.map
│   │   │   │   ā”œā”€ā”€ code-lens-provider.d.ts
│   │   │   │   ā”œā”€ā”€ code-lens-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ code-lens-provider.js
│   │   │   │   ā”œā”€ā”€ code-lens-provider.js.map
│   │   │   │   ā”œā”€ā”€ completion
│   │   │   │   │   ā”œā”€ā”€ completion-provider.d.ts
│   │   │   │   │   ā”œā”€ā”€ completion-provider.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ completion-provider.js
│   │   │   │   │   ā”œā”€ā”€ completion-provider.js.map
│   │   │   │   │   ā”œā”€ā”€ follow-element-computation.d.ts
│   │   │   │   │   ā”œā”€ā”€ follow-element-computation.d.ts.map
│   │   │   │   │   ā”œā”€ā”€ follow-element-computation.js
│   │   │   │   │   └── follow-element-computation.js.map
│   │   │   │   ā”œā”€ā”€ declaration-provider.d.ts
│   │   │   │   ā”œā”€ā”€ declaration-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ declaration-provider.js
│   │   │   │   ā”œā”€ā”€ declaration-provider.js.map
│   │   │   │   ā”œā”€ā”€ default-lsp-module.d.ts
│   │   │   │   ā”œā”€ā”€ default-lsp-module.d.ts.map
│   │   │   │   ā”œā”€ā”€ default-lsp-module.js
│   │   │   │   ā”œā”€ā”€ default-lsp-module.js.map
│   │   │   │   ā”œā”€ā”€ definition-provider.d.ts
│   │   │   │   ā”œā”€ā”€ definition-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ definition-provider.js
│   │   │   │   ā”œā”€ā”€ definition-provider.js.map
│   │   │   │   ā”œā”€ā”€ document-highlight-provider.d.ts
│   │   │   │   ā”œā”€ā”€ document-highlight-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ document-highlight-provider.js
│   │   │   │   ā”œā”€ā”€ document-highlight-provider.js.map
│   │   │   │   ā”œā”€ā”€ document-link-provider.d.ts
│   │   │   │   ā”œā”€ā”€ document-link-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ document-link-provider.js
│   │   │   │   ā”œā”€ā”€ document-link-provider.js.map
│   │   │   │   ā”œā”€ā”€ document-symbol-provider.d.ts
│   │   │   │   ā”œā”€ā”€ document-symbol-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ document-symbol-provider.js
│   │   │   │   ā”œā”€ā”€ document-symbol-provider.js.map
│   │   │   │   ā”œā”€ā”€ document-update-handler.d.ts
│   │   │   │   ā”œā”€ā”€ document-update-handler.d.ts.map
│   │   │   │   ā”œā”€ā”€ document-update-handler.js
│   │   │   │   ā”œā”€ā”€ document-update-handler.js.map
│   │   │   │   ā”œā”€ā”€ execute-command-handler.d.ts
│   │   │   │   ā”œā”€ā”€ execute-command-handler.d.ts.map
│   │   │   │   ā”œā”€ā”€ execute-command-handler.js
│   │   │   │   ā”œā”€ā”€ execute-command-handler.js.map
│   │   │   │   ā”œā”€ā”€ file-operation-handler.d.ts
│   │   │   │   ā”œā”€ā”€ file-operation-handler.d.ts.map
│   │   │   │   ā”œā”€ā”€ file-operation-handler.js
│   │   │   │   ā”œā”€ā”€ file-operation-handler.js.map
│   │   │   │   ā”œā”€ā”€ folding-range-provider.d.ts
│   │   │   │   ā”œā”€ā”€ folding-range-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ folding-range-provider.js
│   │   │   │   ā”œā”€ā”€ folding-range-provider.js.map
│   │   │   │   ā”œā”€ā”€ formatter.d.ts
│   │   │   │   ā”œā”€ā”€ formatter.d.ts.map
│   │   │   │   ā”œā”€ā”€ formatter.js
│   │   │   │   ā”œā”€ā”€ formatter.js.map
│   │   │   │   ā”œā”€ā”€ fuzzy-matcher.d.ts
│   │   │   │   ā”œā”€ā”€ fuzzy-matcher.d.ts.map
│   │   │   │   ā”œā”€ā”€ fuzzy-matcher.js
│   │   │   │   ā”œā”€ā”€ fuzzy-matcher.js.map
│   │   │   │   ā”œā”€ā”€ hover-provider.d.ts
│   │   │   │   ā”œā”€ā”€ hover-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ hover-provider.js
│   │   │   │   ā”œā”€ā”€ hover-provider.js.map
│   │   │   │   ā”œā”€ā”€ implementation-provider.d.ts
│   │   │   │   ā”œā”€ā”€ implementation-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ implementation-provider.js
│   │   │   │   ā”œā”€ā”€ implementation-provider.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ inlay-hint-provider.d.ts
│   │   │   │   ā”œā”€ā”€ inlay-hint-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ inlay-hint-provider.js
│   │   │   │   ā”œā”€ā”€ inlay-hint-provider.js.map
│   │   │   │   ā”œā”€ā”€ language-server.d.ts
│   │   │   │   ā”œā”€ā”€ language-server.d.ts.map
│   │   │   │   ā”œā”€ā”€ language-server.js
│   │   │   │   ā”œā”€ā”€ language-server.js.map
│   │   │   │   ā”œā”€ā”€ lsp-services.d.ts
│   │   │   │   ā”œā”€ā”€ lsp-services.d.ts.map
│   │   │   │   ā”œā”€ā”€ lsp-services.js
│   │   │   │   ā”œā”€ā”€ lsp-services.js.map
│   │   │   │   ā”œā”€ā”€ node-kind-provider.d.ts
│   │   │   │   ā”œā”€ā”€ node-kind-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ node-kind-provider.js
│   │   │   │   ā”œā”€ā”€ node-kind-provider.js.map
│   │   │   │   ā”œā”€ā”€ normalized-text-documents.d.ts
│   │   │   │   ā”œā”€ā”€ normalized-text-documents.d.ts.map
│   │   │   │   ā”œā”€ā”€ normalized-text-documents.js
│   │   │   │   ā”œā”€ā”€ normalized-text-documents.js.map
│   │   │   │   ā”œā”€ā”€ references-provider.d.ts
│   │   │   │   ā”œā”€ā”€ references-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ references-provider.js
│   │   │   │   ā”œā”€ā”€ references-provider.js.map
│   │   │   │   ā”œā”€ā”€ rename-provider.d.ts
│   │   │   │   ā”œā”€ā”€ rename-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ rename-provider.js
│   │   │   │   ā”œā”€ā”€ rename-provider.js.map
│   │   │   │   ā”œā”€ā”€ semantic-token-provider.d.ts
│   │   │   │   ā”œā”€ā”€ semantic-token-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ semantic-token-provider.js
│   │   │   │   ā”œā”€ā”€ semantic-token-provider.js.map
│   │   │   │   ā”œā”€ā”€ signature-help-provider.d.ts
│   │   │   │   ā”œā”€ā”€ signature-help-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ signature-help-provider.js
│   │   │   │   ā”œā”€ā”€ signature-help-provider.js.map
│   │   │   │   ā”œā”€ā”€ type-hierarchy-provider.d.ts
│   │   │   │   ā”œā”€ā”€ type-hierarchy-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ type-hierarchy-provider.js
│   │   │   │   ā”œā”€ā”€ type-hierarchy-provider.js.map
│   │   │   │   ā”œā”€ā”€ type-provider.d.ts
│   │   │   │   ā”œā”€ā”€ type-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ type-provider.js
│   │   │   │   ā”œā”€ā”€ type-provider.js.map
│   │   │   │   ā”œā”€ā”€ workspace-symbol-provider.d.ts
│   │   │   │   ā”œā”€ā”€ workspace-symbol-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ workspace-symbol-provider.js
│   │   │   │   └── workspace-symbol-provider.js.map
│   │   │   ā”œā”€ā”€ node
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ node-file-system-provider.d.ts
│   │   │   │   ā”œā”€ā”€ node-file-system-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ node-file-system-provider.js
│   │   │   │   ā”œā”€ā”€ node-file-system-provider.js.map
│   │   │   │   ā”œā”€ā”€ worker-thread-async-parser.d.ts
│   │   │   │   ā”œā”€ā”€ worker-thread-async-parser.d.ts.map
│   │   │   │   ā”œā”€ā”€ worker-thread-async-parser.js
│   │   │   │   └── worker-thread-async-parser.js.map
│   │   │   ā”œā”€ā”€ parser
│   │   │   │   ā”œā”€ā”€ async-parser.d.ts
│   │   │   │   ā”œā”€ā”€ async-parser.d.ts.map
│   │   │   │   ā”œā”€ā”€ async-parser.js
│   │   │   │   ā”œā”€ā”€ async-parser.js.map
│   │   │   │   ā”œā”€ā”€ completion-parser-builder.d.ts
│   │   │   │   ā”œā”€ā”€ completion-parser-builder.d.ts.map
│   │   │   │   ā”œā”€ā”€ completion-parser-builder.js
│   │   │   │   ā”œā”€ā”€ completion-parser-builder.js.map
│   │   │   │   ā”œā”€ā”€ cst-node-builder.d.ts
│   │   │   │   ā”œā”€ā”€ cst-node-builder.d.ts.map
│   │   │   │   ā”œā”€ā”€ cst-node-builder.js
│   │   │   │   ā”œā”€ā”€ cst-node-builder.js.map
│   │   │   │   ā”œā”€ā”€ indentation-aware.d.ts
│   │   │   │   ā”œā”€ā”€ indentation-aware.d.ts.map
│   │   │   │   ā”œā”€ā”€ indentation-aware.js
│   │   │   │   ā”œā”€ā”€ indentation-aware.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ langium-parser-builder.d.ts
│   │   │   │   ā”œā”€ā”€ langium-parser-builder.d.ts.map
│   │   │   │   ā”œā”€ā”€ langium-parser-builder.js
│   │   │   │   ā”œā”€ā”€ langium-parser-builder.js.map
│   │   │   │   ā”œā”€ā”€ langium-parser.d.ts
│   │   │   │   ā”œā”€ā”€ langium-parser.d.ts.map
│   │   │   │   ā”œā”€ā”€ langium-parser.js
│   │   │   │   ā”œā”€ā”€ langium-parser.js.map
│   │   │   │   ā”œā”€ā”€ lexer.d.ts
│   │   │   │   ā”œā”€ā”€ lexer.d.ts.map
│   │   │   │   ā”œā”€ā”€ lexer.js
│   │   │   │   ā”œā”€ā”€ lexer.js.map
│   │   │   │   ā”œā”€ā”€ parser-builder-base.d.ts
│   │   │   │   ā”œā”€ā”€ parser-builder-base.d.ts.map
│   │   │   │   ā”œā”€ā”€ parser-builder-base.js
│   │   │   │   ā”œā”€ā”€ parser-builder-base.js.map
│   │   │   │   ā”œā”€ā”€ parser-config.d.ts
│   │   │   │   ā”œā”€ā”€ parser-config.d.ts.map
│   │   │   │   ā”œā”€ā”€ parser-config.js
│   │   │   │   ā”œā”€ā”€ parser-config.js.map
│   │   │   │   ā”œā”€ā”€ token-builder.d.ts
│   │   │   │   ā”œā”€ā”€ token-builder.d.ts.map
│   │   │   │   ā”œā”€ā”€ token-builder.js
│   │   │   │   ā”œā”€ā”€ token-builder.js.map
│   │   │   │   ā”œā”€ā”€ value-converter.d.ts
│   │   │   │   ā”œā”€ā”€ value-converter.d.ts.map
│   │   │   │   ā”œā”€ā”€ value-converter.js
│   │   │   │   └── value-converter.js.map
│   │   │   ā”œā”€ā”€ references
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ linker.d.ts
│   │   │   │   ā”œā”€ā”€ linker.d.ts.map
│   │   │   │   ā”œā”€ā”€ linker.js
│   │   │   │   ā”œā”€ā”€ linker.js.map
│   │   │   │   ā”œā”€ā”€ name-provider.d.ts
│   │   │   │   ā”œā”€ā”€ name-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ name-provider.js
│   │   │   │   ā”œā”€ā”€ name-provider.js.map
│   │   │   │   ā”œā”€ā”€ references.d.ts
│   │   │   │   ā”œā”€ā”€ references.d.ts.map
│   │   │   │   ā”œā”€ā”€ references.js
│   │   │   │   ā”œā”€ā”€ references.js.map
│   │   │   │   ā”œā”€ā”€ scope-computation.d.ts
│   │   │   │   ā”œā”€ā”€ scope-computation.d.ts.map
│   │   │   │   ā”œā”€ā”€ scope-computation.js
│   │   │   │   ā”œā”€ā”€ scope-computation.js.map
│   │   │   │   ā”œā”€ā”€ scope-provider.d.ts
│   │   │   │   ā”œā”€ā”€ scope-provider.d.ts.map
│   │   │   │   ā”œā”€ā”€ scope-provider.js
│   │   │   │   ā”œā”€ā”€ scope-provider.js.map
│   │   │   │   ā”œā”€ā”€ scope.d.ts
│   │   │   │   ā”œā”€ā”€ scope.d.ts.map
│   │   │   │   ā”œā”€ā”€ scope.js
│   │   │   │   └── scope.js.map
│   │   │   ā”œā”€ā”€ serializer
│   │   │   │   ā”œā”€ā”€ hydrator.d.ts
│   │   │   │   ā”œā”€ā”€ hydrator.d.ts.map
│   │   │   │   ā”œā”€ā”€ hydrator.js
│   │   │   │   ā”œā”€ā”€ hydrator.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ json-serializer.d.ts
│   │   │   │   ā”œā”€ā”€ json-serializer.d.ts.map
│   │   │   │   ā”œā”€ā”€ json-serializer.js
│   │   │   │   └── json-serializer.js.map
│   │   │   ā”œā”€ā”€ service-registry.d.ts
│   │   │   ā”œā”€ā”€ service-registry.d.ts.map
│   │   │   ā”œā”€ā”€ service-registry.js
│   │   │   ā”œā”€ā”€ service-registry.js.map
│   │   │   ā”œā”€ā”€ services.d.ts
│   │   │   ā”œā”€ā”€ services.d.ts.map
│   │   │   ā”œā”€ā”€ services.js
│   │   │   ā”œā”€ā”€ services.js.map
│   │   │   ā”œā”€ā”€ syntax-tree.d.ts
│   │   │   ā”œā”€ā”€ syntax-tree.d.ts.map
│   │   │   ā”œā”€ā”€ syntax-tree.js
│   │   │   ā”œā”€ā”€ syntax-tree.js.map
│   │   │   ā”œā”€ā”€ test
│   │   │   │   ā”œā”€ā”€ grammar-coverage.d.ts
│   │   │   │   ā”œā”€ā”€ grammar-coverage.d.ts.map
│   │   │   │   ā”œā”€ā”€ grammar-coverage.js
│   │   │   │   ā”œā”€ā”€ grammar-coverage.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ langium-test.d.ts
│   │   │   │   ā”œā”€ā”€ langium-test.d.ts.map
│   │   │   │   ā”œā”€ā”€ langium-test.js
│   │   │   │   ā”œā”€ā”€ langium-test.js.map
│   │   │   │   ā”œā”€ā”€ virtual-file-system.d.ts
│   │   │   │   ā”œā”€ā”€ virtual-file-system.d.ts.map
│   │   │   │   ā”œā”€ā”€ virtual-file-system.js
│   │   │   │   └── virtual-file-system.js.map
│   │   │   ā”œā”€ā”€ utils
│   │   │   │   ā”œā”€ā”€ ast-utils.d.ts
│   │   │   │   ā”œā”€ā”€ ast-utils.d.ts.map
│   │   │   │   ā”œā”€ā”€ ast-utils.js
│   │   │   │   ā”œā”€ā”€ ast-utils.js.map
│   │   │   │   ā”œā”€ā”€ caching.d.ts
│   │   │   │   ā”œā”€ā”€ caching.d.ts.map
│   │   │   │   ā”œā”€ā”€ caching.js
│   │   │   │   ā”œā”€ā”€ caching.js.map
│   │   │   │   ā”œā”€ā”€ cancellation.d.ts
│   │   │   │   ā”œā”€ā”€ cancellation.d.ts.map
│   │   │   │   ā”œā”€ā”€ cancellation.js
│   │   │   │   ā”œā”€ā”€ cancellation.js.map
│   │   │   │   ā”œā”€ā”€ collections.d.ts
│   │   │   │   ā”œā”€ā”€ collections.d.ts.map
│   │   │   │   ā”œā”€ā”€ collections.js
│   │   │   │   ā”œā”€ā”€ collections.js.map
│   │   │   │   ā”œā”€ā”€ cst-utils.d.ts
│   │   │   │   ā”œā”€ā”€ cst-utils.d.ts.map
│   │   │   │   ā”œā”€ā”€ cst-utils.js
│   │   │   │   ā”œā”€ā”€ cst-utils.js.map
│   │   │   │   ā”œā”€ā”€ disposable.d.ts
│   │   │   │   ā”œā”€ā”€ disposable.d.ts.map
│   │   │   │   ā”œā”€ā”€ disposable.js
│   │   │   │   ā”œā”€ā”€ disposable.js.map
│   │   │   │   ā”œā”€ā”€ errors.d.ts
│   │   │   │   ā”œā”€ā”€ errors.d.ts.map
│   │   │   │   ā”œā”€ā”€ errors.js
│   │   │   │   ā”œā”€ā”€ errors.js.map
│   │   │   │   ā”œā”€ā”€ event.d.ts
│   │   │   │   ā”œā”€ā”€ event.d.ts.map
│   │   │   │   ā”œā”€ā”€ event.js
│   │   │   │   ā”œā”€ā”€ event.js.map
│   │   │   │   ā”œā”€ā”€ grammar-loader.d.ts
│   │   │   │   ā”œā”€ā”€ grammar-loader.d.ts.map
│   │   │   │   ā”œā”€ā”€ grammar-loader.js
│   │   │   │   ā”œā”€ā”€ grammar-loader.js.map
│   │   │   │   ā”œā”€ā”€ grammar-utils.d.ts
│   │   │   │   ā”œā”€ā”€ grammar-utils.d.ts.map
│   │   │   │   ā”œā”€ā”€ grammar-utils.js
│   │   │   │   ā”œā”€ā”€ grammar-utils.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ promise-utils.d.ts
│   │   │   │   ā”œā”€ā”€ promise-utils.d.ts.map
│   │   │   │   ā”œā”€ā”€ promise-utils.js
│   │   │   │   ā”œā”€ā”€ promise-utils.js.map
│   │   │   │   ā”œā”€ā”€ regexp-utils.d.ts
│   │   │   │   ā”œā”€ā”€ regexp-utils.d.ts.map
│   │   │   │   ā”œā”€ā”€ regexp-utils.js
│   │   │   │   ā”œā”€ā”€ regexp-utils.js.map
│   │   │   │   ā”œā”€ā”€ stream.d.ts
│   │   │   │   ā”œā”€ā”€ stream.d.ts.map
│   │   │   │   ā”œā”€ā”€ stream.js
│   │   │   │   ā”œā”€ā”€ stream.js.map
│   │   │   │   ā”œā”€ā”€ uri-utils.d.ts
│   │   │   │   ā”œā”€ā”€ uri-utils.d.ts.map
│   │   │   │   ā”œā”€ā”€ uri-utils.js
│   │   │   │   └── uri-utils.js.map
│   │   │   ā”œā”€ā”€ validation
│   │   │   │   ā”œā”€ā”€ document-validator.d.ts
│   │   │   │   ā”œā”€ā”€ document-validator.d.ts.map
│   │   │   │   ā”œā”€ā”€ document-validator.js
│   │   │   │   ā”œā”€ā”€ document-validator.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ validation-registry.d.ts
│   │   │   │   ā”œā”€ā”€ validation-registry.d.ts.map
│   │   │   │   ā”œā”€ā”€ validation-registry.js
│   │   │   │   └── validation-registry.js.map
│   │   │   └── workspace
│   │   │       ā”œā”€ā”€ ast-descriptions.d.ts
│   │   │       ā”œā”€ā”€ ast-descriptions.d.ts.map
│   │   │       ā”œā”€ā”€ ast-descriptions.js
│   │   │       ā”œā”€ā”€ ast-descriptions.js.map
│   │   │       ā”œā”€ā”€ ast-node-locator.d.ts
│   │   │       ā”œā”€ā”€ ast-node-locator.d.ts.map
│   │   │       ā”œā”€ā”€ ast-node-locator.js
│   │   │       ā”œā”€ā”€ ast-node-locator.js.map
│   │   │       ā”œā”€ā”€ configuration.d.ts
│   │   │       ā”œā”€ā”€ configuration.d.ts.map
│   │   │       ā”œā”€ā”€ configuration.js
│   │   │       ā”œā”€ā”€ configuration.js.map
│   │   │       ā”œā”€ā”€ document-builder.d.ts
│   │   │       ā”œā”€ā”€ document-builder.d.ts.map
│   │   │       ā”œā”€ā”€ document-builder.js
│   │   │       ā”œā”€ā”€ document-builder.js.map
│   │   │       ā”œā”€ā”€ document-trie.d.ts
│   │   │       ā”œā”€ā”€ document-trie.d.ts.map
│   │   │       ā”œā”€ā”€ document-trie.js
│   │   │       ā”œā”€ā”€ document-trie.js.map
│   │   │       ā”œā”€ā”€ documents.d.ts
│   │   │       ā”œā”€ā”€ documents.d.ts.map
│   │   │       ā”œā”€ā”€ documents.js
│   │   │       ā”œā”€ā”€ documents.js.map
│   │   │       ā”œā”€ā”€ environment.d.ts
│   │   │       ā”œā”€ā”€ environment.d.ts.map
│   │   │       ā”œā”€ā”€ environment.js
│   │   │       ā”œā”€ā”€ environment.js.map
│   │   │       ā”œā”€ā”€ file-system-provider.d.ts
│   │   │       ā”œā”€ā”€ file-system-provider.d.ts.map
│   │   │       ā”œā”€ā”€ file-system-provider.js
│   │   │       ā”œā”€ā”€ file-system-provider.js.map
│   │   │       ā”œā”€ā”€ index-manager.d.ts
│   │   │       ā”œā”€ā”€ index-manager.d.ts.map
│   │   │       ā”œā”€ā”€ index-manager.js
│   │   │       ā”œā”€ā”€ index-manager.js.map
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ uri-trie.d.ts
│   │   │       ā”œā”€ā”€ uri-trie.d.ts.map
│   │   │       ā”œā”€ā”€ uri-trie.js
│   │   │       ā”œā”€ā”€ uri-trie.js.map
│   │   │       ā”œā”€ā”€ workspace-lock.d.ts
│   │   │       ā”œā”€ā”€ workspace-lock.d.ts.map
│   │   │       ā”œā”€ā”€ workspace-lock.js
│   │   │       ā”œā”€ā”€ workspace-lock.js.map
│   │   │       ā”œā”€ā”€ workspace-manager.d.ts
│   │   │       ā”œā”€ā”€ workspace-manager.d.ts.map
│   │   │       ā”œā”€ā”€ workspace-manager.js
│   │   │       └── workspace-manager.js.map
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ default-module.ts
│   │       ā”œā”€ā”€ dependency-injection.ts
│   │       ā”œā”€ā”€ documentation
│   │       │   ā”œā”€ā”€ comment-provider.ts
│   │       │   ā”œā”€ā”€ documentation-provider.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   └── jsdoc.ts
│   │       ā”œā”€ā”€ generate
│   │       │   ā”œā”€ā”€ generator-node.ts
│   │       │   ā”œā”€ā”€ generator-tracing.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   ā”œā”€ā”€ node-joiner.ts
│   │       │   ā”œā”€ā”€ node-processor.ts
│   │       │   ā”œā”€ā”€ template-node.ts
│   │       │   └── template-string.ts
│   │       ā”œā”€ā”€ grammar
│   │       │   ā”œā”€ā”€ ast-reflection-interpreter.ts
│   │       │   ā”œā”€ā”€ generated
│   │       │   │   ā”œā”€ā”€ grammar.ts
│   │       │   │   └── module.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   ā”œā”€ā”€ internal-grammar-util.ts
│   │       │   ā”œā”€ā”€ langium-grammar-module.ts
│   │       │   ā”œā”€ā”€ langium-grammar.langium
│   │       │   ā”œā”€ā”€ lsp
│   │       │   │   ā”œā”€ā”€ grammar-call-hierarchy.ts
│   │       │   │   ā”œā”€ā”€ grammar-code-actions.ts
│   │       │   │   ā”œā”€ā”€ grammar-completion-provider.ts
│   │       │   │   ā”œā”€ā”€ grammar-definition.ts
│   │       │   │   ā”œā”€ā”€ grammar-folding-ranges.ts
│   │       │   │   ā”œā”€ā”€ grammar-formatter.ts
│   │       │   │   ā”œā”€ā”€ grammar-semantic-tokens.ts
│   │       │   │   └── grammar-type-hierarchy.ts
│   │       │   ā”œā”€ā”€ references
│   │       │   │   ā”œā”€ā”€ grammar-naming.ts
│   │       │   │   ā”œā”€ā”€ grammar-references.ts
│   │       │   │   └── grammar-scope.ts
│   │       │   ā”œā”€ā”€ type-system
│   │       │   │   ā”œā”€ā”€ ast-collector.ts
│   │       │   │   ā”œā”€ā”€ index.ts
│   │       │   │   ā”œā”€ā”€ type-collector
│   │       │   │   │   ā”œā”€ā”€ all-types.ts
│   │       │   │   │   ā”œā”€ā”€ declared-types.ts
│   │       │   │   │   ā”œā”€ā”€ inferred-types.ts
│   │       │   │   │   ā”œā”€ā”€ plain-types.ts
│   │       │   │   │   └── types.ts
│   │       │   │   └── types-util.ts
│   │       │   ā”œā”€ā”€ validation
│   │       │   │   ā”œā”€ā”€ types-validator.ts
│   │       │   │   ā”œā”€ā”€ validation-resources-collector.ts
│   │       │   │   └── validator.ts
│   │       │   └── workspace
│   │       │       └── documents.ts
│   │       ā”œā”€ā”€ index.ts
│   │       ā”œā”€ā”€ languages
│   │       │   ā”œā”€ā”€ generated
│   │       │   │   └── ast.ts
│   │       │   ā”œā”€ā”€ grammar-config.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   └── language-meta-data.ts
│   │       ā”œā”€ā”€ lsp
│   │       │   ā”œā”€ā”€ call-hierarchy-provider.ts
│   │       │   ā”œā”€ā”€ code-action.ts
│   │       │   ā”œā”€ā”€ code-lens-provider.ts
│   │       │   ā”œā”€ā”€ completion
│   │       │   │   ā”œā”€ā”€ completion-provider.ts
│   │       │   │   └── follow-element-computation.ts
│   │       │   ā”œā”€ā”€ declaration-provider.ts
│   │       │   ā”œā”€ā”€ default-lsp-module.ts
│   │       │   ā”œā”€ā”€ definition-provider.ts
│   │       │   ā”œā”€ā”€ document-highlight-provider.ts
│   │       │   ā”œā”€ā”€ document-link-provider.ts
│   │       │   ā”œā”€ā”€ document-symbol-provider.ts
│   │       │   ā”œā”€ā”€ document-update-handler.ts
│   │       │   ā”œā”€ā”€ execute-command-handler.ts
│   │       │   ā”œā”€ā”€ file-operation-handler.ts
│   │       │   ā”œā”€ā”€ folding-range-provider.ts
│   │       │   ā”œā”€ā”€ formatter.ts
│   │       │   ā”œā”€ā”€ fuzzy-matcher.ts
│   │       │   ā”œā”€ā”€ hover-provider.ts
│   │       │   ā”œā”€ā”€ implementation-provider.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   ā”œā”€ā”€ inlay-hint-provider.ts
│   │       │   ā”œā”€ā”€ language-server.ts
│   │       │   ā”œā”€ā”€ lsp-services.ts
│   │       │   ā”œā”€ā”€ node-kind-provider.ts
│   │       │   ā”œā”€ā”€ normalized-text-documents.ts
│   │       │   ā”œā”€ā”€ references-provider.ts
│   │       │   ā”œā”€ā”€ rename-provider.ts
│   │       │   ā”œā”€ā”€ semantic-token-provider.ts
│   │       │   ā”œā”€ā”€ signature-help-provider.ts
│   │       │   ā”œā”€ā”€ type-hierarchy-provider.ts
│   │       │   ā”œā”€ā”€ type-provider.ts
│   │       │   └── workspace-symbol-provider.ts
│   │       ā”œā”€ā”€ node
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   ā”œā”€ā”€ node-file-system-provider.ts
│   │       │   └── worker-thread-async-parser.ts
│   │       ā”œā”€ā”€ parser
│   │       │   ā”œā”€ā”€ async-parser.ts
│   │       │   ā”œā”€ā”€ completion-parser-builder.ts
│   │       │   ā”œā”€ā”€ cst-node-builder.ts
│   │       │   ā”œā”€ā”€ indentation-aware.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   ā”œā”€ā”€ langium-parser-builder.ts
│   │       │   ā”œā”€ā”€ langium-parser.ts
│   │       │   ā”œā”€ā”€ lexer.ts
│   │       │   ā”œā”€ā”€ parser-builder-base.ts
│   │       │   ā”œā”€ā”€ parser-config.ts
│   │       │   ā”œā”€ā”€ token-builder.ts
│   │       │   └── value-converter.ts
│   │       ā”œā”€ā”€ references
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   ā”œā”€ā”€ linker.ts
│   │       │   ā”œā”€ā”€ name-provider.ts
│   │       │   ā”œā”€ā”€ references.ts
│   │       │   ā”œā”€ā”€ scope-computation.ts
│   │       │   ā”œā”€ā”€ scope-provider.ts
│   │       │   └── scope.ts
│   │       ā”œā”€ā”€ serializer
│   │       │   ā”œā”€ā”€ hydrator.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   └── json-serializer.ts
│   │       ā”œā”€ā”€ service-registry.ts
│   │       ā”œā”€ā”€ services.ts
│   │       ā”œā”€ā”€ syntax-tree.ts
│   │       ā”œā”€ā”€ test
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   └── langium-test.ts
│   │       ā”œā”€ā”€ utils
│   │       │   ā”œā”€ā”€ ast-utils.ts
│   │       │   ā”œā”€ā”€ caching.ts
│   │       │   ā”œā”€ā”€ cancellation.ts
│   │       │   ā”œā”€ā”€ collections.ts
│   │       │   ā”œā”€ā”€ cst-utils.ts
│   │       │   ā”œā”€ā”€ disposable.ts
│   │       │   ā”œā”€ā”€ errors.ts
│   │       │   ā”œā”€ā”€ event.ts
│   │       │   ā”œā”€ā”€ grammar-loader.ts
│   │       │   ā”œā”€ā”€ grammar-utils.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   ā”œā”€ā”€ promise-utils.ts
│   │       │   ā”œā”€ā”€ regexp-utils.ts
│   │       │   ā”œā”€ā”€ stream.ts
│   │       │   └── uri-utils.ts
│   │       ā”œā”€ā”€ validation
│   │       │   ā”œā”€ā”€ document-validator.ts
│   │       │   ā”œā”€ā”€ index.ts
│   │       │   └── validation-registry.ts
│   │       └── workspace
│   │           ā”œā”€ā”€ ast-descriptions.ts
│   │           ā”œā”€ā”€ ast-node-locator.ts
│   │           ā”œā”€ā”€ configuration.ts
│   │           ā”œā”€ā”€ document-builder.ts
│   │           ā”œā”€ā”€ documents.ts
│   │           ā”œā”€ā”€ file-system-provider.ts
│   │           ā”œā”€ā”€ index-manager.ts
│   │           ā”œā”€ā”€ index.ts
│   │           ā”œā”€ā”€ workspace-lock.ts
│   │           └── workspace-manager.ts
│   ā”œā”€ā”€ layout-base
│   │   ā”œā”€ā”€ .babelrc
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bower.json
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ layout-base.js
│   │   ā”œā”€ā”€ layout-schema.png
│   │   ā”œā”€ā”€ nbproject
│   │   │   ā”œā”€ā”€ private
│   │   │   │   ā”œā”€ā”€ private.properties
│   │   │   │   └── private.xml
│   │   │   ā”œā”€ā”€ project.properties
│   │   │   └── project.xml
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ LEdge.js
│   │   │   ā”œā”€ā”€ LGraph.js
│   │   │   ā”œā”€ā”€ LGraphManager.js
│   │   │   ā”œā”€ā”€ LGraphObject.js
│   │   │   ā”œā”€ā”€ LNode.js
│   │   │   ā”œā”€ā”€ Layout.js
│   │   │   ā”œā”€ā”€ LayoutConstants.js
│   │   │   ā”œā”€ā”€ fd
│   │   │   │   ā”œā”€ā”€ FDLayout.js
│   │   │   │   ā”œā”€ā”€ FDLayoutConstants.js
│   │   │   │   ā”œā”€ā”€ FDLayoutEdge.js
│   │   │   │   └── FDLayoutNode.js
│   │   │   └── util
│   │   │       ā”œā”€ā”€ DimensionD.js
│   │   │       ā”œā”€ā”€ Emitter.js
│   │   │       ā”œā”€ā”€ HashMap.js
│   │   │       ā”œā”€ā”€ HashSet.js
│   │   │       ā”œā”€ā”€ IGeometry.js
│   │   │       ā”œā”€ā”€ IMath.js
│   │   │       ā”œā”€ā”€ Integer.js
│   │   │       ā”œā”€ā”€ LinkedList.js
│   │   │       ā”œā”€ā”€ Point.js
│   │   │       ā”œā”€ā”€ PointD.js
│   │   │       ā”œā”€ā”€ Quicksort.js
│   │   │       ā”œā”€ā”€ RandomSeed.js
│   │   │       ā”œā”€ā”€ RectangleD.js
│   │   │       ā”œā”€ā”€ Transform.js
│   │   │       ā”œā”€ā”€ UniqueIDGeneretor.js
│   │   │       └── alignment
│   │   │           └── NeedlemanWunsch.js
│   │   └── webpack.config.js
│   ā”œā”€ā”€ levn
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ cast.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── parse-string.js
│   │   └── package.json
│   ā”œā”€ā”€ lilconfig
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── src
│   │       ā”œā”€ā”€ index.d.ts
│   │       └── index.js
│   ā”œā”€ā”€ linkify-it
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ build
│   │   │   └── index.cjs.js
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   └── re.mjs
│   │   └── package.json
│   ā”œā”€ā”€ lint-staged
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ MIGRATION.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── lint-staged.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ chunkFiles.js
│   │   │   ā”œā”€ā”€ configFiles.js
│   │   │   ā”œā”€ā”€ dynamicImport.js
│   │   │   ā”œā”€ā”€ execGit.js
│   │   │   ā”œā”€ā”€ figures.js
│   │   │   ā”œā”€ā”€ file.js
│   │   │   ā”œā”€ā”€ generateTasks.js
│   │   │   ā”œā”€ā”€ getDiffCommand.js
│   │   │   ā”œā”€ā”€ getFunctionTask.js
│   │   │   ā”œā”€ā”€ getRenderer.js
│   │   │   ā”œā”€ā”€ getSpawnedTask.js
│   │   │   ā”œā”€ā”€ getSpawnedTasks.js
│   │   │   ā”œā”€ā”€ getStagedFiles.js
│   │   │   ā”œā”€ā”€ gitWorkflow.js
│   │   │   ā”œā”€ā”€ groupFilesByConfig.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ loadConfig.js
│   │   │   ā”œā”€ā”€ messages.js
│   │   │   ā”œā”€ā”€ normalizePath.js
│   │   │   ā”œā”€ā”€ parseGitZOutput.js
│   │   │   ā”œā”€ā”€ printTaskOutput.js
│   │   │   ā”œā”€ā”€ readStdin.js
│   │   │   ā”œā”€ā”€ resolveConfig.js
│   │   │   ā”œā”€ā”€ resolveGitRepo.js
│   │   │   ā”œā”€ā”€ runAll.js
│   │   │   ā”œā”€ā”€ searchConfigs.js
│   │   │   ā”œā”€ā”€ state.js
│   │   │   ā”œā”€ā”€ symbols.js
│   │   │   ā”œā”€ā”€ validateBraces.js
│   │   │   ā”œā”€ā”€ validateConfig.js
│   │   │   ā”œā”€ā”€ validateOptions.js
│   │   │   └── version.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── commander
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ Readme.md
│   │   │       ā”œā”€ā”€ esm.mjs
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ argument.js
│   │   │       │   ā”œā”€ā”€ command.js
│   │   │       │   ā”œā”€ā”€ error.js
│   │   │       │   ā”œā”€ā”€ help.js
│   │   │       │   ā”œā”€ā”€ option.js
│   │   │       │   └── suggestSimilar.js
│   │   │       ā”œā”€ā”€ package-support.json
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── typings
│   │   │           ā”œā”€ā”€ esm.d.mts
│   │   │           └── index.d.ts
│   │   └── package.json
│   ā”œā”€ā”€ liquidjs
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── liquid.js
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ build
│   │   │   │   ā”œā”€ā”€ fs-impl-browser.d.ts
│   │   │   │   ā”œā”€ā”€ fs-impl-browser.spec.d.ts
│   │   │   │   ā”œā”€ā”€ streamed-emitter-browser.d.ts
│   │   │   │   └── streamed-emitter-browser.spec.d.ts
│   │   │   ā”œā”€ā”€ cache
│   │   │   │   ā”œā”€ā”€ cache.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ lru.d.ts
│   │   │   │   └── lru.spec.d.ts
│   │   │   ā”œā”€ā”€ context
│   │   │   │   ā”œā”€ā”€ block-mode.d.ts
│   │   │   │   ā”œā”€ā”€ context.d.ts
│   │   │   │   ā”œā”€ā”€ context.spec.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   └── scope.d.ts
│   │   │   ā”œā”€ā”€ drop
│   │   │   │   ā”œā”€ā”€ blank-drop.d.ts
│   │   │   │   ā”œā”€ā”€ block-drop.d.ts
│   │   │   │   ā”œā”€ā”€ comparable.d.ts
│   │   │   │   ā”œā”€ā”€ drop.d.ts
│   │   │   │   ā”œā”€ā”€ empty-drop.d.ts
│   │   │   │   ā”œā”€ā”€ forloop-drop.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ null-drop.d.ts
│   │   │   │   └── tablerowloop-drop.d.ts
│   │   │   ā”œā”€ā”€ emitters
│   │   │   │   ā”œā”€ā”€ emitter.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ keeping-type-emitter.d.ts
│   │   │   │   ā”œā”€ā”€ simple-emitter.d.ts
│   │   │   │   └── streamed-emitter.d.ts
│   │   │   ā”œā”€ā”€ filters
│   │   │   │   ā”œā”€ā”€ array.d.ts
│   │   │   │   ā”œā”€ā”€ date.d.ts
│   │   │   │   ā”œā”€ā”€ html.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ math.d.ts
│   │   │   │   ā”œā”€ā”€ misc.d.ts
│   │   │   │   ā”œā”€ā”€ string.d.ts
│   │   │   │   └── url.d.ts
│   │   │   ā”œā”€ā”€ fs
│   │   │   │   ā”œā”€ā”€ fs-impl.d.ts
│   │   │   │   ā”œā”€ā”€ fs-impl.spec.d.ts
│   │   │   │   ā”œā”€ā”€ fs.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ loader.d.ts
│   │   │   │   ā”œā”€ā”€ loader.spec.d.ts
│   │   │   │   ā”œā”€ā”€ map-fs.d.ts
│   │   │   │   ā”œā”€ā”€ map-fs.spec.d.ts
│   │   │   │   └── node-require.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ liquid-options.d.ts
│   │   │   ā”œā”€ā”€ liquid-options.spec.d.ts
│   │   │   ā”œā”€ā”€ liquid.browser.min.js
│   │   │   ā”œā”€ā”€ liquid.browser.min.js.map
│   │   │   ā”œā”€ā”€ liquid.browser.mjs
│   │   │   ā”œā”€ā”€ liquid.browser.umd.js
│   │   │   ā”œā”€ā”€ liquid.browser.umd.js.map
│   │   │   ā”œā”€ā”€ liquid.d.ts
│   │   │   ā”œā”€ā”€ liquid.node.js
│   │   │   ā”œā”€ā”€ liquid.node.mjs
│   │   │   ā”œā”€ā”€ parser
│   │   │   │   ā”œā”€ā”€ filter-arg.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ parse-stream.d.ts
│   │   │   │   ā”œā”€ā”€ parse-stream.spec.d.ts
│   │   │   │   ā”œā”€ā”€ parser.d.ts
│   │   │   │   ā”œā”€ā”€ parser.spec.d.ts
│   │   │   │   ā”œā”€ā”€ token-kind.d.ts
│   │   │   │   ā”œā”€ā”€ tokenizer.d.ts
│   │   │   │   ā”œā”€ā”€ tokenizer.spec.d.ts
│   │   │   │   └── whitespace-ctrl.d.ts
│   │   │   ā”œā”€ā”€ render
│   │   │   │   ā”œā”€ā”€ boolean.d.ts
│   │   │   │   ā”œā”€ā”€ boolean.spec.d.ts
│   │   │   │   ā”œā”€ā”€ expression.d.ts
│   │   │   │   ā”œā”€ā”€ expression.spec.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ operator.d.ts
│   │   │   │   ā”œā”€ā”€ render.d.ts
│   │   │   │   ā”œā”€ā”€ render.spec.d.ts
│   │   │   │   ā”œā”€ā”€ string.d.ts
│   │   │   │   └── string.spec.d.ts
│   │   │   ā”œā”€ā”€ tags
│   │   │   │   ā”œā”€ā”€ assign.d.ts
│   │   │   │   ā”œā”€ā”€ block.d.ts
│   │   │   │   ā”œā”€ā”€ break.d.ts
│   │   │   │   ā”œā”€ā”€ capture.d.ts
│   │   │   │   ā”œā”€ā”€ case.d.ts
│   │   │   │   ā”œā”€ā”€ comment.d.ts
│   │   │   │   ā”œā”€ā”€ continue.d.ts
│   │   │   │   ā”œā”€ā”€ cycle.d.ts
│   │   │   │   ā”œā”€ā”€ decrement.d.ts
│   │   │   │   ā”œā”€ā”€ echo.d.ts
│   │   │   │   ā”œā”€ā”€ for.d.ts
│   │   │   │   ā”œā”€ā”€ if.d.ts
│   │   │   │   ā”œā”€ā”€ include.d.ts
│   │   │   │   ā”œā”€ā”€ increment.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ inline-comment.d.ts
│   │   │   │   ā”œā”€ā”€ layout.d.ts
│   │   │   │   ā”œā”€ā”€ liquid.d.ts
│   │   │   │   ā”œā”€ā”€ raw.d.ts
│   │   │   │   ā”œā”€ā”€ render.d.ts
│   │   │   │   ā”œā”€ā”€ tablerow.d.ts
│   │   │   │   └── unless.d.ts
│   │   │   ā”œā”€ā”€ template
│   │   │   │   ā”œā”€ā”€ analysis.d.ts
│   │   │   │   ā”œā”€ā”€ analysis.spec.d.ts
│   │   │   │   ā”œā”€ā”€ filter-impl-options.d.ts
│   │   │   │   ā”œā”€ā”€ filter.d.ts
│   │   │   │   ā”œā”€ā”€ filter.spec.d.ts
│   │   │   │   ā”œā”€ā”€ hash.d.ts
│   │   │   │   ā”œā”€ā”€ hash.spec.d.ts
│   │   │   │   ā”œā”€ā”€ html.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ output.d.ts
│   │   │   │   ā”œā”€ā”€ output.spec.d.ts
│   │   │   │   ā”œā”€ā”€ tag-options-adapter.d.ts
│   │   │   │   ā”œā”€ā”€ tag.d.ts
│   │   │   │   ā”œā”€ā”€ template-impl.d.ts
│   │   │   │   ā”œā”€ā”€ template.d.ts
│   │   │   │   ā”œā”€ā”€ value.d.ts
│   │   │   │   └── value.spec.d.ts
│   │   │   ā”œā”€ā”€ tokens
│   │   │   │   ā”œā”€ā”€ delimited-token.d.ts
│   │   │   │   ā”œā”€ā”€ filter-token.d.ts
│   │   │   │   ā”œā”€ā”€ filtered-value-token.d.ts
│   │   │   │   ā”œā”€ā”€ hash-token.d.ts
│   │   │   │   ā”œā”€ā”€ html-token.d.ts
│   │   │   │   ā”œā”€ā”€ identifier-token.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ liquid-tag-token.d.ts
│   │   │   │   ā”œā”€ā”€ literal-token.d.ts
│   │   │   │   ā”œā”€ā”€ number-token.d.ts
│   │   │   │   ā”œā”€ā”€ operator-token.d.ts
│   │   │   │   ā”œā”€ā”€ output-token.d.ts
│   │   │   │   ā”œā”€ā”€ property-access-token.d.ts
│   │   │   │   ā”œā”€ā”€ quoted-token.d.ts
│   │   │   │   ā”œā”€ā”€ range-token.d.ts
│   │   │   │   ā”œā”€ā”€ tag-token.d.ts
│   │   │   │   ā”œā”€ā”€ token.d.ts
│   │   │   │   ā”œā”€ā”€ top-level-token.d.ts
│   │   │   │   └── value-token.d.ts
│   │   │   └── util
│   │   │       ā”œā”€ā”€ assert.d.ts
│   │   │       ā”œā”€ā”€ assert.spec.d.ts
│   │   │       ā”œā”€ā”€ async.d.ts
│   │   │       ā”œā”€ā”€ async.spec.d.ts
│   │   │       ā”œā”€ā”€ character.d.ts
│   │   │       ā”œā”€ā”€ error.d.ts
│   │   │       ā”œā”€ā”€ error.spec.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ intl.d.ts
│   │   │       ā”œā”€ā”€ limiter.d.ts
│   │   │       ā”œā”€ā”€ liquid-date.d.ts
│   │   │       ā”œā”€ā”€ liquid-date.spec.d.ts
│   │   │       ā”œā”€ā”€ literal.d.ts
│   │   │       ā”œā”€ā”€ operator-trie.d.ts
│   │   │       ā”œā”€ā”€ performance.d.ts
│   │   │       ā”œā”€ā”€ performance.spec.d.ts
│   │   │       ā”œā”€ā”€ strftime.d.ts
│   │   │       ā”œā”€ā”€ strftime.spec.d.ts
│   │   │       ā”œā”€ā”€ type-guards.d.ts
│   │   │       ā”œā”€ā”€ type-guards.spec.d.ts
│   │   │       ā”œā”€ā”€ underscore.d.ts
│   │   │       └── underscore.spec.d.ts
│   │   └── package.json
│   ā”œā”€ā”€ list-to-array
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── tests.js
│   ā”œā”€ā”€ listr2
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── eventemitter3
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ dist
│   │   │       │   ā”œā”€ā”€ eventemitter3.esm.js
│   │   │       │   ā”œā”€ā”€ eventemitter3.esm.min.js
│   │   │       │   ā”œā”€ā”€ eventemitter3.esm.min.js.map
│   │   │       │   ā”œā”€ā”€ eventemitter3.umd.js
│   │   │       │   ā”œā”€ā”€ eventemitter3.umd.min.js
│   │   │       │   └── eventemitter3.umd.min.js.map
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.mjs
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ lite-youtube-embed
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── src
│   │       ā”œā”€ā”€ lite-yt-embed.css
│   │       └── lite-yt-embed.js
│   ā”œā”€ā”€ local-pkg
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ locate-path
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ lodash
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ _DataView.js
│   │   ā”œā”€ā”€ _Hash.js
│   │   ā”œā”€ā”€ _LazyWrapper.js
│   │   ā”œā”€ā”€ _ListCache.js
│   │   ā”œā”€ā”€ _LodashWrapper.js
│   │   ā”œā”€ā”€ _Map.js
│   │   ā”œā”€ā”€ _MapCache.js
│   │   ā”œā”€ā”€ _Promise.js
│   │   ā”œā”€ā”€ _Set.js
│   │   ā”œā”€ā”€ _SetCache.js
│   │   ā”œā”€ā”€ _Stack.js
│   │   ā”œā”€ā”€ _Symbol.js
│   │   ā”œā”€ā”€ _Uint8Array.js
│   │   ā”œā”€ā”€ _WeakMap.js
│   │   ā”œā”€ā”€ _apply.js
│   │   ā”œā”€ā”€ _arrayAggregator.js
│   │   ā”œā”€ā”€ _arrayEach.js
│   │   ā”œā”€ā”€ _arrayEachRight.js
│   │   ā”œā”€ā”€ _arrayEvery.js
│   │   ā”œā”€ā”€ _arrayFilter.js
│   │   ā”œā”€ā”€ _arrayIncludes.js
│   │   ā”œā”€ā”€ _arrayIncludesWith.js
│   │   ā”œā”€ā”€ _arrayLikeKeys.js
│   │   ā”œā”€ā”€ _arrayMap.js
│   │   ā”œā”€ā”€ _arrayPush.js
│   │   ā”œā”€ā”€ _arrayReduce.js
│   │   ā”œā”€ā”€ _arrayReduceRight.js
│   │   ā”œā”€ā”€ _arraySample.js
│   │   ā”œā”€ā”€ _arraySampleSize.js
│   │   ā”œā”€ā”€ _arrayShuffle.js
│   │   ā”œā”€ā”€ _arraySome.js
│   │   ā”œā”€ā”€ _asciiSize.js
│   │   ā”œā”€ā”€ _asciiToArray.js
│   │   ā”œā”€ā”€ _asciiWords.js
│   │   ā”œā”€ā”€ _assignMergeValue.js
│   │   ā”œā”€ā”€ _assignValue.js
│   │   ā”œā”€ā”€ _assocIndexOf.js
│   │   ā”œā”€ā”€ _baseAggregator.js
│   │   ā”œā”€ā”€ _baseAssign.js
│   │   ā”œā”€ā”€ _baseAssignIn.js
│   │   ā”œā”€ā”€ _baseAssignValue.js
│   │   ā”œā”€ā”€ _baseAt.js
│   │   ā”œā”€ā”€ _baseClamp.js
│   │   ā”œā”€ā”€ _baseClone.js
│   │   ā”œā”€ā”€ _baseConforms.js
│   │   ā”œā”€ā”€ _baseConformsTo.js
│   │   ā”œā”€ā”€ _baseCreate.js
│   │   ā”œā”€ā”€ _baseDelay.js
│   │   ā”œā”€ā”€ _baseDifference.js
│   │   ā”œā”€ā”€ _baseEach.js
│   │   ā”œā”€ā”€ _baseEachRight.js
│   │   ā”œā”€ā”€ _baseEvery.js
│   │   ā”œā”€ā”€ _baseExtremum.js
│   │   ā”œā”€ā”€ _baseFill.js
│   │   ā”œā”€ā”€ _baseFilter.js
│   │   ā”œā”€ā”€ _baseFindIndex.js
│   │   ā”œā”€ā”€ _baseFindKey.js
│   │   ā”œā”€ā”€ _baseFlatten.js
│   │   ā”œā”€ā”€ _baseFor.js
│   │   ā”œā”€ā”€ _baseForOwn.js
│   │   ā”œā”€ā”€ _baseForOwnRight.js
│   │   ā”œā”€ā”€ _baseForRight.js
│   │   ā”œā”€ā”€ _baseFunctions.js
│   │   ā”œā”€ā”€ _baseGet.js
│   │   ā”œā”€ā”€ _baseGetAllKeys.js
│   │   ā”œā”€ā”€ _baseGetTag.js
│   │   ā”œā”€ā”€ _baseGt.js
│   │   ā”œā”€ā”€ _baseHas.js
│   │   ā”œā”€ā”€ _baseHasIn.js
│   │   ā”œā”€ā”€ _baseInRange.js
│   │   ā”œā”€ā”€ _baseIndexOf.js
│   │   ā”œā”€ā”€ _baseIndexOfWith.js
│   │   ā”œā”€ā”€ _baseIntersection.js
│   │   ā”œā”€ā”€ _baseInverter.js
│   │   ā”œā”€ā”€ _baseInvoke.js
│   │   ā”œā”€ā”€ _baseIsArguments.js
│   │   ā”œā”€ā”€ _baseIsArrayBuffer.js
│   │   ā”œā”€ā”€ _baseIsDate.js
│   │   ā”œā”€ā”€ _baseIsEqual.js
│   │   ā”œā”€ā”€ _baseIsEqualDeep.js
│   │   ā”œā”€ā”€ _baseIsMap.js
│   │   ā”œā”€ā”€ _baseIsMatch.js
│   │   ā”œā”€ā”€ _baseIsNaN.js
│   │   ā”œā”€ā”€ _baseIsNative.js
│   │   ā”œā”€ā”€ _baseIsRegExp.js
│   │   ā”œā”€ā”€ _baseIsSet.js
│   │   ā”œā”€ā”€ _baseIsTypedArray.js
│   │   ā”œā”€ā”€ _baseIteratee.js
│   │   ā”œā”€ā”€ _baseKeys.js
│   │   ā”œā”€ā”€ _baseKeysIn.js
│   │   ā”œā”€ā”€ _baseLodash.js
│   │   ā”œā”€ā”€ _baseLt.js
│   │   ā”œā”€ā”€ _baseMap.js
│   │   ā”œā”€ā”€ _baseMatches.js
│   │   ā”œā”€ā”€ _baseMatchesProperty.js
│   │   ā”œā”€ā”€ _baseMean.js
│   │   ā”œā”€ā”€ _baseMerge.js
│   │   ā”œā”€ā”€ _baseMergeDeep.js
│   │   ā”œā”€ā”€ _baseNth.js
│   │   ā”œā”€ā”€ _baseOrderBy.js
│   │   ā”œā”€ā”€ _basePick.js
│   │   ā”œā”€ā”€ _basePickBy.js
│   │   ā”œā”€ā”€ _baseProperty.js
│   │   ā”œā”€ā”€ _basePropertyDeep.js
│   │   ā”œā”€ā”€ _basePropertyOf.js
│   │   ā”œā”€ā”€ _basePullAll.js
│   │   ā”œā”€ā”€ _basePullAt.js
│   │   ā”œā”€ā”€ _baseRandom.js
│   │   ā”œā”€ā”€ _baseRange.js
│   │   ā”œā”€ā”€ _baseReduce.js
│   │   ā”œā”€ā”€ _baseRepeat.js
│   │   ā”œā”€ā”€ _baseRest.js
│   │   ā”œā”€ā”€ _baseSample.js
│   │   ā”œā”€ā”€ _baseSampleSize.js
│   │   ā”œā”€ā”€ _baseSet.js
│   │   ā”œā”€ā”€ _baseSetData.js
│   │   ā”œā”€ā”€ _baseSetToString.js
│   │   ā”œā”€ā”€ _baseShuffle.js
│   │   ā”œā”€ā”€ _baseSlice.js
│   │   ā”œā”€ā”€ _baseSome.js
│   │   ā”œā”€ā”€ _baseSortBy.js
│   │   ā”œā”€ā”€ _baseSortedIndex.js
│   │   ā”œā”€ā”€ _baseSortedIndexBy.js
│   │   ā”œā”€ā”€ _baseSortedUniq.js
│   │   ā”œā”€ā”€ _baseSum.js
│   │   ā”œā”€ā”€ _baseTimes.js
│   │   ā”œā”€ā”€ _baseToNumber.js
│   │   ā”œā”€ā”€ _baseToPairs.js
│   │   ā”œā”€ā”€ _baseToString.js
│   │   ā”œā”€ā”€ _baseTrim.js
│   │   ā”œā”€ā”€ _baseUnary.js
│   │   ā”œā”€ā”€ _baseUniq.js
│   │   ā”œā”€ā”€ _baseUnset.js
│   │   ā”œā”€ā”€ _baseUpdate.js
│   │   ā”œā”€ā”€ _baseValues.js
│   │   ā”œā”€ā”€ _baseWhile.js
│   │   ā”œā”€ā”€ _baseWrapperValue.js
│   │   ā”œā”€ā”€ _baseXor.js
│   │   ā”œā”€ā”€ _baseZipObject.js
│   │   ā”œā”€ā”€ _cacheHas.js
│   │   ā”œā”€ā”€ _castArrayLikeObject.js
│   │   ā”œā”€ā”€ _castFunction.js
│   │   ā”œā”€ā”€ _castPath.js
│   │   ā”œā”€ā”€ _castRest.js
│   │   ā”œā”€ā”€ _castSlice.js
│   │   ā”œā”€ā”€ _charsEndIndex.js
│   │   ā”œā”€ā”€ _charsStartIndex.js
│   │   ā”œā”€ā”€ _cloneArrayBuffer.js
│   │   ā”œā”€ā”€ _cloneBuffer.js
│   │   ā”œā”€ā”€ _cloneDataView.js
│   │   ā”œā”€ā”€ _cloneRegExp.js
│   │   ā”œā”€ā”€ _cloneSymbol.js
│   │   ā”œā”€ā”€ _cloneTypedArray.js
│   │   ā”œā”€ā”€ _compareAscending.js
│   │   ā”œā”€ā”€ _compareMultiple.js
│   │   ā”œā”€ā”€ _composeArgs.js
│   │   ā”œā”€ā”€ _composeArgsRight.js
│   │   ā”œā”€ā”€ _copyArray.js
│   │   ā”œā”€ā”€ _copyObject.js
│   │   ā”œā”€ā”€ _copySymbols.js
│   │   ā”œā”€ā”€ _copySymbolsIn.js
│   │   ā”œā”€ā”€ _coreJsData.js
│   │   ā”œā”€ā”€ _countHolders.js
│   │   ā”œā”€ā”€ _createAggregator.js
│   │   ā”œā”€ā”€ _createAssigner.js
│   │   ā”œā”€ā”€ _createBaseEach.js
│   │   ā”œā”€ā”€ _createBaseFor.js
│   │   ā”œā”€ā”€ _createBind.js
│   │   ā”œā”€ā”€ _createCaseFirst.js
│   │   ā”œā”€ā”€ _createCompounder.js
│   │   ā”œā”€ā”€ _createCtor.js
│   │   ā”œā”€ā”€ _createCurry.js
│   │   ā”œā”€ā”€ _createFind.js
│   │   ā”œā”€ā”€ _createFlow.js
│   │   ā”œā”€ā”€ _createHybrid.js
│   │   ā”œā”€ā”€ _createInverter.js
│   │   ā”œā”€ā”€ _createMathOperation.js
│   │   ā”œā”€ā”€ _createOver.js
│   │   ā”œā”€ā”€ _createPadding.js
│   │   ā”œā”€ā”€ _createPartial.js
│   │   ā”œā”€ā”€ _createRange.js
│   │   ā”œā”€ā”€ _createRecurry.js
│   │   ā”œā”€ā”€ _createRelationalOperation.js
│   │   ā”œā”€ā”€ _createRound.js
│   │   ā”œā”€ā”€ _createSet.js
│   │   ā”œā”€ā”€ _createToPairs.js
│   │   ā”œā”€ā”€ _createWrap.js
│   │   ā”œā”€ā”€ _customDefaultsAssignIn.js
│   │   ā”œā”€ā”€ _customDefaultsMerge.js
│   │   ā”œā”€ā”€ _customOmitClone.js
│   │   ā”œā”€ā”€ _deburrLetter.js
│   │   ā”œā”€ā”€ _defineProperty.js
│   │   ā”œā”€ā”€ _equalArrays.js
│   │   ā”œā”€ā”€ _equalByTag.js
│   │   ā”œā”€ā”€ _equalObjects.js
│   │   ā”œā”€ā”€ _escapeHtmlChar.js
│   │   ā”œā”€ā”€ _escapeStringChar.js
│   │   ā”œā”€ā”€ _flatRest.js
│   │   ā”œā”€ā”€ _freeGlobal.js
│   │   ā”œā”€ā”€ _getAllKeys.js
│   │   ā”œā”€ā”€ _getAllKeysIn.js
│   │   ā”œā”€ā”€ _getData.js
│   │   ā”œā”€ā”€ _getFuncName.js
│   │   ā”œā”€ā”€ _getHolder.js
│   │   ā”œā”€ā”€ _getMapData.js
│   │   ā”œā”€ā”€ _getMatchData.js
│   │   ā”œā”€ā”€ _getNative.js
│   │   ā”œā”€ā”€ _getPrototype.js
│   │   ā”œā”€ā”€ _getRawTag.js
│   │   ā”œā”€ā”€ _getSymbols.js
│   │   ā”œā”€ā”€ _getSymbolsIn.js
│   │   ā”œā”€ā”€ _getTag.js
│   │   ā”œā”€ā”€ _getValue.js
│   │   ā”œā”€ā”€ _getView.js
│   │   ā”œā”€ā”€ _getWrapDetails.js
│   │   ā”œā”€ā”€ _hasPath.js
│   │   ā”œā”€ā”€ _hasUnicode.js
│   │   ā”œā”€ā”€ _hasUnicodeWord.js
│   │   ā”œā”€ā”€ _hashClear.js
│   │   ā”œā”€ā”€ _hashDelete.js
│   │   ā”œā”€ā”€ _hashGet.js
│   │   ā”œā”€ā”€ _hashHas.js
│   │   ā”œā”€ā”€ _hashSet.js
│   │   ā”œā”€ā”€ _initCloneArray.js
│   │   ā”œā”€ā”€ _initCloneByTag.js
│   │   ā”œā”€ā”€ _initCloneObject.js
│   │   ā”œā”€ā”€ _insertWrapDetails.js
│   │   ā”œā”€ā”€ _isFlattenable.js
│   │   ā”œā”€ā”€ _isIndex.js
│   │   ā”œā”€ā”€ _isIterateeCall.js
│   │   ā”œā”€ā”€ _isKey.js
│   │   ā”œā”€ā”€ _isKeyable.js
│   │   ā”œā”€ā”€ _isLaziable.js
│   │   ā”œā”€ā”€ _isMaskable.js
│   │   ā”œā”€ā”€ _isMasked.js
│   │   ā”œā”€ā”€ _isPrototype.js
│   │   ā”œā”€ā”€ _isStrictComparable.js
│   │   ā”œā”€ā”€ _iteratorToArray.js
│   │   ā”œā”€ā”€ _lazyClone.js
│   │   ā”œā”€ā”€ _lazyReverse.js
│   │   ā”œā”€ā”€ _lazyValue.js
│   │   ā”œā”€ā”€ _listCacheClear.js
│   │   ā”œā”€ā”€ _listCacheDelete.js
│   │   ā”œā”€ā”€ _listCacheGet.js
│   │   ā”œā”€ā”€ _listCacheHas.js
│   │   ā”œā”€ā”€ _listCacheSet.js
│   │   ā”œā”€ā”€ _mapCacheClear.js
│   │   ā”œā”€ā”€ _mapCacheDelete.js
│   │   ā”œā”€ā”€ _mapCacheGet.js
│   │   ā”œā”€ā”€ _mapCacheHas.js
│   │   ā”œā”€ā”€ _mapCacheSet.js
│   │   ā”œā”€ā”€ _mapToArray.js
│   │   ā”œā”€ā”€ _matchesStrictComparable.js
│   │   ā”œā”€ā”€ _memoizeCapped.js
│   │   ā”œā”€ā”€ _mergeData.js
│   │   ā”œā”€ā”€ _metaMap.js
│   │   ā”œā”€ā”€ _nativeCreate.js
│   │   ā”œā”€ā”€ _nativeKeys.js
│   │   ā”œā”€ā”€ _nativeKeysIn.js
│   │   ā”œā”€ā”€ _nodeUtil.js
│   │   ā”œā”€ā”€ _objectToString.js
│   │   ā”œā”€ā”€ _overArg.js
│   │   ā”œā”€ā”€ _overRest.js
│   │   ā”œā”€ā”€ _parent.js
│   │   ā”œā”€ā”€ _reEscape.js
│   │   ā”œā”€ā”€ _reEvaluate.js
│   │   ā”œā”€ā”€ _reInterpolate.js
│   │   ā”œā”€ā”€ _realNames.js
│   │   ā”œā”€ā”€ _reorder.js
│   │   ā”œā”€ā”€ _replaceHolders.js
│   │   ā”œā”€ā”€ _root.js
│   │   ā”œā”€ā”€ _safeGet.js
│   │   ā”œā”€ā”€ _setCacheAdd.js
│   │   ā”œā”€ā”€ _setCacheHas.js
│   │   ā”œā”€ā”€ _setData.js
│   │   ā”œā”€ā”€ _setToArray.js
│   │   ā”œā”€ā”€ _setToPairs.js
│   │   ā”œā”€ā”€ _setToString.js
│   │   ā”œā”€ā”€ _setWrapToString.js
│   │   ā”œā”€ā”€ _shortOut.js
│   │   ā”œā”€ā”€ _shuffleSelf.js
│   │   ā”œā”€ā”€ _stackClear.js
│   │   ā”œā”€ā”€ _stackDelete.js
│   │   ā”œā”€ā”€ _stackGet.js
│   │   ā”œā”€ā”€ _stackHas.js
│   │   ā”œā”€ā”€ _stackSet.js
│   │   ā”œā”€ā”€ _strictIndexOf.js
│   │   ā”œā”€ā”€ _strictLastIndexOf.js
│   │   ā”œā”€ā”€ _stringSize.js
│   │   ā”œā”€ā”€ _stringToArray.js
│   │   ā”œā”€ā”€ _stringToPath.js
│   │   ā”œā”€ā”€ _toKey.js
│   │   ā”œā”€ā”€ _toSource.js
│   │   ā”œā”€ā”€ _trimmedEndIndex.js
│   │   ā”œā”€ā”€ _unescapeHtmlChar.js
│   │   ā”œā”€ā”€ _unicodeSize.js
│   │   ā”œā”€ā”€ _unicodeToArray.js
│   │   ā”œā”€ā”€ _unicodeWords.js
│   │   ā”œā”€ā”€ _updateWrapDetails.js
│   │   ā”œā”€ā”€ _wrapperClone.js
│   │   ā”œā”€ā”€ add.js
│   │   ā”œā”€ā”€ after.js
│   │   ā”œā”€ā”€ array.js
│   │   ā”œā”€ā”€ ary.js
│   │   ā”œā”€ā”€ assign.js
│   │   ā”œā”€ā”€ assignIn.js
│   │   ā”œā”€ā”€ assignInWith.js
│   │   ā”œā”€ā”€ assignWith.js
│   │   ā”œā”€ā”€ at.js
│   │   ā”œā”€ā”€ attempt.js
│   │   ā”œā”€ā”€ before.js
│   │   ā”œā”€ā”€ bind.js
│   │   ā”œā”€ā”€ bindAll.js
│   │   ā”œā”€ā”€ bindKey.js
│   │   ā”œā”€ā”€ camelCase.js
│   │   ā”œā”€ā”€ capitalize.js
│   │   ā”œā”€ā”€ castArray.js
│   │   ā”œā”€ā”€ ceil.js
│   │   ā”œā”€ā”€ chain.js
│   │   ā”œā”€ā”€ chunk.js
│   │   ā”œā”€ā”€ clamp.js
│   │   ā”œā”€ā”€ clone.js
│   │   ā”œā”€ā”€ cloneDeep.js
│   │   ā”œā”€ā”€ cloneDeepWith.js
│   │   ā”œā”€ā”€ cloneWith.js
│   │   ā”œā”€ā”€ collection.js
│   │   ā”œā”€ā”€ commit.js
│   │   ā”œā”€ā”€ compact.js
│   │   ā”œā”€ā”€ concat.js
│   │   ā”œā”€ā”€ cond.js
│   │   ā”œā”€ā”€ conforms.js
│   │   ā”œā”€ā”€ conformsTo.js
│   │   ā”œā”€ā”€ constant.js
│   │   ā”œā”€ā”€ core.js
│   │   ā”œā”€ā”€ core.min.js
│   │   ā”œā”€ā”€ countBy.js
│   │   ā”œā”€ā”€ create.js
│   │   ā”œā”€ā”€ curry.js
│   │   ā”œā”€ā”€ curryRight.js
│   │   ā”œā”€ā”€ date.js
│   │   ā”œā”€ā”€ debounce.js
│   │   ā”œā”€ā”€ deburr.js
│   │   ā”œā”€ā”€ defaultTo.js
│   │   ā”œā”€ā”€ defaults.js
│   │   ā”œā”€ā”€ defaultsDeep.js
│   │   ā”œā”€ā”€ defer.js
│   │   ā”œā”€ā”€ delay.js
│   │   ā”œā”€ā”€ difference.js
│   │   ā”œā”€ā”€ differenceBy.js
│   │   ā”œā”€ā”€ differenceWith.js
│   │   ā”œā”€ā”€ divide.js
│   │   ā”œā”€ā”€ drop.js
│   │   ā”œā”€ā”€ dropRight.js
│   │   ā”œā”€ā”€ dropRightWhile.js
│   │   ā”œā”€ā”€ dropWhile.js
│   │   ā”œā”€ā”€ each.js
│   │   ā”œā”€ā”€ eachRight.js
│   │   ā”œā”€ā”€ endsWith.js
│   │   ā”œā”€ā”€ entries.js
│   │   ā”œā”€ā”€ entriesIn.js
│   │   ā”œā”€ā”€ eq.js
│   │   ā”œā”€ā”€ escape.js
│   │   ā”œā”€ā”€ escapeRegExp.js
│   │   ā”œā”€ā”€ every.js
│   │   ā”œā”€ā”€ extend.js
│   │   ā”œā”€ā”€ extendWith.js
│   │   ā”œā”€ā”€ fill.js
│   │   ā”œā”€ā”€ filter.js
│   │   ā”œā”€ā”€ find.js
│   │   ā”œā”€ā”€ findIndex.js
│   │   ā”œā”€ā”€ findKey.js
│   │   ā”œā”€ā”€ findLast.js
│   │   ā”œā”€ā”€ findLastIndex.js
│   │   ā”œā”€ā”€ findLastKey.js
│   │   ā”œā”€ā”€ first.js
│   │   ā”œā”€ā”€ flake.lock
│   │   ā”œā”€ā”€ flake.nix
│   │   ā”œā”€ā”€ flatMap.js
│   │   ā”œā”€ā”€ flatMapDeep.js
│   │   ā”œā”€ā”€ flatMapDepth.js
│   │   ā”œā”€ā”€ flatten.js
│   │   ā”œā”€ā”€ flattenDeep.js
│   │   ā”œā”€ā”€ flattenDepth.js
│   │   ā”œā”€ā”€ flip.js
│   │   ā”œā”€ā”€ floor.js
│   │   ā”œā”€ā”€ flow.js
│   │   ā”œā”€ā”€ flowRight.js
│   │   ā”œā”€ā”€ forEach.js
│   │   ā”œā”€ā”€ forEachRight.js
│   │   ā”œā”€ā”€ forIn.js
│   │   ā”œā”€ā”€ forInRight.js
│   │   ā”œā”€ā”€ forOwn.js
│   │   ā”œā”€ā”€ forOwnRight.js
│   │   ā”œā”€ā”€ fp
│   │   │   ā”œā”€ā”€ F.js
│   │   │   ā”œā”€ā”€ T.js
│   │   │   ā”œā”€ā”€ __.js
│   │   │   ā”œā”€ā”€ _baseConvert.js
│   │   │   ā”œā”€ā”€ _convertBrowser.js
│   │   │   ā”œā”€ā”€ _falseOptions.js
│   │   │   ā”œā”€ā”€ _mapping.js
│   │   │   ā”œā”€ā”€ _util.js
│   │   │   ā”œā”€ā”€ add.js
│   │   │   ā”œā”€ā”€ after.js
│   │   │   ā”œā”€ā”€ all.js
│   │   │   ā”œā”€ā”€ allPass.js
│   │   │   ā”œā”€ā”€ always.js
│   │   │   ā”œā”€ā”€ any.js
│   │   │   ā”œā”€ā”€ anyPass.js
│   │   │   ā”œā”€ā”€ apply.js
│   │   │   ā”œā”€ā”€ array.js
│   │   │   ā”œā”€ā”€ ary.js
│   │   │   ā”œā”€ā”€ assign.js
│   │   │   ā”œā”€ā”€ assignAll.js
│   │   │   ā”œā”€ā”€ assignAllWith.js
│   │   │   ā”œā”€ā”€ assignIn.js
│   │   │   ā”œā”€ā”€ assignInAll.js
│   │   │   ā”œā”€ā”€ assignInAllWith.js
│   │   │   ā”œā”€ā”€ assignInWith.js
│   │   │   ā”œā”€ā”€ assignWith.js
│   │   │   ā”œā”€ā”€ assoc.js
│   │   │   ā”œā”€ā”€ assocPath.js
│   │   │   ā”œā”€ā”€ at.js
│   │   │   ā”œā”€ā”€ attempt.js
│   │   │   ā”œā”€ā”€ before.js
│   │   │   ā”œā”€ā”€ bind.js
│   │   │   ā”œā”€ā”€ bindAll.js
│   │   │   ā”œā”€ā”€ bindKey.js
│   │   │   ā”œā”€ā”€ camelCase.js
│   │   │   ā”œā”€ā”€ capitalize.js
│   │   │   ā”œā”€ā”€ castArray.js
│   │   │   ā”œā”€ā”€ ceil.js
│   │   │   ā”œā”€ā”€ chain.js
│   │   │   ā”œā”€ā”€ chunk.js
│   │   │   ā”œā”€ā”€ clamp.js
│   │   │   ā”œā”€ā”€ clone.js
│   │   │   ā”œā”€ā”€ cloneDeep.js
│   │   │   ā”œā”€ā”€ cloneDeepWith.js
│   │   │   ā”œā”€ā”€ cloneWith.js
│   │   │   ā”œā”€ā”€ collection.js
│   │   │   ā”œā”€ā”€ commit.js
│   │   │   ā”œā”€ā”€ compact.js
│   │   │   ā”œā”€ā”€ complement.js
│   │   │   ā”œā”€ā”€ compose.js
│   │   │   ā”œā”€ā”€ concat.js
│   │   │   ā”œā”€ā”€ cond.js
│   │   │   ā”œā”€ā”€ conforms.js
│   │   │   ā”œā”€ā”€ conformsTo.js
│   │   │   ā”œā”€ā”€ constant.js
│   │   │   ā”œā”€ā”€ contains.js
│   │   │   ā”œā”€ā”€ convert.js
│   │   │   ā”œā”€ā”€ countBy.js
│   │   │   ā”œā”€ā”€ create.js
│   │   │   ā”œā”€ā”€ curry.js
│   │   │   ā”œā”€ā”€ curryN.js
│   │   │   ā”œā”€ā”€ curryRight.js
│   │   │   ā”œā”€ā”€ curryRightN.js
│   │   │   ā”œā”€ā”€ date.js
│   │   │   ā”œā”€ā”€ debounce.js
│   │   │   ā”œā”€ā”€ deburr.js
│   │   │   ā”œā”€ā”€ defaultTo.js
│   │   │   ā”œā”€ā”€ defaults.js
│   │   │   ā”œā”€ā”€ defaultsAll.js
│   │   │   ā”œā”€ā”€ defaultsDeep.js
│   │   │   ā”œā”€ā”€ defaultsDeepAll.js
│   │   │   ā”œā”€ā”€ defer.js
│   │   │   ā”œā”€ā”€ delay.js
│   │   │   ā”œā”€ā”€ difference.js
│   │   │   ā”œā”€ā”€ differenceBy.js
│   │   │   ā”œā”€ā”€ differenceWith.js
│   │   │   ā”œā”€ā”€ dissoc.js
│   │   │   ā”œā”€ā”€ dissocPath.js
│   │   │   ā”œā”€ā”€ divide.js
│   │   │   ā”œā”€ā”€ drop.js
│   │   │   ā”œā”€ā”€ dropLast.js
│   │   │   ā”œā”€ā”€ dropLastWhile.js
│   │   │   ā”œā”€ā”€ dropRight.js
│   │   │   ā”œā”€ā”€ dropRightWhile.js
│   │   │   ā”œā”€ā”€ dropWhile.js
│   │   │   ā”œā”€ā”€ each.js
│   │   │   ā”œā”€ā”€ eachRight.js
│   │   │   ā”œā”€ā”€ endsWith.js
│   │   │   ā”œā”€ā”€ entries.js
│   │   │   ā”œā”€ā”€ entriesIn.js
│   │   │   ā”œā”€ā”€ eq.js
│   │   │   ā”œā”€ā”€ equals.js
│   │   │   ā”œā”€ā”€ escape.js
│   │   │   ā”œā”€ā”€ escapeRegExp.js
│   │   │   ā”œā”€ā”€ every.js
│   │   │   ā”œā”€ā”€ extend.js
│   │   │   ā”œā”€ā”€ extendAll.js
│   │   │   ā”œā”€ā”€ extendAllWith.js
│   │   │   ā”œā”€ā”€ extendWith.js
│   │   │   ā”œā”€ā”€ fill.js
│   │   │   ā”œā”€ā”€ filter.js
│   │   │   ā”œā”€ā”€ find.js
│   │   │   ā”œā”€ā”€ findFrom.js
│   │   │   ā”œā”€ā”€ findIndex.js
│   │   │   ā”œā”€ā”€ findIndexFrom.js
│   │   │   ā”œā”€ā”€ findKey.js
│   │   │   ā”œā”€ā”€ findLast.js
│   │   │   ā”œā”€ā”€ findLastFrom.js
│   │   │   ā”œā”€ā”€ findLastIndex.js
│   │   │   ā”œā”€ā”€ findLastIndexFrom.js
│   │   │   ā”œā”€ā”€ findLastKey.js
│   │   │   ā”œā”€ā”€ first.js
│   │   │   ā”œā”€ā”€ flatMap.js
│   │   │   ā”œā”€ā”€ flatMapDeep.js
│   │   │   ā”œā”€ā”€ flatMapDepth.js
│   │   │   ā”œā”€ā”€ flatten.js
│   │   │   ā”œā”€ā”€ flattenDeep.js
│   │   │   ā”œā”€ā”€ flattenDepth.js
│   │   │   ā”œā”€ā”€ flip.js
│   │   │   ā”œā”€ā”€ floor.js
│   │   │   ā”œā”€ā”€ flow.js
│   │   │   ā”œā”€ā”€ flowRight.js
│   │   │   ā”œā”€ā”€ forEach.js
│   │   │   ā”œā”€ā”€ forEachRight.js
│   │   │   ā”œā”€ā”€ forIn.js
│   │   │   ā”œā”€ā”€ forInRight.js
│   │   │   ā”œā”€ā”€ forOwn.js
│   │   │   ā”œā”€ā”€ forOwnRight.js
│   │   │   ā”œā”€ā”€ fromPairs.js
│   │   │   ā”œā”€ā”€ function.js
│   │   │   ā”œā”€ā”€ functions.js
│   │   │   ā”œā”€ā”€ functionsIn.js
│   │   │   ā”œā”€ā”€ get.js
│   │   │   ā”œā”€ā”€ getOr.js
│   │   │   ā”œā”€ā”€ groupBy.js
│   │   │   ā”œā”€ā”€ gt.js
│   │   │   ā”œā”€ā”€ gte.js
│   │   │   ā”œā”€ā”€ has.js
│   │   │   ā”œā”€ā”€ hasIn.js
│   │   │   ā”œā”€ā”€ head.js
│   │   │   ā”œā”€ā”€ identical.js
│   │   │   ā”œā”€ā”€ identity.js
│   │   │   ā”œā”€ā”€ inRange.js
│   │   │   ā”œā”€ā”€ includes.js
│   │   │   ā”œā”€ā”€ includesFrom.js
│   │   │   ā”œā”€ā”€ indexBy.js
│   │   │   ā”œā”€ā”€ indexOf.js
│   │   │   ā”œā”€ā”€ indexOfFrom.js
│   │   │   ā”œā”€ā”€ init.js
│   │   │   ā”œā”€ā”€ initial.js
│   │   │   ā”œā”€ā”€ intersection.js
│   │   │   ā”œā”€ā”€ intersectionBy.js
│   │   │   ā”œā”€ā”€ intersectionWith.js
│   │   │   ā”œā”€ā”€ invert.js
│   │   │   ā”œā”€ā”€ invertBy.js
│   │   │   ā”œā”€ā”€ invertObj.js
│   │   │   ā”œā”€ā”€ invoke.js
│   │   │   ā”œā”€ā”€ invokeArgs.js
│   │   │   ā”œā”€ā”€ invokeArgsMap.js
│   │   │   ā”œā”€ā”€ invokeMap.js
│   │   │   ā”œā”€ā”€ isArguments.js
│   │   │   ā”œā”€ā”€ isArray.js
│   │   │   ā”œā”€ā”€ isArrayBuffer.js
│   │   │   ā”œā”€ā”€ isArrayLike.js
│   │   │   ā”œā”€ā”€ isArrayLikeObject.js
│   │   │   ā”œā”€ā”€ isBoolean.js
│   │   │   ā”œā”€ā”€ isBuffer.js
│   │   │   ā”œā”€ā”€ isDate.js
│   │   │   ā”œā”€ā”€ isElement.js
│   │   │   ā”œā”€ā”€ isEmpty.js
│   │   │   ā”œā”€ā”€ isEqual.js
│   │   │   ā”œā”€ā”€ isEqualWith.js
│   │   │   ā”œā”€ā”€ isError.js
│   │   │   ā”œā”€ā”€ isFinite.js
│   │   │   ā”œā”€ā”€ isFunction.js
│   │   │   ā”œā”€ā”€ isInteger.js
│   │   │   ā”œā”€ā”€ isLength.js
│   │   │   ā”œā”€ā”€ isMap.js
│   │   │   ā”œā”€ā”€ isMatch.js
│   │   │   ā”œā”€ā”€ isMatchWith.js
│   │   │   ā”œā”€ā”€ isNaN.js
│   │   │   ā”œā”€ā”€ isNative.js
│   │   │   ā”œā”€ā”€ isNil.js
│   │   │   ā”œā”€ā”€ isNull.js
│   │   │   ā”œā”€ā”€ isNumber.js
│   │   │   ā”œā”€ā”€ isObject.js
│   │   │   ā”œā”€ā”€ isObjectLike.js
│   │   │   ā”œā”€ā”€ isPlainObject.js
│   │   │   ā”œā”€ā”€ isRegExp.js
│   │   │   ā”œā”€ā”€ isSafeInteger.js
│   │   │   ā”œā”€ā”€ isSet.js
│   │   │   ā”œā”€ā”€ isString.js
│   │   │   ā”œā”€ā”€ isSymbol.js
│   │   │   ā”œā”€ā”€ isTypedArray.js
│   │   │   ā”œā”€ā”€ isUndefined.js
│   │   │   ā”œā”€ā”€ isWeakMap.js
│   │   │   ā”œā”€ā”€ isWeakSet.js
│   │   │   ā”œā”€ā”€ iteratee.js
│   │   │   ā”œā”€ā”€ join.js
│   │   │   ā”œā”€ā”€ juxt.js
│   │   │   ā”œā”€ā”€ kebabCase.js
│   │   │   ā”œā”€ā”€ keyBy.js
│   │   │   ā”œā”€ā”€ keys.js
│   │   │   ā”œā”€ā”€ keysIn.js
│   │   │   ā”œā”€ā”€ lang.js
│   │   │   ā”œā”€ā”€ last.js
│   │   │   ā”œā”€ā”€ lastIndexOf.js
│   │   │   ā”œā”€ā”€ lastIndexOfFrom.js
│   │   │   ā”œā”€ā”€ lowerCase.js
│   │   │   ā”œā”€ā”€ lowerFirst.js
│   │   │   ā”œā”€ā”€ lt.js
│   │   │   ā”œā”€ā”€ lte.js
│   │   │   ā”œā”€ā”€ map.js
│   │   │   ā”œā”€ā”€ mapKeys.js
│   │   │   ā”œā”€ā”€ mapValues.js
│   │   │   ā”œā”€ā”€ matches.js
│   │   │   ā”œā”€ā”€ matchesProperty.js
│   │   │   ā”œā”€ā”€ math.js
│   │   │   ā”œā”€ā”€ max.js
│   │   │   ā”œā”€ā”€ maxBy.js
│   │   │   ā”œā”€ā”€ mean.js
│   │   │   ā”œā”€ā”€ meanBy.js
│   │   │   ā”œā”€ā”€ memoize.js
│   │   │   ā”œā”€ā”€ merge.js
│   │   │   ā”œā”€ā”€ mergeAll.js
│   │   │   ā”œā”€ā”€ mergeAllWith.js
│   │   │   ā”œā”€ā”€ mergeWith.js
│   │   │   ā”œā”€ā”€ method.js
│   │   │   ā”œā”€ā”€ methodOf.js
│   │   │   ā”œā”€ā”€ min.js
│   │   │   ā”œā”€ā”€ minBy.js
│   │   │   ā”œā”€ā”€ mixin.js
│   │   │   ā”œā”€ā”€ multiply.js
│   │   │   ā”œā”€ā”€ nAry.js
│   │   │   ā”œā”€ā”€ negate.js
│   │   │   ā”œā”€ā”€ next.js
│   │   │   ā”œā”€ā”€ noop.js
│   │   │   ā”œā”€ā”€ now.js
│   │   │   ā”œā”€ā”€ nth.js
│   │   │   ā”œā”€ā”€ nthArg.js
│   │   │   ā”œā”€ā”€ number.js
│   │   │   ā”œā”€ā”€ object.js
│   │   │   ā”œā”€ā”€ omit.js
│   │   │   ā”œā”€ā”€ omitAll.js
│   │   │   ā”œā”€ā”€ omitBy.js
│   │   │   ā”œā”€ā”€ once.js
│   │   │   ā”œā”€ā”€ orderBy.js
│   │   │   ā”œā”€ā”€ over.js
│   │   │   ā”œā”€ā”€ overArgs.js
│   │   │   ā”œā”€ā”€ overEvery.js
│   │   │   ā”œā”€ā”€ overSome.js
│   │   │   ā”œā”€ā”€ pad.js
│   │   │   ā”œā”€ā”€ padChars.js
│   │   │   ā”œā”€ā”€ padCharsEnd.js
│   │   │   ā”œā”€ā”€ padCharsStart.js
│   │   │   ā”œā”€ā”€ padEnd.js
│   │   │   ā”œā”€ā”€ padStart.js
│   │   │   ā”œā”€ā”€ parseInt.js
│   │   │   ā”œā”€ā”€ partial.js
│   │   │   ā”œā”€ā”€ partialRight.js
│   │   │   ā”œā”€ā”€ partition.js
│   │   │   ā”œā”€ā”€ path.js
│   │   │   ā”œā”€ā”€ pathEq.js
│   │   │   ā”œā”€ā”€ pathOr.js
│   │   │   ā”œā”€ā”€ paths.js
│   │   │   ā”œā”€ā”€ pick.js
│   │   │   ā”œā”€ā”€ pickAll.js
│   │   │   ā”œā”€ā”€ pickBy.js
│   │   │   ā”œā”€ā”€ pipe.js
│   │   │   ā”œā”€ā”€ placeholder.js
│   │   │   ā”œā”€ā”€ plant.js
│   │   │   ā”œā”€ā”€ pluck.js
│   │   │   ā”œā”€ā”€ prop.js
│   │   │   ā”œā”€ā”€ propEq.js
│   │   │   ā”œā”€ā”€ propOr.js
│   │   │   ā”œā”€ā”€ property.js
│   │   │   ā”œā”€ā”€ propertyOf.js
│   │   │   ā”œā”€ā”€ props.js
│   │   │   ā”œā”€ā”€ pull.js
│   │   │   ā”œā”€ā”€ pullAll.js
│   │   │   ā”œā”€ā”€ pullAllBy.js
│   │   │   ā”œā”€ā”€ pullAllWith.js
│   │   │   ā”œā”€ā”€ pullAt.js
│   │   │   ā”œā”€ā”€ random.js
│   │   │   ā”œā”€ā”€ range.js
│   │   │   ā”œā”€ā”€ rangeRight.js
│   │   │   ā”œā”€ā”€ rangeStep.js
│   │   │   ā”œā”€ā”€ rangeStepRight.js
│   │   │   ā”œā”€ā”€ rearg.js
│   │   │   ā”œā”€ā”€ reduce.js
│   │   │   ā”œā”€ā”€ reduceRight.js
│   │   │   ā”œā”€ā”€ reject.js
│   │   │   ā”œā”€ā”€ remove.js
│   │   │   ā”œā”€ā”€ repeat.js
│   │   │   ā”œā”€ā”€ replace.js
│   │   │   ā”œā”€ā”€ rest.js
│   │   │   ā”œā”€ā”€ restFrom.js
│   │   │   ā”œā”€ā”€ result.js
│   │   │   ā”œā”€ā”€ reverse.js
│   │   │   ā”œā”€ā”€ round.js
│   │   │   ā”œā”€ā”€ sample.js
│   │   │   ā”œā”€ā”€ sampleSize.js
│   │   │   ā”œā”€ā”€ seq.js
│   │   │   ā”œā”€ā”€ set.js
│   │   │   ā”œā”€ā”€ setWith.js
│   │   │   ā”œā”€ā”€ shuffle.js
│   │   │   ā”œā”€ā”€ size.js
│   │   │   ā”œā”€ā”€ slice.js
│   │   │   ā”œā”€ā”€ snakeCase.js
│   │   │   ā”œā”€ā”€ some.js
│   │   │   ā”œā”€ā”€ sortBy.js
│   │   │   ā”œā”€ā”€ sortedIndex.js
│   │   │   ā”œā”€ā”€ sortedIndexBy.js
│   │   │   ā”œā”€ā”€ sortedIndexOf.js
│   │   │   ā”œā”€ā”€ sortedLastIndex.js
│   │   │   ā”œā”€ā”€ sortedLastIndexBy.js
│   │   │   ā”œā”€ā”€ sortedLastIndexOf.js
│   │   │   ā”œā”€ā”€ sortedUniq.js
│   │   │   ā”œā”€ā”€ sortedUniqBy.js
│   │   │   ā”œā”€ā”€ split.js
│   │   │   ā”œā”€ā”€ spread.js
│   │   │   ā”œā”€ā”€ spreadFrom.js
│   │   │   ā”œā”€ā”€ startCase.js
│   │   │   ā”œā”€ā”€ startsWith.js
│   │   │   ā”œā”€ā”€ string.js
│   │   │   ā”œā”€ā”€ stubArray.js
│   │   │   ā”œā”€ā”€ stubFalse.js
│   │   │   ā”œā”€ā”€ stubObject.js
│   │   │   ā”œā”€ā”€ stubString.js
│   │   │   ā”œā”€ā”€ stubTrue.js
│   │   │   ā”œā”€ā”€ subtract.js
│   │   │   ā”œā”€ā”€ sum.js
│   │   │   ā”œā”€ā”€ sumBy.js
│   │   │   ā”œā”€ā”€ symmetricDifference.js
│   │   │   ā”œā”€ā”€ symmetricDifferenceBy.js
│   │   │   ā”œā”€ā”€ symmetricDifferenceWith.js
│   │   │   ā”œā”€ā”€ tail.js
│   │   │   ā”œā”€ā”€ take.js
│   │   │   ā”œā”€ā”€ takeLast.js
│   │   │   ā”œā”€ā”€ takeLastWhile.js
│   │   │   ā”œā”€ā”€ takeRight.js
│   │   │   ā”œā”€ā”€ takeRightWhile.js
│   │   │   ā”œā”€ā”€ takeWhile.js
│   │   │   ā”œā”€ā”€ tap.js
│   │   │   ā”œā”€ā”€ template.js
│   │   │   ā”œā”€ā”€ templateSettings.js
│   │   │   ā”œā”€ā”€ throttle.js
│   │   │   ā”œā”€ā”€ thru.js
│   │   │   ā”œā”€ā”€ times.js
│   │   │   ā”œā”€ā”€ toArray.js
│   │   │   ā”œā”€ā”€ toFinite.js
│   │   │   ā”œā”€ā”€ toInteger.js
│   │   │   ā”œā”€ā”€ toIterator.js
│   │   │   ā”œā”€ā”€ toJSON.js
│   │   │   ā”œā”€ā”€ toLength.js
│   │   │   ā”œā”€ā”€ toLower.js
│   │   │   ā”œā”€ā”€ toNumber.js
│   │   │   ā”œā”€ā”€ toPairs.js
│   │   │   ā”œā”€ā”€ toPairsIn.js
│   │   │   ā”œā”€ā”€ toPath.js
│   │   │   ā”œā”€ā”€ toPlainObject.js
│   │   │   ā”œā”€ā”€ toSafeInteger.js
│   │   │   ā”œā”€ā”€ toString.js
│   │   │   ā”œā”€ā”€ toUpper.js
│   │   │   ā”œā”€ā”€ transform.js
│   │   │   ā”œā”€ā”€ trim.js
│   │   │   ā”œā”€ā”€ trimChars.js
│   │   │   ā”œā”€ā”€ trimCharsEnd.js
│   │   │   ā”œā”€ā”€ trimCharsStart.js
│   │   │   ā”œā”€ā”€ trimEnd.js
│   │   │   ā”œā”€ā”€ trimStart.js
│   │   │   ā”œā”€ā”€ truncate.js
│   │   │   ā”œā”€ā”€ unapply.js
│   │   │   ā”œā”€ā”€ unary.js
│   │   │   ā”œā”€ā”€ unescape.js
│   │   │   ā”œā”€ā”€ union.js
│   │   │   ā”œā”€ā”€ unionBy.js
│   │   │   ā”œā”€ā”€ unionWith.js
│   │   │   ā”œā”€ā”€ uniq.js
│   │   │   ā”œā”€ā”€ uniqBy.js
│   │   │   ā”œā”€ā”€ uniqWith.js
│   │   │   ā”œā”€ā”€ uniqueId.js
│   │   │   ā”œā”€ā”€ unnest.js
│   │   │   ā”œā”€ā”€ unset.js
│   │   │   ā”œā”€ā”€ unzip.js
│   │   │   ā”œā”€ā”€ unzipWith.js
│   │   │   ā”œā”€ā”€ update.js
│   │   │   ā”œā”€ā”€ updateWith.js
│   │   │   ā”œā”€ā”€ upperCase.js
│   │   │   ā”œā”€ā”€ upperFirst.js
│   │   │   ā”œā”€ā”€ useWith.js
│   │   │   ā”œā”€ā”€ util.js
│   │   │   ā”œā”€ā”€ value.js
│   │   │   ā”œā”€ā”€ valueOf.js
│   │   │   ā”œā”€ā”€ values.js
│   │   │   ā”œā”€ā”€ valuesIn.js
│   │   │   ā”œā”€ā”€ where.js
│   │   │   ā”œā”€ā”€ whereEq.js
│   │   │   ā”œā”€ā”€ without.js
│   │   │   ā”œā”€ā”€ words.js
│   │   │   ā”œā”€ā”€ wrap.js
│   │   │   ā”œā”€ā”€ wrapperAt.js
│   │   │   ā”œā”€ā”€ wrapperChain.js
│   │   │   ā”œā”€ā”€ wrapperLodash.js
│   │   │   ā”œā”€ā”€ wrapperReverse.js
│   │   │   ā”œā”€ā”€ wrapperValue.js
│   │   │   ā”œā”€ā”€ xor.js
│   │   │   ā”œā”€ā”€ xorBy.js
│   │   │   ā”œā”€ā”€ xorWith.js
│   │   │   ā”œā”€ā”€ zip.js
│   │   │   ā”œā”€ā”€ zipAll.js
│   │   │   ā”œā”€ā”€ zipObj.js
│   │   │   ā”œā”€ā”€ zipObject.js
│   │   │   ā”œā”€ā”€ zipObjectDeep.js
│   │   │   └── zipWith.js
│   │   ā”œā”€ā”€ fp.js
│   │   ā”œā”€ā”€ fromPairs.js
│   │   ā”œā”€ā”€ function.js
│   │   ā”œā”€ā”€ functions.js
│   │   ā”œā”€ā”€ functionsIn.js
│   │   ā”œā”€ā”€ get.js
│   │   ā”œā”€ā”€ groupBy.js
│   │   ā”œā”€ā”€ gt.js
│   │   ā”œā”€ā”€ gte.js
│   │   ā”œā”€ā”€ has.js
│   │   ā”œā”€ā”€ hasIn.js
│   │   ā”œā”€ā”€ head.js
│   │   ā”œā”€ā”€ identity.js
│   │   ā”œā”€ā”€ inRange.js
│   │   ā”œā”€ā”€ includes.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ indexOf.js
│   │   ā”œā”€ā”€ initial.js
│   │   ā”œā”€ā”€ intersection.js
│   │   ā”œā”€ā”€ intersectionBy.js
│   │   ā”œā”€ā”€ intersectionWith.js
│   │   ā”œā”€ā”€ invert.js
│   │   ā”œā”€ā”€ invertBy.js
│   │   ā”œā”€ā”€ invoke.js
│   │   ā”œā”€ā”€ invokeMap.js
│   │   ā”œā”€ā”€ isArguments.js
│   │   ā”œā”€ā”€ isArray.js
│   │   ā”œā”€ā”€ isArrayBuffer.js
│   │   ā”œā”€ā”€ isArrayLike.js
│   │   ā”œā”€ā”€ isArrayLikeObject.js
│   │   ā”œā”€ā”€ isBoolean.js
│   │   ā”œā”€ā”€ isBuffer.js
│   │   ā”œā”€ā”€ isDate.js
│   │   ā”œā”€ā”€ isElement.js
│   │   ā”œā”€ā”€ isEmpty.js
│   │   ā”œā”€ā”€ isEqual.js
│   │   ā”œā”€ā”€ isEqualWith.js
│   │   ā”œā”€ā”€ isError.js
│   │   ā”œā”€ā”€ isFinite.js
│   │   ā”œā”€ā”€ isFunction.js
│   │   ā”œā”€ā”€ isInteger.js
│   │   ā”œā”€ā”€ isLength.js
│   │   ā”œā”€ā”€ isMap.js
│   │   ā”œā”€ā”€ isMatch.js
│   │   ā”œā”€ā”€ isMatchWith.js
│   │   ā”œā”€ā”€ isNaN.js
│   │   ā”œā”€ā”€ isNative.js
│   │   ā”œā”€ā”€ isNil.js
│   │   ā”œā”€ā”€ isNull.js
│   │   ā”œā”€ā”€ isNumber.js
│   │   ā”œā”€ā”€ isObject.js
│   │   ā”œā”€ā”€ isObjectLike.js
│   │   ā”œā”€ā”€ isPlainObject.js
│   │   ā”œā”€ā”€ isRegExp.js
│   │   ā”œā”€ā”€ isSafeInteger.js
│   │   ā”œā”€ā”€ isSet.js
│   │   ā”œā”€ā”€ isString.js
│   │   ā”œā”€ā”€ isSymbol.js
│   │   ā”œā”€ā”€ isTypedArray.js
│   │   ā”œā”€ā”€ isUndefined.js
│   │   ā”œā”€ā”€ isWeakMap.js
│   │   ā”œā”€ā”€ isWeakSet.js
│   │   ā”œā”€ā”€ iteratee.js
│   │   ā”œā”€ā”€ join.js
│   │   ā”œā”€ā”€ kebabCase.js
│   │   ā”œā”€ā”€ keyBy.js
│   │   ā”œā”€ā”€ keys.js
│   │   ā”œā”€ā”€ keysIn.js
│   │   ā”œā”€ā”€ lang.js
│   │   ā”œā”€ā”€ last.js
│   │   ā”œā”€ā”€ lastIndexOf.js
│   │   ā”œā”€ā”€ lodash.js
│   │   ā”œā”€ā”€ lodash.min.js
│   │   ā”œā”€ā”€ lowerCase.js
│   │   ā”œā”€ā”€ lowerFirst.js
│   │   ā”œā”€ā”€ lt.js
│   │   ā”œā”€ā”€ lte.js
│   │   ā”œā”€ā”€ map.js
│   │   ā”œā”€ā”€ mapKeys.js
│   │   ā”œā”€ā”€ mapValues.js
│   │   ā”œā”€ā”€ matches.js
│   │   ā”œā”€ā”€ matchesProperty.js
│   │   ā”œā”€ā”€ math.js
│   │   ā”œā”€ā”€ max.js
│   │   ā”œā”€ā”€ maxBy.js
│   │   ā”œā”€ā”€ mean.js
│   │   ā”œā”€ā”€ meanBy.js
│   │   ā”œā”€ā”€ memoize.js
│   │   ā”œā”€ā”€ merge.js
│   │   ā”œā”€ā”€ mergeWith.js
│   │   ā”œā”€ā”€ method.js
│   │   ā”œā”€ā”€ methodOf.js
│   │   ā”œā”€ā”€ min.js
│   │   ā”œā”€ā”€ minBy.js
│   │   ā”œā”€ā”€ mixin.js
│   │   ā”œā”€ā”€ multiply.js
│   │   ā”œā”€ā”€ negate.js
│   │   ā”œā”€ā”€ next.js
│   │   ā”œā”€ā”€ noop.js
│   │   ā”œā”€ā”€ now.js
│   │   ā”œā”€ā”€ nth.js
│   │   ā”œā”€ā”€ nthArg.js
│   │   ā”œā”€ā”€ number.js
│   │   ā”œā”€ā”€ object.js
│   │   ā”œā”€ā”€ omit.js
│   │   ā”œā”€ā”€ omitBy.js
│   │   ā”œā”€ā”€ once.js
│   │   ā”œā”€ā”€ orderBy.js
│   │   ā”œā”€ā”€ over.js
│   │   ā”œā”€ā”€ overArgs.js
│   │   ā”œā”€ā”€ overEvery.js
│   │   ā”œā”€ā”€ overSome.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ pad.js
│   │   ā”œā”€ā”€ padEnd.js
│   │   ā”œā”€ā”€ padStart.js
│   │   ā”œā”€ā”€ parseInt.js
│   │   ā”œā”€ā”€ partial.js
│   │   ā”œā”€ā”€ partialRight.js
│   │   ā”œā”€ā”€ partition.js
│   │   ā”œā”€ā”€ pick.js
│   │   ā”œā”€ā”€ pickBy.js
│   │   ā”œā”€ā”€ plant.js
│   │   ā”œā”€ā”€ property.js
│   │   ā”œā”€ā”€ propertyOf.js
│   │   ā”œā”€ā”€ pull.js
│   │   ā”œā”€ā”€ pullAll.js
│   │   ā”œā”€ā”€ pullAllBy.js
│   │   ā”œā”€ā”€ pullAllWith.js
│   │   ā”œā”€ā”€ pullAt.js
│   │   ā”œā”€ā”€ random.js
│   │   ā”œā”€ā”€ range.js
│   │   ā”œā”€ā”€ rangeRight.js
│   │   ā”œā”€ā”€ rearg.js
│   │   ā”œā”€ā”€ reduce.js
│   │   ā”œā”€ā”€ reduceRight.js
│   │   ā”œā”€ā”€ reject.js
│   │   ā”œā”€ā”€ release.md
│   │   ā”œā”€ā”€ remove.js
│   │   ā”œā”€ā”€ repeat.js
│   │   ā”œā”€ā”€ replace.js
│   │   ā”œā”€ā”€ rest.js
│   │   ā”œā”€ā”€ result.js
│   │   ā”œā”€ā”€ reverse.js
│   │   ā”œā”€ā”€ round.js
│   │   ā”œā”€ā”€ sample.js
│   │   ā”œā”€ā”€ sampleSize.js
│   │   ā”œā”€ā”€ seq.js
│   │   ā”œā”€ā”€ set.js
│   │   ā”œā”€ā”€ setWith.js
│   │   ā”œā”€ā”€ shuffle.js
│   │   ā”œā”€ā”€ size.js
│   │   ā”œā”€ā”€ slice.js
│   │   ā”œā”€ā”€ snakeCase.js
│   │   ā”œā”€ā”€ some.js
│   │   ā”œā”€ā”€ sortBy.js
│   │   ā”œā”€ā”€ sortedIndex.js
│   │   ā”œā”€ā”€ sortedIndexBy.js
│   │   ā”œā”€ā”€ sortedIndexOf.js
│   │   ā”œā”€ā”€ sortedLastIndex.js
│   │   ā”œā”€ā”€ sortedLastIndexBy.js
│   │   ā”œā”€ā”€ sortedLastIndexOf.js
│   │   ā”œā”€ā”€ sortedUniq.js
│   │   ā”œā”€ā”€ sortedUniqBy.js
│   │   ā”œā”€ā”€ split.js
│   │   ā”œā”€ā”€ spread.js
│   │   ā”œā”€ā”€ startCase.js
│   │   ā”œā”€ā”€ startsWith.js
│   │   ā”œā”€ā”€ string.js
│   │   ā”œā”€ā”€ stubArray.js
│   │   ā”œā”€ā”€ stubFalse.js
│   │   ā”œā”€ā”€ stubObject.js
│   │   ā”œā”€ā”€ stubString.js
│   │   ā”œā”€ā”€ stubTrue.js
│   │   ā”œā”€ā”€ subtract.js
│   │   ā”œā”€ā”€ sum.js
│   │   ā”œā”€ā”€ sumBy.js
│   │   ā”œā”€ā”€ tail.js
│   │   ā”œā”€ā”€ take.js
│   │   ā”œā”€ā”€ takeRight.js
│   │   ā”œā”€ā”€ takeRightWhile.js
│   │   ā”œā”€ā”€ takeWhile.js
│   │   ā”œā”€ā”€ tap.js
│   │   ā”œā”€ā”€ template.js
│   │   ā”œā”€ā”€ templateSettings.js
│   │   ā”œā”€ā”€ throttle.js
│   │   ā”œā”€ā”€ thru.js
│   │   ā”œā”€ā”€ times.js
│   │   ā”œā”€ā”€ toArray.js
│   │   ā”œā”€ā”€ toFinite.js
│   │   ā”œā”€ā”€ toInteger.js
│   │   ā”œā”€ā”€ toIterator.js
│   │   ā”œā”€ā”€ toJSON.js
│   │   ā”œā”€ā”€ toLength.js
│   │   ā”œā”€ā”€ toLower.js
│   │   ā”œā”€ā”€ toNumber.js
│   │   ā”œā”€ā”€ toPairs.js
│   │   ā”œā”€ā”€ toPairsIn.js
│   │   ā”œā”€ā”€ toPath.js
│   │   ā”œā”€ā”€ toPlainObject.js
│   │   ā”œā”€ā”€ toSafeInteger.js
│   │   ā”œā”€ā”€ toString.js
│   │   ā”œā”€ā”€ toUpper.js
│   │   ā”œā”€ā”€ transform.js
│   │   ā”œā”€ā”€ trim.js
│   │   ā”œā”€ā”€ trimEnd.js
│   │   ā”œā”€ā”€ trimStart.js
│   │   ā”œā”€ā”€ truncate.js
│   │   ā”œā”€ā”€ unary.js
│   │   ā”œā”€ā”€ unescape.js
│   │   ā”œā”€ā”€ union.js
│   │   ā”œā”€ā”€ unionBy.js
│   │   ā”œā”€ā”€ unionWith.js
│   │   ā”œā”€ā”€ uniq.js
│   │   ā”œā”€ā”€ uniqBy.js
│   │   ā”œā”€ā”€ uniqWith.js
│   │   ā”œā”€ā”€ uniqueId.js
│   │   ā”œā”€ā”€ unset.js
│   │   ā”œā”€ā”€ unzip.js
│   │   ā”œā”€ā”€ unzipWith.js
│   │   ā”œā”€ā”€ update.js
│   │   ā”œā”€ā”€ updateWith.js
│   │   ā”œā”€ā”€ upperCase.js
│   │   ā”œā”€ā”€ upperFirst.js
│   │   ā”œā”€ā”€ util.js
│   │   ā”œā”€ā”€ value.js
│   │   ā”œā”€ā”€ valueOf.js
│   │   ā”œā”€ā”€ values.js
│   │   ā”œā”€ā”€ valuesIn.js
│   │   ā”œā”€ā”€ without.js
│   │   ā”œā”€ā”€ words.js
│   │   ā”œā”€ā”€ wrap.js
│   │   ā”œā”€ā”€ wrapperAt.js
│   │   ā”œā”€ā”€ wrapperChain.js
│   │   ā”œā”€ā”€ wrapperLodash.js
│   │   ā”œā”€ā”€ wrapperReverse.js
│   │   ā”œā”€ā”€ wrapperValue.js
│   │   ā”œā”€ā”€ xor.js
│   │   ā”œā”€ā”€ xorBy.js
│   │   ā”œā”€ā”€ xorWith.js
│   │   ā”œā”€ā”€ zip.js
│   │   ā”œā”€ā”€ zipObject.js
│   │   ā”œā”€ā”€ zipObjectDeep.js
│   │   └── zipWith.js
│   ā”œā”€ā”€ lodash-es
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ _DataView.js
│   │   ā”œā”€ā”€ _Hash.js
│   │   ā”œā”€ā”€ _LazyWrapper.js
│   │   ā”œā”€ā”€ _ListCache.js
│   │   ā”œā”€ā”€ _LodashWrapper.js
│   │   ā”œā”€ā”€ _Map.js
│   │   ā”œā”€ā”€ _MapCache.js
│   │   ā”œā”€ā”€ _Promise.js
│   │   ā”œā”€ā”€ _Set.js
│   │   ā”œā”€ā”€ _SetCache.js
│   │   ā”œā”€ā”€ _Stack.js
│   │   ā”œā”€ā”€ _Symbol.js
│   │   ā”œā”€ā”€ _Uint8Array.js
│   │   ā”œā”€ā”€ _WeakMap.js
│   │   ā”œā”€ā”€ _addMapEntry.js
│   │   ā”œā”€ā”€ _addSetEntry.js
│   │   ā”œā”€ā”€ _apply.js
│   │   ā”œā”€ā”€ _arrayAggregator.js
│   │   ā”œā”€ā”€ _arrayEach.js
│   │   ā”œā”€ā”€ _arrayEachRight.js
│   │   ā”œā”€ā”€ _arrayEvery.js
│   │   ā”œā”€ā”€ _arrayFilter.js
│   │   ā”œā”€ā”€ _arrayIncludes.js
│   │   ā”œā”€ā”€ _arrayIncludesWith.js
│   │   ā”œā”€ā”€ _arrayLikeKeys.js
│   │   ā”œā”€ā”€ _arrayMap.js
│   │   ā”œā”€ā”€ _arrayPush.js
│   │   ā”œā”€ā”€ _arrayReduce.js
│   │   ā”œā”€ā”€ _arrayReduceRight.js
│   │   ā”œā”€ā”€ _arraySample.js
│   │   ā”œā”€ā”€ _arraySampleSize.js
│   │   ā”œā”€ā”€ _arrayShuffle.js
│   │   ā”œā”€ā”€ _arraySome.js
│   │   ā”œā”€ā”€ _asciiSize.js
│   │   ā”œā”€ā”€ _asciiToArray.js
│   │   ā”œā”€ā”€ _asciiWords.js
│   │   ā”œā”€ā”€ _assignMergeValue.js
│   │   ā”œā”€ā”€ _assignValue.js
│   │   ā”œā”€ā”€ _assocIndexOf.js
│   │   ā”œā”€ā”€ _baseAggregator.js
│   │   ā”œā”€ā”€ _baseAssign.js
│   │   ā”œā”€ā”€ _baseAssignIn.js
│   │   ā”œā”€ā”€ _baseAssignValue.js
│   │   ā”œā”€ā”€ _baseAt.js
│   │   ā”œā”€ā”€ _baseClamp.js
│   │   ā”œā”€ā”€ _baseClone.js
│   │   ā”œā”€ā”€ _baseConforms.js
│   │   ā”œā”€ā”€ _baseConformsTo.js
│   │   ā”œā”€ā”€ _baseCreate.js
│   │   ā”œā”€ā”€ _baseDelay.js
│   │   ā”œā”€ā”€ _baseDifference.js
│   │   ā”œā”€ā”€ _baseEach.js
│   │   ā”œā”€ā”€ _baseEachRight.js
│   │   ā”œā”€ā”€ _baseEvery.js
│   │   ā”œā”€ā”€ _baseExtremum.js
│   │   ā”œā”€ā”€ _baseFill.js
│   │   ā”œā”€ā”€ _baseFilter.js
│   │   ā”œā”€ā”€ _baseFindIndex.js
│   │   ā”œā”€ā”€ _baseFindKey.js
│   │   ā”œā”€ā”€ _baseFlatten.js
│   │   ā”œā”€ā”€ _baseFor.js
│   │   ā”œā”€ā”€ _baseForOwn.js
│   │   ā”œā”€ā”€ _baseForOwnRight.js
│   │   ā”œā”€ā”€ _baseForRight.js
│   │   ā”œā”€ā”€ _baseFunctions.js
│   │   ā”œā”€ā”€ _baseGet.js
│   │   ā”œā”€ā”€ _baseGetAllKeys.js
│   │   ā”œā”€ā”€ _baseGetTag.js
│   │   ā”œā”€ā”€ _baseGt.js
│   │   ā”œā”€ā”€ _baseHas.js
│   │   ā”œā”€ā”€ _baseHasIn.js
│   │   ā”œā”€ā”€ _baseInRange.js
│   │   ā”œā”€ā”€ _baseIndexOf.js
│   │   ā”œā”€ā”€ _baseIndexOfWith.js
│   │   ā”œā”€ā”€ _baseIntersection.js
│   │   ā”œā”€ā”€ _baseInverter.js
│   │   ā”œā”€ā”€ _baseInvoke.js
│   │   ā”œā”€ā”€ _baseIsArguments.js
│   │   ā”œā”€ā”€ _baseIsArrayBuffer.js
│   │   ā”œā”€ā”€ _baseIsDate.js
│   │   ā”œā”€ā”€ _baseIsEqual.js
│   │   ā”œā”€ā”€ _baseIsEqualDeep.js
│   │   ā”œā”€ā”€ _baseIsMap.js
│   │   ā”œā”€ā”€ _baseIsMatch.js
│   │   ā”œā”€ā”€ _baseIsNaN.js
│   │   ā”œā”€ā”€ _baseIsNative.js
│   │   ā”œā”€ā”€ _baseIsRegExp.js
│   │   ā”œā”€ā”€ _baseIsSet.js
│   │   ā”œā”€ā”€ _baseIsTypedArray.js
│   │   ā”œā”€ā”€ _baseIteratee.js
│   │   ā”œā”€ā”€ _baseKeys.js
│   │   ā”œā”€ā”€ _baseKeysIn.js
│   │   ā”œā”€ā”€ _baseLodash.js
│   │   ā”œā”€ā”€ _baseLt.js
│   │   ā”œā”€ā”€ _baseMap.js
│   │   ā”œā”€ā”€ _baseMatches.js
│   │   ā”œā”€ā”€ _baseMatchesProperty.js
│   │   ā”œā”€ā”€ _baseMean.js
│   │   ā”œā”€ā”€ _baseMerge.js
│   │   ā”œā”€ā”€ _baseMergeDeep.js
│   │   ā”œā”€ā”€ _baseNth.js
│   │   ā”œā”€ā”€ _baseOrderBy.js
│   │   ā”œā”€ā”€ _basePick.js
│   │   ā”œā”€ā”€ _basePickBy.js
│   │   ā”œā”€ā”€ _baseProperty.js
│   │   ā”œā”€ā”€ _basePropertyDeep.js
│   │   ā”œā”€ā”€ _basePropertyOf.js
│   │   ā”œā”€ā”€ _basePullAll.js
│   │   ā”œā”€ā”€ _basePullAt.js
│   │   ā”œā”€ā”€ _baseRandom.js
│   │   ā”œā”€ā”€ _baseRange.js
│   │   ā”œā”€ā”€ _baseReduce.js
│   │   ā”œā”€ā”€ _baseRepeat.js
│   │   ā”œā”€ā”€ _baseRest.js
│   │   ā”œā”€ā”€ _baseSample.js
│   │   ā”œā”€ā”€ _baseSampleSize.js
│   │   ā”œā”€ā”€ _baseSet.js
│   │   ā”œā”€ā”€ _baseSetData.js
│   │   ā”œā”€ā”€ _baseSetToString.js
│   │   ā”œā”€ā”€ _baseShuffle.js
│   │   ā”œā”€ā”€ _baseSlice.js
│   │   ā”œā”€ā”€ _baseSome.js
│   │   ā”œā”€ā”€ _baseSortBy.js
│   │   ā”œā”€ā”€ _baseSortedIndex.js
│   │   ā”œā”€ā”€ _baseSortedIndexBy.js
│   │   ā”œā”€ā”€ _baseSortedUniq.js
│   │   ā”œā”€ā”€ _baseSum.js
│   │   ā”œā”€ā”€ _baseTimes.js
│   │   ā”œā”€ā”€ _baseToNumber.js
│   │   ā”œā”€ā”€ _baseToPairs.js
│   │   ā”œā”€ā”€ _baseToString.js
│   │   ā”œā”€ā”€ _baseTrim.js
│   │   ā”œā”€ā”€ _baseUnary.js
│   │   ā”œā”€ā”€ _baseUniq.js
│   │   ā”œā”€ā”€ _baseUnset.js
│   │   ā”œā”€ā”€ _baseUpdate.js
│   │   ā”œā”€ā”€ _baseValues.js
│   │   ā”œā”€ā”€ _baseWhile.js
│   │   ā”œā”€ā”€ _baseWrapperValue.js
│   │   ā”œā”€ā”€ _baseXor.js
│   │   ā”œā”€ā”€ _baseZipObject.js
│   │   ā”œā”€ā”€ _cacheHas.js
│   │   ā”œā”€ā”€ _castArrayLikeObject.js
│   │   ā”œā”€ā”€ _castFunction.js
│   │   ā”œā”€ā”€ _castPath.js
│   │   ā”œā”€ā”€ _castRest.js
│   │   ā”œā”€ā”€ _castSlice.js
│   │   ā”œā”€ā”€ _charsEndIndex.js
│   │   ā”œā”€ā”€ _charsStartIndex.js
│   │   ā”œā”€ā”€ _cloneArrayBuffer.js
│   │   ā”œā”€ā”€ _cloneBuffer.js
│   │   ā”œā”€ā”€ _cloneDataView.js
│   │   ā”œā”€ā”€ _cloneMap.js
│   │   ā”œā”€ā”€ _cloneRegExp.js
│   │   ā”œā”€ā”€ _cloneSet.js
│   │   ā”œā”€ā”€ _cloneSymbol.js
│   │   ā”œā”€ā”€ _cloneTypedArray.js
│   │   ā”œā”€ā”€ _compareAscending.js
│   │   ā”œā”€ā”€ _compareMultiple.js
│   │   ā”œā”€ā”€ _composeArgs.js
│   │   ā”œā”€ā”€ _composeArgsRight.js
│   │   ā”œā”€ā”€ _copyArray.js
│   │   ā”œā”€ā”€ _copyObject.js
│   │   ā”œā”€ā”€ _copySymbols.js
│   │   ā”œā”€ā”€ _copySymbolsIn.js
│   │   ā”œā”€ā”€ _coreJsData.js
│   │   ā”œā”€ā”€ _countHolders.js
│   │   ā”œā”€ā”€ _createAggregator.js
│   │   ā”œā”€ā”€ _createAssigner.js
│   │   ā”œā”€ā”€ _createBaseEach.js
│   │   ā”œā”€ā”€ _createBaseFor.js
│   │   ā”œā”€ā”€ _createBind.js
│   │   ā”œā”€ā”€ _createCaseFirst.js
│   │   ā”œā”€ā”€ _createCompounder.js
│   │   ā”œā”€ā”€ _createCtor.js
│   │   ā”œā”€ā”€ _createCurry.js
│   │   ā”œā”€ā”€ _createFind.js
│   │   ā”œā”€ā”€ _createFlow.js
│   │   ā”œā”€ā”€ _createHybrid.js
│   │   ā”œā”€ā”€ _createInverter.js
│   │   ā”œā”€ā”€ _createMathOperation.js
│   │   ā”œā”€ā”€ _createOver.js
│   │   ā”œā”€ā”€ _createPadding.js
│   │   ā”œā”€ā”€ _createPartial.js
│   │   ā”œā”€ā”€ _createRange.js
│   │   ā”œā”€ā”€ _createRecurry.js
│   │   ā”œā”€ā”€ _createRelationalOperation.js
│   │   ā”œā”€ā”€ _createRound.js
│   │   ā”œā”€ā”€ _createSet.js
│   │   ā”œā”€ā”€ _createToPairs.js
│   │   ā”œā”€ā”€ _createWrap.js
│   │   ā”œā”€ā”€ _customDefaultsAssignIn.js
│   │   ā”œā”€ā”€ _customDefaultsMerge.js
│   │   ā”œā”€ā”€ _customOmitClone.js
│   │   ā”œā”€ā”€ _deburrLetter.js
│   │   ā”œā”€ā”€ _defineProperty.js
│   │   ā”œā”€ā”€ _equalArrays.js
│   │   ā”œā”€ā”€ _equalByTag.js
│   │   ā”œā”€ā”€ _equalObjects.js
│   │   ā”œā”€ā”€ _escapeHtmlChar.js
│   │   ā”œā”€ā”€ _escapeStringChar.js
│   │   ā”œā”€ā”€ _flatRest.js
│   │   ā”œā”€ā”€ _freeGlobal.js
│   │   ā”œā”€ā”€ _getAllKeys.js
│   │   ā”œā”€ā”€ _getAllKeysIn.js
│   │   ā”œā”€ā”€ _getData.js
│   │   ā”œā”€ā”€ _getFuncName.js
│   │   ā”œā”€ā”€ _getHolder.js
│   │   ā”œā”€ā”€ _getMapData.js
│   │   ā”œā”€ā”€ _getMatchData.js
│   │   ā”œā”€ā”€ _getNative.js
│   │   ā”œā”€ā”€ _getPrototype.js
│   │   ā”œā”€ā”€ _getRawTag.js
│   │   ā”œā”€ā”€ _getSymbols.js
│   │   ā”œā”€ā”€ _getSymbolsIn.js
│   │   ā”œā”€ā”€ _getTag.js
│   │   ā”œā”€ā”€ _getValue.js
│   │   ā”œā”€ā”€ _getView.js
│   │   ā”œā”€ā”€ _getWrapDetails.js
│   │   ā”œā”€ā”€ _hasPath.js
│   │   ā”œā”€ā”€ _hasUnicode.js
│   │   ā”œā”€ā”€ _hasUnicodeWord.js
│   │   ā”œā”€ā”€ _hashClear.js
│   │   ā”œā”€ā”€ _hashDelete.js
│   │   ā”œā”€ā”€ _hashGet.js
│   │   ā”œā”€ā”€ _hashHas.js
│   │   ā”œā”€ā”€ _hashSet.js
│   │   ā”œā”€ā”€ _initCloneArray.js
│   │   ā”œā”€ā”€ _initCloneByTag.js
│   │   ā”œā”€ā”€ _initCloneObject.js
│   │   ā”œā”€ā”€ _insertWrapDetails.js
│   │   ā”œā”€ā”€ _isFlattenable.js
│   │   ā”œā”€ā”€ _isIndex.js
│   │   ā”œā”€ā”€ _isIterateeCall.js
│   │   ā”œā”€ā”€ _isKey.js
│   │   ā”œā”€ā”€ _isKeyable.js
│   │   ā”œā”€ā”€ _isLaziable.js
│   │   ā”œā”€ā”€ _isMaskable.js
│   │   ā”œā”€ā”€ _isMasked.js
│   │   ā”œā”€ā”€ _isPrototype.js
│   │   ā”œā”€ā”€ _isStrictComparable.js
│   │   ā”œā”€ā”€ _iteratorToArray.js
│   │   ā”œā”€ā”€ _lazyClone.js
│   │   ā”œā”€ā”€ _lazyReverse.js
│   │   ā”œā”€ā”€ _lazyValue.js
│   │   ā”œā”€ā”€ _listCacheClear.js
│   │   ā”œā”€ā”€ _listCacheDelete.js
│   │   ā”œā”€ā”€ _listCacheGet.js
│   │   ā”œā”€ā”€ _listCacheHas.js
│   │   ā”œā”€ā”€ _listCacheSet.js
│   │   ā”œā”€ā”€ _mapCacheClear.js
│   │   ā”œā”€ā”€ _mapCacheDelete.js
│   │   ā”œā”€ā”€ _mapCacheGet.js
│   │   ā”œā”€ā”€ _mapCacheHas.js
│   │   ā”œā”€ā”€ _mapCacheSet.js
│   │   ā”œā”€ā”€ _mapToArray.js
│   │   ā”œā”€ā”€ _matchesStrictComparable.js
│   │   ā”œā”€ā”€ _memoizeCapped.js
│   │   ā”œā”€ā”€ _mergeData.js
│   │   ā”œā”€ā”€ _metaMap.js
│   │   ā”œā”€ā”€ _nativeCreate.js
│   │   ā”œā”€ā”€ _nativeKeys.js
│   │   ā”œā”€ā”€ _nativeKeysIn.js
│   │   ā”œā”€ā”€ _nodeUtil.js
│   │   ā”œā”€ā”€ _objectToString.js
│   │   ā”œā”€ā”€ _overArg.js
│   │   ā”œā”€ā”€ _overRest.js
│   │   ā”œā”€ā”€ _parent.js
│   │   ā”œā”€ā”€ _reEscape.js
│   │   ā”œā”€ā”€ _reEvaluate.js
│   │   ā”œā”€ā”€ _reInterpolate.js
│   │   ā”œā”€ā”€ _realNames.js
│   │   ā”œā”€ā”€ _reorder.js
│   │   ā”œā”€ā”€ _replaceHolders.js
│   │   ā”œā”€ā”€ _root.js
│   │   ā”œā”€ā”€ _safeGet.js
│   │   ā”œā”€ā”€ _setCacheAdd.js
│   │   ā”œā”€ā”€ _setCacheHas.js
│   │   ā”œā”€ā”€ _setData.js
│   │   ā”œā”€ā”€ _setToArray.js
│   │   ā”œā”€ā”€ _setToPairs.js
│   │   ā”œā”€ā”€ _setToString.js
│   │   ā”œā”€ā”€ _setWrapToString.js
│   │   ā”œā”€ā”€ _shortOut.js
│   │   ā”œā”€ā”€ _shuffleSelf.js
│   │   ā”œā”€ā”€ _stackClear.js
│   │   ā”œā”€ā”€ _stackDelete.js
│   │   ā”œā”€ā”€ _stackGet.js
│   │   ā”œā”€ā”€ _stackHas.js
│   │   ā”œā”€ā”€ _stackSet.js
│   │   ā”œā”€ā”€ _strictIndexOf.js
│   │   ā”œā”€ā”€ _strictLastIndexOf.js
│   │   ā”œā”€ā”€ _stringSize.js
│   │   ā”œā”€ā”€ _stringToArray.js
│   │   ā”œā”€ā”€ _stringToPath.js
│   │   ā”œā”€ā”€ _toKey.js
│   │   ā”œā”€ā”€ _toSource.js
│   │   ā”œā”€ā”€ _trimmedEndIndex.js
│   │   ā”œā”€ā”€ _unescapeHtmlChar.js
│   │   ā”œā”€ā”€ _unicodeSize.js
│   │   ā”œā”€ā”€ _unicodeToArray.js
│   │   ā”œā”€ā”€ _unicodeWords.js
│   │   ā”œā”€ā”€ _updateWrapDetails.js
│   │   ā”œā”€ā”€ _wrapperClone.js
│   │   ā”œā”€ā”€ add.js
│   │   ā”œā”€ā”€ after.js
│   │   ā”œā”€ā”€ array.default.js
│   │   ā”œā”€ā”€ array.js
│   │   ā”œā”€ā”€ ary.js
│   │   ā”œā”€ā”€ assign.js
│   │   ā”œā”€ā”€ assignIn.js
│   │   ā”œā”€ā”€ assignInWith.js
│   │   ā”œā”€ā”€ assignWith.js
│   │   ā”œā”€ā”€ at.js
│   │   ā”œā”€ā”€ attempt.js
│   │   ā”œā”€ā”€ before.js
│   │   ā”œā”€ā”€ bind.js
│   │   ā”œā”€ā”€ bindAll.js
│   │   ā”œā”€ā”€ bindKey.js
│   │   ā”œā”€ā”€ camelCase.js
│   │   ā”œā”€ā”€ capitalize.js
│   │   ā”œā”€ā”€ castArray.js
│   │   ā”œā”€ā”€ ceil.js
│   │   ā”œā”€ā”€ chain.js
│   │   ā”œā”€ā”€ chunk.js
│   │   ā”œā”€ā”€ clamp.js
│   │   ā”œā”€ā”€ clone.js
│   │   ā”œā”€ā”€ cloneDeep.js
│   │   ā”œā”€ā”€ cloneDeepWith.js
│   │   ā”œā”€ā”€ cloneWith.js
│   │   ā”œā”€ā”€ collection.default.js
│   │   ā”œā”€ā”€ collection.js
│   │   ā”œā”€ā”€ commit.js
│   │   ā”œā”€ā”€ compact.js
│   │   ā”œā”€ā”€ concat.js
│   │   ā”œā”€ā”€ cond.js
│   │   ā”œā”€ā”€ conforms.js
│   │   ā”œā”€ā”€ conformsTo.js
│   │   ā”œā”€ā”€ constant.js
│   │   ā”œā”€ā”€ countBy.js
│   │   ā”œā”€ā”€ create.js
│   │   ā”œā”€ā”€ curry.js
│   │   ā”œā”€ā”€ curryRight.js
│   │   ā”œā”€ā”€ date.default.js
│   │   ā”œā”€ā”€ date.js
│   │   ā”œā”€ā”€ debounce.js
│   │   ā”œā”€ā”€ deburr.js
│   │   ā”œā”€ā”€ defaultTo.js
│   │   ā”œā”€ā”€ defaults.js
│   │   ā”œā”€ā”€ defaultsDeep.js
│   │   ā”œā”€ā”€ defer.js
│   │   ā”œā”€ā”€ delay.js
│   │   ā”œā”€ā”€ difference.js
│   │   ā”œā”€ā”€ differenceBy.js
│   │   ā”œā”€ā”€ differenceWith.js
│   │   ā”œā”€ā”€ divide.js
│   │   ā”œā”€ā”€ drop.js
│   │   ā”œā”€ā”€ dropRight.js
│   │   ā”œā”€ā”€ dropRightWhile.js
│   │   ā”œā”€ā”€ dropWhile.js
│   │   ā”œā”€ā”€ each.js
│   │   ā”œā”€ā”€ eachRight.js
│   │   ā”œā”€ā”€ endsWith.js
│   │   ā”œā”€ā”€ entries.js
│   │   ā”œā”€ā”€ entriesIn.js
│   │   ā”œā”€ā”€ eq.js
│   │   ā”œā”€ā”€ escape.js
│   │   ā”œā”€ā”€ escapeRegExp.js
│   │   ā”œā”€ā”€ every.js
│   │   ā”œā”€ā”€ extend.js
│   │   ā”œā”€ā”€ extendWith.js
│   │   ā”œā”€ā”€ fill.js
│   │   ā”œā”€ā”€ filter.js
│   │   ā”œā”€ā”€ find.js
│   │   ā”œā”€ā”€ findIndex.js
│   │   ā”œā”€ā”€ findKey.js
│   │   ā”œā”€ā”€ findLast.js
│   │   ā”œā”€ā”€ findLastIndex.js
│   │   ā”œā”€ā”€ findLastKey.js
│   │   ā”œā”€ā”€ first.js
│   │   ā”œā”€ā”€ flake.lock
│   │   ā”œā”€ā”€ flake.nix
│   │   ā”œā”€ā”€ flatMap.js
│   │   ā”œā”€ā”€ flatMapDeep.js
│   │   ā”œā”€ā”€ flatMapDepth.js
│   │   ā”œā”€ā”€ flatten.js
│   │   ā”œā”€ā”€ flattenDeep.js
│   │   ā”œā”€ā”€ flattenDepth.js
│   │   ā”œā”€ā”€ flip.js
│   │   ā”œā”€ā”€ floor.js
│   │   ā”œā”€ā”€ flow.js
│   │   ā”œā”€ā”€ flowRight.js
│   │   ā”œā”€ā”€ forEach.js
│   │   ā”œā”€ā”€ forEachRight.js
│   │   ā”œā”€ā”€ forIn.js
│   │   ā”œā”€ā”€ forInRight.js
│   │   ā”œā”€ā”€ forOwn.js
│   │   ā”œā”€ā”€ forOwnRight.js
│   │   ā”œā”€ā”€ fromPairs.js
│   │   ā”œā”€ā”€ function.default.js
│   │   ā”œā”€ā”€ function.js
│   │   ā”œā”€ā”€ functions.js
│   │   ā”œā”€ā”€ functionsIn.js
│   │   ā”œā”€ā”€ get.js
│   │   ā”œā”€ā”€ groupBy.js
│   │   ā”œā”€ā”€ gt.js
│   │   ā”œā”€ā”€ gte.js
│   │   ā”œā”€ā”€ has.js
│   │   ā”œā”€ā”€ hasIn.js
│   │   ā”œā”€ā”€ head.js
│   │   ā”œā”€ā”€ identity.js
│   │   ā”œā”€ā”€ inRange.js
│   │   ā”œā”€ā”€ includes.js
│   │   ā”œā”€ā”€ indexOf.js
│   │   ā”œā”€ā”€ initial.js
│   │   ā”œā”€ā”€ intersection.js
│   │   ā”œā”€ā”€ intersectionBy.js
│   │   ā”œā”€ā”€ intersectionWith.js
│   │   ā”œā”€ā”€ invert.js
│   │   ā”œā”€ā”€ invertBy.js
│   │   ā”œā”€ā”€ invoke.js
│   │   ā”œā”€ā”€ invokeMap.js
│   │   ā”œā”€ā”€ isArguments.js
│   │   ā”œā”€ā”€ isArray.js
│   │   ā”œā”€ā”€ isArrayBuffer.js
│   │   ā”œā”€ā”€ isArrayLike.js
│   │   ā”œā”€ā”€ isArrayLikeObject.js
│   │   ā”œā”€ā”€ isBoolean.js
│   │   ā”œā”€ā”€ isBuffer.js
│   │   ā”œā”€ā”€ isDate.js
│   │   ā”œā”€ā”€ isElement.js
│   │   ā”œā”€ā”€ isEmpty.js
│   │   ā”œā”€ā”€ isEqual.js
│   │   ā”œā”€ā”€ isEqualWith.js
│   │   ā”œā”€ā”€ isError.js
│   │   ā”œā”€ā”€ isFinite.js
│   │   ā”œā”€ā”€ isFunction.js
│   │   ā”œā”€ā”€ isInteger.js
│   │   ā”œā”€ā”€ isLength.js
│   │   ā”œā”€ā”€ isMap.js
│   │   ā”œā”€ā”€ isMatch.js
│   │   ā”œā”€ā”€ isMatchWith.js
│   │   ā”œā”€ā”€ isNaN.js
│   │   ā”œā”€ā”€ isNative.js
│   │   ā”œā”€ā”€ isNil.js
│   │   ā”œā”€ā”€ isNull.js
│   │   ā”œā”€ā”€ isNumber.js
│   │   ā”œā”€ā”€ isObject.js
│   │   ā”œā”€ā”€ isObjectLike.js
│   │   ā”œā”€ā”€ isPlainObject.js
│   │   ā”œā”€ā”€ isRegExp.js
│   │   ā”œā”€ā”€ isSafeInteger.js
│   │   ā”œā”€ā”€ isSet.js
│   │   ā”œā”€ā”€ isString.js
│   │   ā”œā”€ā”€ isSymbol.js
│   │   ā”œā”€ā”€ isTypedArray.js
│   │   ā”œā”€ā”€ isUndefined.js
│   │   ā”œā”€ā”€ isWeakMap.js
│   │   ā”œā”€ā”€ isWeakSet.js
│   │   ā”œā”€ā”€ iteratee.js
│   │   ā”œā”€ā”€ join.js
│   │   ā”œā”€ā”€ kebabCase.js
│   │   ā”œā”€ā”€ keyBy.js
│   │   ā”œā”€ā”€ keys.js
│   │   ā”œā”€ā”€ keysIn.js
│   │   ā”œā”€ā”€ lang.default.js
│   │   ā”œā”€ā”€ lang.js
│   │   ā”œā”€ā”€ last.js
│   │   ā”œā”€ā”€ lastIndexOf.js
│   │   ā”œā”€ā”€ lodash.default.js
│   │   ā”œā”€ā”€ lodash.js
│   │   ā”œā”€ā”€ lowerCase.js
│   │   ā”œā”€ā”€ lowerFirst.js
│   │   ā”œā”€ā”€ lt.js
│   │   ā”œā”€ā”€ lte.js
│   │   ā”œā”€ā”€ map.js
│   │   ā”œā”€ā”€ mapKeys.js
│   │   ā”œā”€ā”€ mapValues.js
│   │   ā”œā”€ā”€ matches.js
│   │   ā”œā”€ā”€ matchesProperty.js
│   │   ā”œā”€ā”€ math.default.js
│   │   ā”œā”€ā”€ math.js
│   │   ā”œā”€ā”€ max.js
│   │   ā”œā”€ā”€ maxBy.js
│   │   ā”œā”€ā”€ mean.js
│   │   ā”œā”€ā”€ meanBy.js
│   │   ā”œā”€ā”€ memoize.js
│   │   ā”œā”€ā”€ merge.js
│   │   ā”œā”€ā”€ mergeWith.js
│   │   ā”œā”€ā”€ method.js
│   │   ā”œā”€ā”€ methodOf.js
│   │   ā”œā”€ā”€ min.js
│   │   ā”œā”€ā”€ minBy.js
│   │   ā”œā”€ā”€ mixin.js
│   │   ā”œā”€ā”€ multiply.js
│   │   ā”œā”€ā”€ negate.js
│   │   ā”œā”€ā”€ next.js
│   │   ā”œā”€ā”€ noop.js
│   │   ā”œā”€ā”€ now.js
│   │   ā”œā”€ā”€ nth.js
│   │   ā”œā”€ā”€ nthArg.js
│   │   ā”œā”€ā”€ number.default.js
│   │   ā”œā”€ā”€ number.js
│   │   ā”œā”€ā”€ object.default.js
│   │   ā”œā”€ā”€ object.js
│   │   ā”œā”€ā”€ omit.js
│   │   ā”œā”€ā”€ omitBy.js
│   │   ā”œā”€ā”€ once.js
│   │   ā”œā”€ā”€ orderBy.js
│   │   ā”œā”€ā”€ over.js
│   │   ā”œā”€ā”€ overArgs.js
│   │   ā”œā”€ā”€ overEvery.js
│   │   ā”œā”€ā”€ overSome.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ pad.js
│   │   ā”œā”€ā”€ padEnd.js
│   │   ā”œā”€ā”€ padStart.js
│   │   ā”œā”€ā”€ parseInt.js
│   │   ā”œā”€ā”€ partial.js
│   │   ā”œā”€ā”€ partialRight.js
│   │   ā”œā”€ā”€ partition.js
│   │   ā”œā”€ā”€ pick.js
│   │   ā”œā”€ā”€ pickBy.js
│   │   ā”œā”€ā”€ plant.js
│   │   ā”œā”€ā”€ property.js
│   │   ā”œā”€ā”€ propertyOf.js
│   │   ā”œā”€ā”€ pull.js
│   │   ā”œā”€ā”€ pullAll.js
│   │   ā”œā”€ā”€ pullAllBy.js
│   │   ā”œā”€ā”€ pullAllWith.js
│   │   ā”œā”€ā”€ pullAt.js
│   │   ā”œā”€ā”€ random.js
│   │   ā”œā”€ā”€ range.js
│   │   ā”œā”€ā”€ rangeRight.js
│   │   ā”œā”€ā”€ rearg.js
│   │   ā”œā”€ā”€ reduce.js
│   │   ā”œā”€ā”€ reduceRight.js
│   │   ā”œā”€ā”€ reject.js
│   │   ā”œā”€ā”€ release.md
│   │   ā”œā”€ā”€ remove.js
│   │   ā”œā”€ā”€ repeat.js
│   │   ā”œā”€ā”€ replace.js
│   │   ā”œā”€ā”€ rest.js
│   │   ā”œā”€ā”€ result.js
│   │   ā”œā”€ā”€ reverse.js
│   │   ā”œā”€ā”€ round.js
│   │   ā”œā”€ā”€ sample.js
│   │   ā”œā”€ā”€ sampleSize.js
│   │   ā”œā”€ā”€ seq.default.js
│   │   ā”œā”€ā”€ seq.js
│   │   ā”œā”€ā”€ set.js
│   │   ā”œā”€ā”€ setWith.js
│   │   ā”œā”€ā”€ shuffle.js
│   │   ā”œā”€ā”€ size.js
│   │   ā”œā”€ā”€ slice.js
│   │   ā”œā”€ā”€ snakeCase.js
│   │   ā”œā”€ā”€ some.js
│   │   ā”œā”€ā”€ sortBy.js
│   │   ā”œā”€ā”€ sortedIndex.js
│   │   ā”œā”€ā”€ sortedIndexBy.js
│   │   ā”œā”€ā”€ sortedIndexOf.js
│   │   ā”œā”€ā”€ sortedLastIndex.js
│   │   ā”œā”€ā”€ sortedLastIndexBy.js
│   │   ā”œā”€ā”€ sortedLastIndexOf.js
│   │   ā”œā”€ā”€ sortedUniq.js
│   │   ā”œā”€ā”€ sortedUniqBy.js
│   │   ā”œā”€ā”€ split.js
│   │   ā”œā”€ā”€ spread.js
│   │   ā”œā”€ā”€ startCase.js
│   │   ā”œā”€ā”€ startsWith.js
│   │   ā”œā”€ā”€ string.default.js
│   │   ā”œā”€ā”€ string.js
│   │   ā”œā”€ā”€ stubArray.js
│   │   ā”œā”€ā”€ stubFalse.js
│   │   ā”œā”€ā”€ stubObject.js
│   │   ā”œā”€ā”€ stubString.js
│   │   ā”œā”€ā”€ stubTrue.js
│   │   ā”œā”€ā”€ subtract.js
│   │   ā”œā”€ā”€ sum.js
│   │   ā”œā”€ā”€ sumBy.js
│   │   ā”œā”€ā”€ tail.js
│   │   ā”œā”€ā”€ take.js
│   │   ā”œā”€ā”€ takeRight.js
│   │   ā”œā”€ā”€ takeRightWhile.js
│   │   ā”œā”€ā”€ takeWhile.js
│   │   ā”œā”€ā”€ tap.js
│   │   ā”œā”€ā”€ template.js
│   │   ā”œā”€ā”€ templateSettings.js
│   │   ā”œā”€ā”€ throttle.js
│   │   ā”œā”€ā”€ thru.js
│   │   ā”œā”€ā”€ times.js
│   │   ā”œā”€ā”€ toArray.js
│   │   ā”œā”€ā”€ toFinite.js
│   │   ā”œā”€ā”€ toInteger.js
│   │   ā”œā”€ā”€ toIterator.js
│   │   ā”œā”€ā”€ toJSON.js
│   │   ā”œā”€ā”€ toLength.js
│   │   ā”œā”€ā”€ toLower.js
│   │   ā”œā”€ā”€ toNumber.js
│   │   ā”œā”€ā”€ toPairs.js
│   │   ā”œā”€ā”€ toPairsIn.js
│   │   ā”œā”€ā”€ toPath.js
│   │   ā”œā”€ā”€ toPlainObject.js
│   │   ā”œā”€ā”€ toSafeInteger.js
│   │   ā”œā”€ā”€ toString.js
│   │   ā”œā”€ā”€ toUpper.js
│   │   ā”œā”€ā”€ transform.js
│   │   ā”œā”€ā”€ trim.js
│   │   ā”œā”€ā”€ trimEnd.js
│   │   ā”œā”€ā”€ trimStart.js
│   │   ā”œā”€ā”€ truncate.js
│   │   ā”œā”€ā”€ unary.js
│   │   ā”œā”€ā”€ unescape.js
│   │   ā”œā”€ā”€ union.js
│   │   ā”œā”€ā”€ unionBy.js
│   │   ā”œā”€ā”€ unionWith.js
│   │   ā”œā”€ā”€ uniq.js
│   │   ā”œā”€ā”€ uniqBy.js
│   │   ā”œā”€ā”€ uniqWith.js
│   │   ā”œā”€ā”€ uniqueId.js
│   │   ā”œā”€ā”€ unset.js
│   │   ā”œā”€ā”€ unzip.js
│   │   ā”œā”€ā”€ unzipWith.js
│   │   ā”œā”€ā”€ update.js
│   │   ā”œā”€ā”€ updateWith.js
│   │   ā”œā”€ā”€ upperCase.js
│   │   ā”œā”€ā”€ upperFirst.js
│   │   ā”œā”€ā”€ util.default.js
│   │   ā”œā”€ā”€ util.js
│   │   ā”œā”€ā”€ value.js
│   │   ā”œā”€ā”€ valueOf.js
│   │   ā”œā”€ā”€ values.js
│   │   ā”œā”€ā”€ valuesIn.js
│   │   ā”œā”€ā”€ without.js
│   │   ā”œā”€ā”€ words.js
│   │   ā”œā”€ā”€ wrap.js
│   │   ā”œā”€ā”€ wrapperAt.js
│   │   ā”œā”€ā”€ wrapperChain.js
│   │   ā”œā”€ā”€ wrapperLodash.js
│   │   ā”œā”€ā”€ wrapperReverse.js
│   │   ā”œā”€ā”€ wrapperValue.js
│   │   ā”œā”€ā”€ xor.js
│   │   ā”œā”€ā”€ xorBy.js
│   │   ā”œā”€ā”€ xorWith.js
│   │   ā”œā”€ā”€ zip.js
│   │   ā”œā”€ā”€ zipObject.js
│   │   ā”œā”€ā”€ zipObjectDeep.js
│   │   └── zipWith.js
│   ā”œā”€ā”€ lodash.merge
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ log-update
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ is-fullwidth-code-point
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   └── slice-ansi
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ license
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ loupe
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ arguments.d.ts
│   │   │   ā”œā”€ā”€ arguments.d.ts.map
│   │   │   ā”œā”€ā”€ arguments.js
│   │   │   ā”œā”€ā”€ array.d.ts
│   │   │   ā”œā”€ā”€ array.d.ts.map
│   │   │   ā”œā”€ā”€ array.js
│   │   │   ā”œā”€ā”€ bigint.d.ts
│   │   │   ā”œā”€ā”€ bigint.d.ts.map
│   │   │   ā”œā”€ā”€ bigint.js
│   │   │   ā”œā”€ā”€ class.d.ts
│   │   │   ā”œā”€ā”€ class.d.ts.map
│   │   │   ā”œā”€ā”€ class.js
│   │   │   ā”œā”€ā”€ date.d.ts
│   │   │   ā”œā”€ā”€ date.d.ts.map
│   │   │   ā”œā”€ā”€ date.js
│   │   │   ā”œā”€ā”€ error.d.ts
│   │   │   ā”œā”€ā”€ error.d.ts.map
│   │   │   ā”œā”€ā”€ error.js
│   │   │   ā”œā”€ā”€ function.d.ts
│   │   │   ā”œā”€ā”€ function.d.ts.map
│   │   │   ā”œā”€ā”€ function.js
│   │   │   ā”œā”€ā”€ helpers.d.ts
│   │   │   ā”œā”€ā”€ helpers.d.ts.map
│   │   │   ā”œā”€ā”€ helpers.js
│   │   │   ā”œā”€ā”€ html.d.ts
│   │   │   ā”œā”€ā”€ html.d.ts.map
│   │   │   ā”œā”€ā”€ html.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ map.d.ts
│   │   │   ā”œā”€ā”€ map.d.ts.map
│   │   │   ā”œā”€ā”€ map.js
│   │   │   ā”œā”€ā”€ number.d.ts
│   │   │   ā”œā”€ā”€ number.d.ts.map
│   │   │   ā”œā”€ā”€ number.js
│   │   │   ā”œā”€ā”€ object.d.ts
│   │   │   ā”œā”€ā”€ object.d.ts.map
│   │   │   ā”œā”€ā”€ object.js
│   │   │   ā”œā”€ā”€ promise.d.ts
│   │   │   ā”œā”€ā”€ promise.d.ts.map
│   │   │   ā”œā”€ā”€ promise.js
│   │   │   ā”œā”€ā”€ regexp.d.ts
│   │   │   ā”œā”€ā”€ regexp.d.ts.map
│   │   │   ā”œā”€ā”€ regexp.js
│   │   │   ā”œā”€ā”€ set.d.ts
│   │   │   ā”œā”€ā”€ set.d.ts.map
│   │   │   ā”œā”€ā”€ set.js
│   │   │   ā”œā”€ā”€ string.d.ts
│   │   │   ā”œā”€ā”€ string.d.ts.map
│   │   │   ā”œā”€ā”€ string.js
│   │   │   ā”œā”€ā”€ symbol.d.ts
│   │   │   ā”œā”€ā”€ symbol.d.ts.map
│   │   │   ā”œā”€ā”€ symbol.js
│   │   │   ā”œā”€ā”€ typedarray.d.ts
│   │   │   ā”œā”€ā”€ typedarray.d.ts.map
│   │   │   ā”œā”€ā”€ typedarray.js
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   ā”œā”€ā”€ types.d.ts.map
│   │   │   └── types.js
│   │   ā”œā”€ā”€ loupe.js
│   │   └── package.json
│   ā”œā”€ā”€ lru-cache
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commonjs
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ index.min.js
│   │   │   │   ā”œā”€ā”€ index.min.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ index.min.js
│   │   │       ā”œā”€ā”€ index.min.js.map
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ luxon
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ build
│   │   │   ā”œā”€ā”€ amd
│   │   │   │   ā”œā”€ā”€ luxon.js
│   │   │   │   └── luxon.js.map
│   │   │   ā”œā”€ā”€ cjs-browser
│   │   │   │   ā”œā”€ā”€ luxon.js
│   │   │   │   └── luxon.js.map
│   │   │   ā”œā”€ā”€ es6
│   │   │   │   ā”œā”€ā”€ luxon.js
│   │   │   │   └── luxon.js.map
│   │   │   ā”œā”€ā”€ global
│   │   │   │   ā”œā”€ā”€ luxon.js
│   │   │   │   ā”œā”€ā”€ luxon.js.map
│   │   │   │   ā”œā”€ā”€ luxon.min.js
│   │   │   │   └── luxon.min.js.map
│   │   │   └── node
│   │   │       ā”œā”€ā”€ luxon.js
│   │   │       └── luxon.js.map
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ datetime.js
│   │       ā”œā”€ā”€ duration.js
│   │       ā”œā”€ā”€ errors.js
│   │       ā”œā”€ā”€ impl
│   │       │   ā”œā”€ā”€ conversions.js
│   │       │   ā”œā”€ā”€ diff.js
│   │       │   ā”œā”€ā”€ digits.js
│   │       │   ā”œā”€ā”€ english.js
│   │       │   ā”œā”€ā”€ formats.js
│   │       │   ā”œā”€ā”€ formatter.js
│   │       │   ā”œā”€ā”€ invalid.js
│   │       │   ā”œā”€ā”€ locale.js
│   │       │   ā”œā”€ā”€ regexParser.js
│   │       │   ā”œā”€ā”€ tokenParser.js
│   │       │   ā”œā”€ā”€ util.js
│   │       │   └── zoneUtil.js
│   │       ā”œā”€ā”€ info.js
│   │       ā”œā”€ā”€ interval.js
│   │       ā”œā”€ā”€ luxon.js
│   │       ā”œā”€ā”€ package.json
│   │       ā”œā”€ā”€ settings.js
│   │       ā”œā”€ā”€ zone.js
│   │       └── zones
│   │           ā”œā”€ā”€ IANAZone.js
│   │           ā”œā”€ā”€ fixedOffsetZone.js
│   │           ā”œā”€ā”€ invalidZone.js
│   │           └── systemZone.js
│   ā”œā”€ā”€ magic-string
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ magic-string.cjs.d.ts
│   │   │   ā”œā”€ā”€ magic-string.cjs.js
│   │   │   ā”œā”€ā”€ magic-string.cjs.js.map
│   │   │   ā”œā”€ā”€ magic-string.es.d.mts
│   │   │   ā”œā”€ā”€ magic-string.es.mjs
│   │   │   ā”œā”€ā”€ magic-string.es.mjs.map
│   │   │   ā”œā”€ā”€ magic-string.umd.js
│   │   │   └── magic-string.umd.js.map
│   │   └── package.json
│   ā”œā”€ā”€ magicast
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ helpers.cjs
│   │   │   ā”œā”€ā”€ helpers.d.cts
│   │   │   ā”œā”€ā”€ helpers.d.mts
│   │   │   ā”œā”€ā”€ helpers.d.ts
│   │   │   ā”œā”€ā”€ helpers.mjs
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   └── shared
│   │   │       ā”œā”€ā”€ magicast.54e2233d.d.cts
│   │   │       ā”œā”€ā”€ magicast.54e2233d.d.mts
│   │   │       └── magicast.54e2233d.d.ts
│   │   ā”œā”€ā”€ helpers.d.ts
│   │   └── package.json
│   ā”œā”€ā”€ make-dir
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ make-synchronized
│   │   ā”œā”€ā”€ index.cjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── worker.mjs
│   ā”œā”€ā”€ markdown-it
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── markdown-it.mjs
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs.js
│   │   │   ā”œā”€ā”€ markdown-it.js
│   │   │   └── markdown-it.min.js
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ common
│   │   │   │   ā”œā”€ā”€ html_blocks.mjs
│   │   │   │   ā”œā”€ā”€ html_re.mjs
│   │   │   │   └── utils.mjs
│   │   │   ā”œā”€ā”€ helpers
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   ā”œā”€ā”€ parse_link_destination.mjs
│   │   │   │   ā”œā”€ā”€ parse_link_label.mjs
│   │   │   │   └── parse_link_title.mjs
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ parser_block.mjs
│   │   │   ā”œā”€ā”€ parser_core.mjs
│   │   │   ā”œā”€ā”€ parser_inline.mjs
│   │   │   ā”œā”€ā”€ presets
│   │   │   │   ā”œā”€ā”€ commonmark.mjs
│   │   │   │   ā”œā”€ā”€ default.mjs
│   │   │   │   └── zero.mjs
│   │   │   ā”œā”€ā”€ renderer.mjs
│   │   │   ā”œā”€ā”€ ruler.mjs
│   │   │   ā”œā”€ā”€ rules_block
│   │   │   │   ā”œā”€ā”€ blockquote.mjs
│   │   │   │   ā”œā”€ā”€ code.mjs
│   │   │   │   ā”œā”€ā”€ fence.mjs
│   │   │   │   ā”œā”€ā”€ heading.mjs
│   │   │   │   ā”œā”€ā”€ hr.mjs
│   │   │   │   ā”œā”€ā”€ html_block.mjs
│   │   │   │   ā”œā”€ā”€ lheading.mjs
│   │   │   │   ā”œā”€ā”€ list.mjs
│   │   │   │   ā”œā”€ā”€ paragraph.mjs
│   │   │   │   ā”œā”€ā”€ reference.mjs
│   │   │   │   ā”œā”€ā”€ state_block.mjs
│   │   │   │   └── table.mjs
│   │   │   ā”œā”€ā”€ rules_core
│   │   │   │   ā”œā”€ā”€ block.mjs
│   │   │   │   ā”œā”€ā”€ inline.mjs
│   │   │   │   ā”œā”€ā”€ linkify.mjs
│   │   │   │   ā”œā”€ā”€ normalize.mjs
│   │   │   │   ā”œā”€ā”€ replacements.mjs
│   │   │   │   ā”œā”€ā”€ smartquotes.mjs
│   │   │   │   ā”œā”€ā”€ state_core.mjs
│   │   │   │   └── text_join.mjs
│   │   │   ā”œā”€ā”€ rules_inline
│   │   │   │   ā”œā”€ā”€ autolink.mjs
│   │   │   │   ā”œā”€ā”€ backticks.mjs
│   │   │   │   ā”œā”€ā”€ balance_pairs.mjs
│   │   │   │   ā”œā”€ā”€ emphasis.mjs
│   │   │   │   ā”œā”€ā”€ entity.mjs
│   │   │   │   ā”œā”€ā”€ escape.mjs
│   │   │   │   ā”œā”€ā”€ fragments_join.mjs
│   │   │   │   ā”œā”€ā”€ html_inline.mjs
│   │   │   │   ā”œā”€ā”€ image.mjs
│   │   │   │   ā”œā”€ā”€ link.mjs
│   │   │   │   ā”œā”€ā”€ linkify.mjs
│   │   │   │   ā”œā”€ā”€ newline.mjs
│   │   │   │   ā”œā”€ā”€ state_inline.mjs
│   │   │   │   ā”œā”€ā”€ strikethrough.mjs
│   │   │   │   └── text.mjs
│   │   │   └── token.mjs
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── entities
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ decode.d.ts
│   │   │       │   ā”œā”€ā”€ decode.d.ts.map
│   │   │       │   ā”œā”€ā”€ decode.js
│   │   │       │   ā”œā”€ā”€ decode.js.map
│   │   │       │   ā”œā”€ā”€ decode_codepoint.d.ts
│   │   │       │   ā”œā”€ā”€ decode_codepoint.d.ts.map
│   │   │       │   ā”œā”€ā”€ decode_codepoint.js
│   │   │       │   ā”œā”€ā”€ decode_codepoint.js.map
│   │   │       │   ā”œā”€ā”€ encode.d.ts
│   │   │       │   ā”œā”€ā”€ encode.d.ts.map
│   │   │       │   ā”œā”€ā”€ encode.js
│   │   │       │   ā”œā”€ā”€ encode.js.map
│   │   │       │   ā”œā”€ā”€ escape.d.ts
│   │   │       │   ā”œā”€ā”€ escape.d.ts.map
│   │   │       │   ā”œā”€ā”€ escape.js
│   │   │       │   ā”œā”€ā”€ escape.js.map
│   │   │       │   ā”œā”€ā”€ esm
│   │   │       │   │   ā”œā”€ā”€ decode.d.ts
│   │   │       │   │   ā”œā”€ā”€ decode.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ decode.js
│   │   │       │   │   ā”œā”€ā”€ decode.js.map
│   │   │       │   │   ā”œā”€ā”€ decode_codepoint.d.ts
│   │   │       │   │   ā”œā”€ā”€ decode_codepoint.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ decode_codepoint.js
│   │   │       │   │   ā”œā”€ā”€ decode_codepoint.js.map
│   │   │       │   │   ā”œā”€ā”€ encode.d.ts
│   │   │       │   │   ā”œā”€ā”€ encode.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ encode.js
│   │   │       │   │   ā”œā”€ā”€ encode.js.map
│   │   │       │   │   ā”œā”€ā”€ escape.d.ts
│   │   │       │   │   ā”œā”€ā”€ escape.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ escape.js
│   │   │       │   │   ā”œā”€ā”€ escape.js.map
│   │   │       │   │   ā”œā”€ā”€ generated
│   │   │       │   │   │   ā”œā”€ā”€ decode-data-html.d.ts
│   │   │       │   │   │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │   │       │   │   │   ā”œā”€ā”€ decode-data-html.js
│   │   │       │   │   │   ā”œā”€ā”€ decode-data-html.js.map
│   │   │       │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │   │       │   │   │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │   │       │   │   │   ā”œā”€ā”€ decode-data-xml.js
│   │   │       │   │   │   ā”œā”€ā”€ decode-data-xml.js.map
│   │   │       │   │   │   ā”œā”€ā”€ encode-html.d.ts
│   │   │       │   │   │   ā”œā”€ā”€ encode-html.d.ts.map
│   │   │       │   │   │   ā”œā”€ā”€ encode-html.js
│   │   │       │   │   │   └── encode-html.js.map
│   │   │       │   │   ā”œā”€ā”€ index.d.ts
│   │   │       │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ index.js
│   │   │       │   │   ā”œā”€ā”€ index.js.map
│   │   │       │   │   └── package.json
│   │   │       │   ā”œā”€ā”€ generated
│   │   │       │   │   ā”œā”€ā”€ decode-data-html.d.ts
│   │   │       │   │   ā”œā”€ā”€ decode-data-html.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ decode-data-html.js
│   │   │       │   │   ā”œā”€ā”€ decode-data-html.js.map
│   │   │       │   │   ā”œā”€ā”€ decode-data-xml.d.ts
│   │   │       │   │   ā”œā”€ā”€ decode-data-xml.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ decode-data-xml.js
│   │   │       │   │   ā”œā”€ā”€ decode-data-xml.js.map
│   │   │       │   │   ā”œā”€ā”€ encode-html.d.ts
│   │   │       │   │   ā”œā”€ā”€ encode-html.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ encode-html.js
│   │   │       │   │   └── encode-html.js.map
│   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │       │   ā”œā”€ā”€ index.d.ts.map
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   └── index.js.map
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   └── package.json
│   ā”œā”€ā”€ markdown-it-table-of-contents
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ fixtures
│   │       │   ā”œā”€ā”€ anchors-special-chars.html
│   │       │   ā”œā”€ā”€ anchors-special-chars.md
│   │       │   ā”œā”€ā”€ basic.html
│   │       │   ā”œā”€ā”€ basic.md
│   │       │   ā”œā”€ā”€ custom-attrs-with-anchors.html
│   │       │   ā”œā”€ā”€ custom-attrs.html
│   │       │   ā”œā”€ā”€ custom-attrs.md
│   │       │   ā”œā”€ā”€ empty.html
│   │       │   ā”œā”€ā”€ full-example-custom-container.html
│   │       │   ā”œā”€ā”€ full-example-list-attrs.html
│   │       │   ā”œā”€ā”€ full-example.html
│   │       │   ā”œā”€ā”€ full-example.md
│   │       │   ā”œā”€ā”€ multi-level-1234.html
│   │       │   ā”œā”€ā”€ multi-level-23.html
│   │       │   ā”œā”€ā”€ multi-level.md
│   │       │   ā”œā”€ā”€ omit.html
│   │       │   ā”œā”€ā”€ omit.md
│   │       │   ā”œā”€ā”€ simple-1-level.html
│   │       │   ā”œā”€ā”€ simple-default.html
│   │       │   ā”œā”€ā”€ simple-with-anchors.html
│   │       │   ā”œā”€ā”€ simple-with-duplicate-headings.html
│   │       │   ā”œā”€ā”€ simple-with-duplicate-headings.md
│   │       │   ā”œā”€ā”€ simple-with-header-footer.html
│   │       │   ā”œā”€ā”€ simple-with-heading-links.html
│   │       │   ā”œā”€ā”€ simple-with-heading-links.md
│   │       │   ā”œā”€ā”€ simple-with-markdown-formatting.html
│   │       │   ā”œā”€ā”€ simple-with-markdown-formatting.md
│   │       │   ā”œā”€ā”€ simple-with-transform-link.html
│   │       │   ā”œā”€ā”€ simple.md
│   │       │   ā”œā”€ā”€ strange-order.html
│   │       │   └── strange-order.md
│   │       └── modules
│   │           └── test.js
│   ā”œā”€ā”€ marked
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   ā”œā”€ā”€ main.js
│   │   │   └── marked.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ marked.d.ts
│   │   │   ā”œā”€ā”€ marked.esm.js
│   │   │   ā”œā”€ā”€ marked.esm.js.map
│   │   │   ā”œā”€ā”€ marked.umd.js
│   │   │   └── marked.umd.js.map
│   │   ā”œā”€ā”€ man
│   │   │   ā”œā”€ā”€ marked.1
│   │   │   └── marked.1.md
│   │   └── package.json
│   ā”œā”€ā”€ math-intrinsics
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ abs.d.ts
│   │   ā”œā”€ā”€ abs.js
│   │   ā”œā”€ā”€ constants
│   │   │   ā”œā”€ā”€ maxArrayLength.d.ts
│   │   │   ā”œā”€ā”€ maxArrayLength.js
│   │   │   ā”œā”€ā”€ maxSafeInteger.d.ts
│   │   │   ā”œā”€ā”€ maxSafeInteger.js
│   │   │   ā”œā”€ā”€ maxValue.d.ts
│   │   │   └── maxValue.js
│   │   ā”œā”€ā”€ floor.d.ts
│   │   ā”œā”€ā”€ floor.js
│   │   ā”œā”€ā”€ isFinite.d.ts
│   │   ā”œā”€ā”€ isFinite.js
│   │   ā”œā”€ā”€ isInteger.d.ts
│   │   ā”œā”€ā”€ isInteger.js
│   │   ā”œā”€ā”€ isNaN.d.ts
│   │   ā”œā”€ā”€ isNaN.js
│   │   ā”œā”€ā”€ isNegativeZero.d.ts
│   │   ā”œā”€ā”€ isNegativeZero.js
│   │   ā”œā”€ā”€ max.d.ts
│   │   ā”œā”€ā”€ max.js
│   │   ā”œā”€ā”€ min.d.ts
│   │   ā”œā”€ā”€ min.js
│   │   ā”œā”€ā”€ mod.d.ts
│   │   ā”œā”€ā”€ mod.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ pow.d.ts
│   │   ā”œā”€ā”€ pow.js
│   │   ā”œā”€ā”€ round.d.ts
│   │   ā”œā”€ā”€ round.js
│   │   ā”œā”€ā”€ sign.d.ts
│   │   ā”œā”€ā”€ sign.js
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ maximatch
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ mdn-data
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ api
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ inheritance.json
│   │   │   └── inheritance.schema.json
│   │   ā”œā”€ā”€ css
│   │   │   ā”œā”€ā”€ at-rules.json
│   │   │   ā”œā”€ā”€ at-rules.schema.json
│   │   │   ā”œā”€ā”€ definitions.json
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ properties.json
│   │   │   ā”œā”€ā”€ properties.schema.json
│   │   │   ā”œā”€ā”€ readme.md
│   │   │   ā”œā”€ā”€ selectors.json
│   │   │   ā”œā”€ā”€ selectors.schema.json
│   │   │   ā”œā”€ā”€ syntaxes.json
│   │   │   ā”œā”€ā”€ syntaxes.schema.json
│   │   │   ā”œā”€ā”€ types.json
│   │   │   ā”œā”€ā”€ types.schema.json
│   │   │   ā”œā”€ā”€ units.json
│   │   │   └── units.schema.json
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ l10n
│   │   │   ā”œā”€ā”€ css.json
│   │   │   └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ mdurl
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ build
│   │   │   └── index.cjs.js
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ decode.mjs
│   │   │   ā”œā”€ā”€ encode.mjs
│   │   │   ā”œā”€ā”€ format.mjs
│   │   │   └── parse.mjs
│   │   └── package.json
│   ā”œā”€ā”€ memoize
│   │   ā”œā”€ā”€ distribution
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ merge2
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ mermaid
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ README.zh-CN.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ Diagram.d.ts
│   │   │   ā”œā”€ā”€ __mocks__
│   │   │   │   └── mermaidAPI.d.ts
│   │   │   ā”œā”€ā”€ accessibility.d.ts
│   │   │   ā”œā”€ā”€ accessibility.spec.d.ts
│   │   │   ā”œā”€ā”€ assignWithDepth.d.ts
│   │   │   ā”œā”€ā”€ chunks
│   │   │   │   ā”œā”€ā”€ mermaid.core
│   │   │   │   │   ā”œā”€ā”€ architectureDiagram-KFL7JDKH.mjs
│   │   │   │   │   ā”œā”€ā”€ architectureDiagram-KFL7JDKH.mjs.map
│   │   │   │   │   ā”œā”€ā”€ blockDiagram-ZYB65J3Q.mjs
│   │   │   │   │   ā”œā”€ā”€ blockDiagram-ZYB65J3Q.mjs.map
│   │   │   │   │   ā”œā”€ā”€ c4Diagram-AAMF2YG6.mjs
│   │   │   │   │   ā”œā”€ā”€ c4Diagram-AAMF2YG6.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-4HWIWPIY.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-4HWIWPIY.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-62K37W7T.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-62K37W7T.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-7RNWAQOT.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-7RNWAQOT.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-ANTBXLJU.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-ANTBXLJU.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-CV3G5MRU.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-CV3G5MRU.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-FHKO5MBM.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-FHKO5MBM.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-GLLZNHP4.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-GLLZNHP4.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-JBRWN2VN.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-JBRWN2VN.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-JSVUIEYQ.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-JSVUIEYQ.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-LXBSTHXV.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-LXBSTHXV.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-MRT3R2DC.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-MRT3R2DC.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-NCRKNZAS.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-NCRKNZAS.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-NRVI72HA.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-NRVI72HA.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-NXG7ZM6U.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-NXG7ZM6U.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-OMD6QJNC.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-OMD6QJNC.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-T57MJCP2.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-T57MJCP2.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-U37J5Y7L.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-U37J5Y7L.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-VIW5F6AA.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-VIW5F6AA.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-WH6PBGIT.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-WH6PBGIT.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-WVR4S24B.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-WVR4S24B.mjs.map
│   │   │   │   │   ā”œā”€ā”€ classDiagram-3BZAVTQC.mjs
│   │   │   │   │   ā”œā”€ā”€ classDiagram-3BZAVTQC.mjs.map
│   │   │   │   │   ā”œā”€ā”€ classDiagram-v2-QTMF73CY.mjs
│   │   │   │   │   ā”œā”€ā”€ classDiagram-v2-QTMF73CY.mjs.map
│   │   │   │   │   ā”œā”€ā”€ dagre-2BBEFEWP.mjs
│   │   │   │   │   ā”œā”€ā”€ dagre-2BBEFEWP.mjs.map
│   │   │   │   │   ā”œā”€ā”€ diagram-4IRLE6MV.mjs
│   │   │   │   │   ā”œā”€ā”€ diagram-4IRLE6MV.mjs.map
│   │   │   │   │   ā”œā”€ā”€ diagram-GUPCWM2R.mjs
│   │   │   │   │   ā”œā”€ā”€ diagram-GUPCWM2R.mjs.map
│   │   │   │   │   ā”œā”€ā”€ diagram-RP2FKANI.mjs
│   │   │   │   │   ā”œā”€ā”€ diagram-RP2FKANI.mjs.map
│   │   │   │   │   ā”œā”€ā”€ erDiagram-HZWUO2LU.mjs
│   │   │   │   │   ā”œā”€ā”€ erDiagram-HZWUO2LU.mjs.map
│   │   │   │   │   ā”œā”€ā”€ flowDiagram-THRYKUMA.mjs
│   │   │   │   │   ā”œā”€ā”€ flowDiagram-THRYKUMA.mjs.map
│   │   │   │   │   ā”œā”€ā”€ ganttDiagram-WV7ZQ7D5.mjs
│   │   │   │   │   ā”œā”€ā”€ ganttDiagram-WV7ZQ7D5.mjs.map
│   │   │   │   │   ā”œā”€ā”€ gitGraphDiagram-OJR772UL.mjs
│   │   │   │   │   ā”œā”€ā”€ gitGraphDiagram-OJR772UL.mjs.map
│   │   │   │   │   ā”œā”€ā”€ infoDiagram-DDUCL6P7.mjs
│   │   │   │   │   ā”œā”€ā”€ infoDiagram-DDUCL6P7.mjs.map
│   │   │   │   │   ā”œā”€ā”€ journeyDiagram-FFXJYRFH.mjs
│   │   │   │   │   ā”œā”€ā”€ journeyDiagram-FFXJYRFH.mjs.map
│   │   │   │   │   ā”œā”€ā”€ kanban-definition-KOZQBZVT.mjs
│   │   │   │   │   ā”œā”€ā”€ kanban-definition-KOZQBZVT.mjs.map
│   │   │   │   │   ā”œā”€ā”€ mindmap-definition-LNHGMQRG.mjs
│   │   │   │   │   ā”œā”€ā”€ mindmap-definition-LNHGMQRG.mjs.map
│   │   │   │   │   ā”œā”€ā”€ pieDiagram-DBDJKBY4.mjs
│   │   │   │   │   ā”œā”€ā”€ pieDiagram-DBDJKBY4.mjs.map
│   │   │   │   │   ā”œā”€ā”€ quadrantDiagram-YPSRARAO.mjs
│   │   │   │   │   ā”œā”€ā”€ quadrantDiagram-YPSRARAO.mjs.map
│   │   │   │   │   ā”œā”€ā”€ requirementDiagram-EGVEC5DT.mjs
│   │   │   │   │   ā”œā”€ā”€ requirementDiagram-EGVEC5DT.mjs.map
│   │   │   │   │   ā”œā”€ā”€ sankeyDiagram-HRAUVNP4.mjs
│   │   │   │   │   ā”œā”€ā”€ sankeyDiagram-HRAUVNP4.mjs.map
│   │   │   │   │   ā”œā”€ā”€ sequenceDiagram-4MX5Z3NR.mjs
│   │   │   │   │   ā”œā”€ā”€ sequenceDiagram-4MX5Z3NR.mjs.map
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-UUKSUZ4H.mjs
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-UUKSUZ4H.mjs.map
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-v2-EYPG3UTE.mjs
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-v2-EYPG3UTE.mjs.map
│   │   │   │   │   ā”œā”€ā”€ timeline-definition-3HZDQTIS.mjs
│   │   │   │   │   ā”œā”€ā”€ timeline-definition-3HZDQTIS.mjs.map
│   │   │   │   │   ā”œā”€ā”€ xychartDiagram-FDP5SA34.mjs
│   │   │   │   │   └── xychartDiagram-FDP5SA34.mjs.map
│   │   │   │   ā”œā”€ā”€ mermaid.esm
│   │   │   │   │   ā”œā”€ā”€ architecture-U656AL7Q-2DQZITT3.mjs
│   │   │   │   │   ā”œā”€ā”€ architecture-U656AL7Q-2DQZITT3.mjs.map
│   │   │   │   │   ā”œā”€ā”€ architectureDiagram-L76ZKZTK.mjs
│   │   │   │   │   ā”œā”€ā”€ architectureDiagram-L76ZKZTK.mjs.map
│   │   │   │   │   ā”œā”€ā”€ blockDiagram-5FNOSGNS.mjs
│   │   │   │   │   ā”œā”€ā”€ blockDiagram-5FNOSGNS.mjs.map
│   │   │   │   │   ā”œā”€ā”€ c4Diagram-SNKOAWKG.mjs
│   │   │   │   │   ā”œā”€ā”€ c4Diagram-SNKOAWKG.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-3AU3J4PQ.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-3AU3J4PQ.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-6BOACQHV.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-6BOACQHV.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-BDULVJOL.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-BDULVJOL.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-BUTUGQLC.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-BUTUGQLC.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-COUQ6RZ3.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-COUQ6RZ3.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-DLQEHMXD.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-DLQEHMXD.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-DYEWET5N.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-DYEWET5N.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-EOAU2GW5.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-EOAU2GW5.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-FDU76KRX.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-FDU76KRX.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-G7G7YTX4.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-G7G7YTX4.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-GKOISANM.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-GKOISANM.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-GRZAG2UZ.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-GRZAG2UZ.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-HD3LK5B5.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-HD3LK5B5.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-IHYUGLNO.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-IHYUGLNO.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-ITLJA4XN.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-ITLJA4XN.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-JRY5QETF.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-JRY5QETF.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-JUNTMEQM.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-JUNTMEQM.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-K2ZEYYM2.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-K2ZEYYM2.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-MYTZ56J7.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-MYTZ56J7.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-NC4V57XB.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-NC4V57XB.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-S7TAX6XP.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-S7TAX6XP.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-SCLVSU6P.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-SCLVSU6P.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-SVWLYT5M.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-SVWLYT5M.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-T6S2XF3Z.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-T6S2XF3Z.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-TGZYFRKZ.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-TGZYFRKZ.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-UAC4R346.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-UAC4R346.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-UKINNZLQ.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-UKINNZLQ.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-UNAYP6HA.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-UNAYP6HA.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-VKJI5BFR.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-VKJI5BFR.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-VKUCNK32.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-VKUCNK32.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-VNOTBLTU.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-VNOTBLTU.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-W2DAKDSP.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-W2DAKDSP.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-W3YOBQ4T.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-W3YOBQ4T.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-YJGJQOYZ.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-YJGJQOYZ.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-YOB5EFFC.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-YOB5EFFC.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-ZHFZZXAM.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-ZHFZZXAM.mjs.map
│   │   │   │   │   ā”œā”€ā”€ chunk-ZRTU26WW.mjs
│   │   │   │   │   ā”œā”€ā”€ chunk-ZRTU26WW.mjs.map
│   │   │   │   │   ā”œā”€ā”€ classDiagram-DAIZTAAV.mjs
│   │   │   │   │   ā”œā”€ā”€ classDiagram-DAIZTAAV.mjs.map
│   │   │   │   │   ā”œā”€ā”€ classDiagram-v2-ZI3HNCDV.mjs
│   │   │   │   │   ā”œā”€ā”€ classDiagram-v2-ZI3HNCDV.mjs.map
│   │   │   │   │   ā”œā”€ā”€ dagre-VLAHSO5Z.mjs
│   │   │   │   │   ā”œā”€ā”€ dagre-VLAHSO5Z.mjs.map
│   │   │   │   │   ā”œā”€ā”€ diagram-QU4HLOLC.mjs
│   │   │   │   │   ā”œā”€ā”€ diagram-QU4HLOLC.mjs.map
│   │   │   │   │   ā”œā”€ā”€ diagram-SPVQQ4ZZ.mjs
│   │   │   │   │   ā”œā”€ā”€ diagram-SPVQQ4ZZ.mjs.map
│   │   │   │   │   ā”œā”€ā”€ diagram-TI2PIPJW.mjs
│   │   │   │   │   ā”œā”€ā”€ diagram-TI2PIPJW.mjs.map
│   │   │   │   │   ā”œā”€ā”€ erDiagram-ORVVWRID.mjs
│   │   │   │   │   ā”œā”€ā”€ erDiagram-ORVVWRID.mjs.map
│   │   │   │   │   ā”œā”€ā”€ flowDiagram-ADV24XW4.mjs
│   │   │   │   │   ā”œā”€ā”€ flowDiagram-ADV24XW4.mjs.map
│   │   │   │   │   ā”œā”€ā”€ ganttDiagram-NY35QN2E.mjs
│   │   │   │   │   ā”œā”€ā”€ ganttDiagram-NY35QN2E.mjs.map
│   │   │   │   │   ā”œā”€ā”€ gitGraph-F6HP7TQM-RIYFGEA3.mjs
│   │   │   │   │   ā”œā”€ā”€ gitGraph-F6HP7TQM-RIYFGEA3.mjs.map
│   │   │   │   │   ā”œā”€ā”€ gitGraphDiagram-36KJ7O45.mjs
│   │   │   │   │   ā”œā”€ā”€ gitGraphDiagram-36KJ7O45.mjs.map
│   │   │   │   │   ā”œā”€ā”€ info-NVLQJR56-3GTKGACL.mjs
│   │   │   │   │   ā”œā”€ā”€ info-NVLQJR56-3GTKGACL.mjs.map
│   │   │   │   │   ā”œā”€ā”€ infoDiagram-RMIF2PVV.mjs
│   │   │   │   │   ā”œā”€ā”€ infoDiagram-RMIF2PVV.mjs.map
│   │   │   │   │   ā”œā”€ā”€ journeyDiagram-JUIHLJSS.mjs
│   │   │   │   │   ā”œā”€ā”€ journeyDiagram-JUIHLJSS.mjs.map
│   │   │   │   │   ā”œā”€ā”€ kanban-definition-4447FNW2.mjs
│   │   │   │   │   ā”œā”€ā”€ kanban-definition-4447FNW2.mjs.map
│   │   │   │   │   ā”œā”€ā”€ katex-A6QSACVP.mjs
│   │   │   │   │   ā”œā”€ā”€ katex-A6QSACVP.mjs.map
│   │   │   │   │   ā”œā”€ā”€ mindmap-definition-KYUYEQSL.mjs
│   │   │   │   │   ā”œā”€ā”€ mindmap-definition-KYUYEQSL.mjs.map
│   │   │   │   │   ā”œā”€ā”€ packet-BFZMPI3H-E3KVMRDO.mjs
│   │   │   │   │   ā”œā”€ā”€ packet-BFZMPI3H-E3KVMRDO.mjs.map
│   │   │   │   │   ā”œā”€ā”€ pie-7BOR55EZ-MALFVDYE.mjs
│   │   │   │   │   ā”œā”€ā”€ pie-7BOR55EZ-MALFVDYE.mjs.map
│   │   │   │   │   ā”œā”€ā”€ pieDiagram-QE7GMA4C.mjs
│   │   │   │   │   ā”œā”€ā”€ pieDiagram-QE7GMA4C.mjs.map
│   │   │   │   │   ā”œā”€ā”€ quadrantDiagram-AK377B32.mjs
│   │   │   │   │   ā”œā”€ā”€ quadrantDiagram-AK377B32.mjs.map
│   │   │   │   │   ā”œā”€ā”€ radar-NHE76QYJ-244UGL3C.mjs
│   │   │   │   │   ā”œā”€ā”€ radar-NHE76QYJ-244UGL3C.mjs.map
│   │   │   │   │   ā”œā”€ā”€ requirementDiagram-MXMYOOAN.mjs
│   │   │   │   │   ā”œā”€ā”€ requirementDiagram-MXMYOOAN.mjs.map
│   │   │   │   │   ā”œā”€ā”€ sankeyDiagram-FLEJ7MD6.mjs
│   │   │   │   │   ā”œā”€ā”€ sankeyDiagram-FLEJ7MD6.mjs.map
│   │   │   │   │   ā”œā”€ā”€ sequenceDiagram-WN2LQSXR.mjs
│   │   │   │   │   ā”œā”€ā”€ sequenceDiagram-WN2LQSXR.mjs.map
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-MNTUIWRF.mjs
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-MNTUIWRF.mjs.map
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-v2-OVHUGLUH.mjs
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-v2-OVHUGLUH.mjs.map
│   │   │   │   │   ā”œā”€ā”€ timeline-definition-RLVNA6JK.mjs
│   │   │   │   │   ā”œā”€ā”€ timeline-definition-RLVNA6JK.mjs.map
│   │   │   │   │   ā”œā”€ā”€ treemap-KMMF4GRG-5JCI3IDA.mjs
│   │   │   │   │   ā”œā”€ā”€ treemap-KMMF4GRG-5JCI3IDA.mjs.map
│   │   │   │   │   ā”œā”€ā”€ xychartDiagram-LLVWJMIC.mjs
│   │   │   │   │   └── xychartDiagram-LLVWJMIC.mjs.map
│   │   │   │   └── mermaid.esm.min
│   │   │   │       ā”œā”€ā”€ architecture-U656AL7Q-MUC43IVM.mjs
│   │   │   │       ā”œā”€ā”€ architecture-U656AL7Q-MUC43IVM.mjs.map
│   │   │   │       ā”œā”€ā”€ architectureDiagram-GXAZU6X5.mjs
│   │   │   │       ā”œā”€ā”€ architectureDiagram-GXAZU6X5.mjs.map
│   │   │   │       ā”œā”€ā”€ blockDiagram-HV7WRKX4.mjs
│   │   │   │       ā”œā”€ā”€ blockDiagram-HV7WRKX4.mjs.map
│   │   │   │       ā”œā”€ā”€ c4Diagram-S26XAWAN.mjs
│   │   │   │       ā”œā”€ā”€ c4Diagram-S26XAWAN.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-3R3PQ5PD.mjs
│   │   │   │       ā”œā”€ā”€ chunk-3R3PQ5PD.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-44WDCOIT.mjs
│   │   │   │       ā”œā”€ā”€ chunk-44WDCOIT.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-4AZJR7FE.mjs
│   │   │   │       ā”œā”€ā”€ chunk-4AZJR7FE.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-4KE642ED.mjs
│   │   │   │       ā”œā”€ā”€ chunk-4KE642ED.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-5ZJXQJOJ.mjs
│   │   │   │       ā”œā”€ā”€ chunk-5ZJXQJOJ.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-6BY5RJGC.mjs
│   │   │   │       ā”œā”€ā”€ chunk-6BY5RJGC.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-7LIB5WBN.mjs
│   │   │   │       ā”œā”€ā”€ chunk-7LIB5WBN.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-7VIK3F2G.mjs
│   │   │   │       ā”œā”€ā”€ chunk-7VIK3F2G.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-DPMNACAB.mjs
│   │   │   │       ā”œā”€ā”€ chunk-DPMNACAB.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-EJZ3NKMF.mjs
│   │   │   │       ā”œā”€ā”€ chunk-EJZ3NKMF.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-F632ZYSZ.mjs
│   │   │   │       ā”œā”€ā”€ chunk-F632ZYSZ.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-FASC7IG4.mjs
│   │   │   │       ā”œā”€ā”€ chunk-FASC7IG4.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-GTKDMUJJ.mjs
│   │   │   │       ā”œā”€ā”€ chunk-GTKDMUJJ.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-IXVBHSNP.mjs
│   │   │   │       ā”œā”€ā”€ chunk-IXVBHSNP.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-JCWWVGLQ.mjs
│   │   │   │       ā”œā”€ā”€ chunk-JCWWVGLQ.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-JHXWDPGM.mjs
│   │   │   │       ā”œā”€ā”€ chunk-JHXWDPGM.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-JOFIKEML.mjs
│   │   │   │       ā”œā”€ā”€ chunk-JOFIKEML.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-L6MQJ2ZU.mjs
│   │   │   │       ā”œā”€ā”€ chunk-L6MQJ2ZU.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-LM6QDVU5.mjs
│   │   │   │       ā”œā”€ā”€ chunk-LM6QDVU5.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-MBJCTAW2.mjs
│   │   │   │       ā”œā”€ā”€ chunk-MBJCTAW2.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-P6UA7CIO.mjs
│   │   │   │       ā”œā”€ā”€ chunk-P6UA7CIO.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-RPR3SYFS.mjs
│   │   │   │       ā”œā”€ā”€ chunk-RPR3SYFS.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-S3YGE35Q.mjs
│   │   │   │       ā”œā”€ā”€ chunk-S3YGE35Q.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-S67DUUA5.mjs
│   │   │   │       ā”œā”€ā”€ chunk-S67DUUA5.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-SQHZINSB.mjs
│   │   │   │       ā”œā”€ā”€ chunk-SQHZINSB.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-TI4EEUUG.mjs
│   │   │   │       ā”œā”€ā”€ chunk-TI4EEUUG.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-U7M5BGKE.mjs
│   │   │   │       ā”œā”€ā”€ chunk-U7M5BGKE.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-V4WPH7A7.mjs
│   │   │   │       ā”œā”€ā”€ chunk-V4WPH7A7.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-VSLJSFIP.mjs
│   │   │   │       ā”œā”€ā”€ chunk-VSLJSFIP.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-WSUO5DN6.mjs
│   │   │   │       ā”œā”€ā”€ chunk-WSUO5DN6.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-XAVRVNBM.mjs
│   │   │   │       ā”œā”€ā”€ chunk-XAVRVNBM.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-XYY44ILV.mjs
│   │   │   │       ā”œā”€ā”€ chunk-XYY44ILV.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-YKNY556I.mjs
│   │   │   │       ā”œā”€ā”€ chunk-YKNY556I.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-YPUTD6PB.mjs
│   │   │   │       ā”œā”€ā”€ chunk-YPUTD6PB.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-Z2NOIGJN.mjs
│   │   │   │       ā”œā”€ā”€ chunk-Z2NOIGJN.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-ZN7TASNU.mjs
│   │   │   │       ā”œā”€ā”€ chunk-ZN7TASNU.mjs.map
│   │   │   │       ā”œā”€ā”€ chunk-ZZTKAOFA.mjs
│   │   │   │       ā”œā”€ā”€ chunk-ZZTKAOFA.mjs.map
│   │   │   │       ā”œā”€ā”€ classDiagram-V7QDPDRR.mjs
│   │   │   │       ā”œā”€ā”€ classDiagram-V7QDPDRR.mjs.map
│   │   │   │       ā”œā”€ā”€ classDiagram-v2-I452LMQG.mjs
│   │   │   │       ā”œā”€ā”€ classDiagram-v2-I452LMQG.mjs.map
│   │   │   │       ā”œā”€ā”€ dagre-4KEWV3BN.mjs
│   │   │   │       ā”œā”€ā”€ dagre-4KEWV3BN.mjs.map
│   │   │   │       ā”œā”€ā”€ diagram-67HW3K5X.mjs
│   │   │   │       ā”œā”€ā”€ diagram-67HW3K5X.mjs.map
│   │   │   │       ā”œā”€ā”€ diagram-6ZJQA7GM.mjs
│   │   │   │       ā”œā”€ā”€ diagram-6ZJQA7GM.mjs.map
│   │   │   │       ā”œā”€ā”€ diagram-BBIVWCGE.mjs
│   │   │   │       ā”œā”€ā”€ diagram-BBIVWCGE.mjs.map
│   │   │   │       ā”œā”€ā”€ erDiagram-DAYQTJMR.mjs
│   │   │   │       ā”œā”€ā”€ erDiagram-DAYQTJMR.mjs.map
│   │   │   │       ā”œā”€ā”€ flowDiagram-7YKJRSJY.mjs
│   │   │   │       ā”œā”€ā”€ flowDiagram-7YKJRSJY.mjs.map
│   │   │   │       ā”œā”€ā”€ ganttDiagram-5J5FM7L2.mjs
│   │   │   │       ā”œā”€ā”€ ganttDiagram-5J5FM7L2.mjs.map
│   │   │   │       ā”œā”€ā”€ gitGraph-F6HP7TQM-JOQHTAS5.mjs
│   │   │   │       ā”œā”€ā”€ gitGraph-F6HP7TQM-JOQHTAS5.mjs.map
│   │   │   │       ā”œā”€ā”€ gitGraphDiagram-LJPR7UNW.mjs
│   │   │   │       ā”œā”€ā”€ gitGraphDiagram-LJPR7UNW.mjs.map
│   │   │   │       ā”œā”€ā”€ info-NVLQJR56-WY6RGRGJ.mjs
│   │   │   │       ā”œā”€ā”€ info-NVLQJR56-WY6RGRGJ.mjs.map
│   │   │   │       ā”œā”€ā”€ infoDiagram-6WOM7B72.mjs
│   │   │   │       ā”œā”€ā”€ infoDiagram-6WOM7B72.mjs.map
│   │   │   │       ā”œā”€ā”€ journeyDiagram-74NXYP6Y.mjs
│   │   │   │       ā”œā”€ā”€ journeyDiagram-74NXYP6Y.mjs.map
│   │   │   │       ā”œā”€ā”€ kanban-definition-6U23TIYA.mjs
│   │   │   │       ā”œā”€ā”€ kanban-definition-6U23TIYA.mjs.map
│   │   │   │       ā”œā”€ā”€ katex-RV2QPRKB.mjs
│   │   │   │       ā”œā”€ā”€ katex-RV2QPRKB.mjs.map
│   │   │   │       ā”œā”€ā”€ mindmap-definition-75HPFGON.mjs
│   │   │   │       ā”œā”€ā”€ mindmap-definition-75HPFGON.mjs.map
│   │   │   │       ā”œā”€ā”€ packet-BFZMPI3H-BQ2TQ635.mjs
│   │   │   │       ā”œā”€ā”€ packet-BFZMPI3H-BQ2TQ635.mjs.map
│   │   │   │       ā”œā”€ā”€ pie-7BOR55EZ-J4DISVIY.mjs
│   │   │   │       ā”œā”€ā”€ pie-7BOR55EZ-J4DISVIY.mjs.map
│   │   │   │       ā”œā”€ā”€ pieDiagram-C2LPN6SB.mjs
│   │   │   │       ā”œā”€ā”€ pieDiagram-C2LPN6SB.mjs.map
│   │   │   │       ā”œā”€ā”€ quadrantDiagram-5BXOXB7R.mjs
│   │   │   │       ā”œā”€ā”€ quadrantDiagram-5BXOXB7R.mjs.map
│   │   │   │       ā”œā”€ā”€ radar-NHE76QYJ-6MRNKVGF.mjs
│   │   │   │       ā”œā”€ā”€ radar-NHE76QYJ-6MRNKVGF.mjs.map
│   │   │   │       ā”œā”€ā”€ requirementDiagram-CG6N56KZ.mjs
│   │   │   │       ā”œā”€ā”€ requirementDiagram-CG6N56KZ.mjs.map
│   │   │   │       ā”œā”€ā”€ sankeyDiagram-RGKAZ5T4.mjs
│   │   │   │       ā”œā”€ā”€ sankeyDiagram-RGKAZ5T4.mjs.map
│   │   │   │       ā”œā”€ā”€ sequenceDiagram-NCT4EGAA.mjs
│   │   │   │       ā”œā”€ā”€ sequenceDiagram-NCT4EGAA.mjs.map
│   │   │   │       ā”œā”€ā”€ stateDiagram-3M5G37A4.mjs
│   │   │   │       ā”œā”€ā”€ stateDiagram-3M5G37A4.mjs.map
│   │   │   │       ā”œā”€ā”€ stateDiagram-v2-B2ICEZYC.mjs
│   │   │   │       ā”œā”€ā”€ stateDiagram-v2-B2ICEZYC.mjs.map
│   │   │   │       ā”œā”€ā”€ timeline-definition-LVESLDUR.mjs
│   │   │   │       ā”œā”€ā”€ timeline-definition-LVESLDUR.mjs.map
│   │   │   │       ā”œā”€ā”€ treemap-KMMF4GRG-DK74C3S3.mjs
│   │   │   │       ā”œā”€ā”€ treemap-KMMF4GRG-DK74C3S3.mjs.map
│   │   │   │       ā”œā”€ā”€ xychartDiagram-WBSIB3YZ.mjs
│   │   │   │       └── xychartDiagram-WBSIB3YZ.mjs.map
│   │   │   ā”œā”€ā”€ config.d.ts
│   │   │   ā”œā”€ā”€ config.spec.d.ts
│   │   │   ā”œā”€ā”€ config.type.d.ts
│   │   │   ā”œā”€ā”€ dagre-wrapper
│   │   │   │   ā”œā”€ā”€ blockArrowHelper.d.ts
│   │   │   │   ā”œā”€ā”€ clusters.d.ts
│   │   │   │   ā”œā”€ā”€ createLabel.d.ts
│   │   │   │   ā”œā”€ā”€ edgeMarker.d.ts
│   │   │   │   ā”œā”€ā”€ edgeMarker.spec.d.ts
│   │   │   │   ā”œā”€ā”€ edges.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ intersect
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ intersect-circle.d.ts
│   │   │   │   │   ā”œā”€ā”€ intersect-ellipse.d.ts
│   │   │   │   │   ā”œā”€ā”€ intersect-line.d.ts
│   │   │   │   │   ā”œā”€ā”€ intersect-node.d.ts
│   │   │   │   │   ā”œā”€ā”€ intersect-polygon.d.ts
│   │   │   │   │   └── intersect-rect.d.ts
│   │   │   │   ā”œā”€ā”€ markers.d.ts
│   │   │   │   ā”œā”€ā”€ mermaid-graphlib.d.ts
│   │   │   │   ā”œā”€ā”€ nodes.d.ts
│   │   │   │   └── shapes
│   │   │   │       ā”œā”€ā”€ note.d.ts
│   │   │   │       └── util.d.ts
│   │   │   ā”œā”€ā”€ defaultConfig.d.ts
│   │   │   ā”œā”€ā”€ diagram-api
│   │   │   │   ā”œā”€ā”€ comments.d.ts
│   │   │   │   ā”œā”€ā”€ comments.spec.d.ts
│   │   │   │   ā”œā”€ā”€ detectType.d.ts
│   │   │   │   ā”œā”€ā”€ diagram-orchestration.d.ts
│   │   │   │   ā”œā”€ā”€ diagram-orchestration.spec.d.ts
│   │   │   │   ā”œā”€ā”€ diagramAPI.d.ts
│   │   │   │   ā”œā”€ā”€ diagramAPI.spec.d.ts
│   │   │   │   ā”œā”€ā”€ frontmatter.d.ts
│   │   │   │   ā”œā”€ā”€ frontmatter.spec.d.ts
│   │   │   │   ā”œā”€ā”€ loadDiagram.d.ts
│   │   │   │   ā”œā”€ā”€ regexes.d.ts
│   │   │   │   └── types.d.ts
│   │   │   ā”œā”€ā”€ diagram.spec.d.ts
│   │   │   ā”œā”€ā”€ diagrams
│   │   │   │   ā”œā”€ā”€ architecture
│   │   │   │   │   ā”œā”€ā”€ architecture.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ architectureDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ architectureDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ architectureDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ architectureIcons.d.ts
│   │   │   │   │   ā”œā”€ā”€ architectureParser.d.ts
│   │   │   │   │   ā”œā”€ā”€ architectureRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ architectureStyles.d.ts
│   │   │   │   │   ā”œā”€ā”€ architectureTypes.d.ts
│   │   │   │   │   └── svgDraw.d.ts
│   │   │   │   ā”œā”€ā”€ block
│   │   │   │   │   ā”œā”€ā”€ blockDB.d.ts
│   │   │   │   │   ā”œā”€ā”€ blockDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ blockDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ blockRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ blockTypes.d.ts
│   │   │   │   │   ā”œā”€ā”€ blockUtils.d.ts
│   │   │   │   │   ā”œā”€ā”€ layout.d.ts
│   │   │   │   │   ā”œā”€ā”€ layout.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ parser
│   │   │   │   │   │   └── block.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ renderHelpers.d.ts
│   │   │   │   │   └── styles.d.ts
│   │   │   │   ā”œā”€ā”€ c4
│   │   │   │   │   ā”œā”€ā”€ c4Db.d.ts
│   │   │   │   │   ā”œā”€ā”€ c4Detector.d.ts
│   │   │   │   │   ā”œā”€ā”€ c4Diagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ c4Renderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   └── svgDraw.d.ts
│   │   │   │   ā”œā”€ā”€ class
│   │   │   │   │   ā”œā”€ā”€ classDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ classDetector-V2.d.ts
│   │   │   │   │   ā”œā”€ā”€ classDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ classDiagram-v2.d.ts
│   │   │   │   │   ā”œā”€ā”€ classDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ classDiagram.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ classRenderer-v2.d.ts
│   │   │   │   │   ā”œā”€ā”€ classRenderer-v3-unified.d.ts
│   │   │   │   │   ā”œā”€ā”€ classRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ classTypes.d.ts
│   │   │   │   │   ā”œā”€ā”€ classTypes.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ shapeUtil.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   └── svgDraw.d.ts
│   │   │   │   ā”œā”€ā”€ common
│   │   │   │   │   ā”œā”€ā”€ common.d.ts
│   │   │   │   │   ā”œā”€ā”€ common.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ commonDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ commonTypes.d.ts
│   │   │   │   │   ā”œā”€ā”€ populateCommonDb.d.ts
│   │   │   │   │   └── svgDrawCommon.d.ts
│   │   │   │   ā”œā”€ā”€ er
│   │   │   │   │   ā”œā”€ā”€ erDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ erDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ erDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ erMarkers.d.ts
│   │   │   │   │   ā”œā”€ā”€ erRenderer-unified.d.ts
│   │   │   │   │   ā”œā”€ā”€ erRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ erRenderer.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ erTypes.d.ts
│   │   │   │   │   └── styles.d.ts
│   │   │   │   ā”œā”€ā”€ error
│   │   │   │   │   ā”œā”€ā”€ errorDiagram.d.ts
│   │   │   │   │   └── errorRenderer.d.ts
│   │   │   │   ā”œā”€ā”€ flowchart
│   │   │   │   │   ā”œā”€ā”€ elk
│   │   │   │   │   │   └── detector.d.ts
│   │   │   │   │   ā”œā”€ā”€ flowDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ flowDb.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ flowDetector-v2.d.ts
│   │   │   │   │   ā”œā”€ā”€ flowDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ flowDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ flowRenderer-v3-unified.d.ts
│   │   │   │   │   ā”œā”€ā”€ parser
│   │   │   │   │   │   └── flowParser.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   └── types.d.ts
│   │   │   │   ā”œā”€ā”€ gantt
│   │   │   │   │   ā”œā”€ā”€ ganttDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ ganttDb.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ ganttDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ ganttDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ ganttRenderer.d.ts
│   │   │   │   │   └── styles.d.ts
│   │   │   │   ā”œā”€ā”€ git
│   │   │   │   │   ā”œā”€ā”€ gitGraph.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ gitGraphAst.d.ts
│   │   │   │   │   ā”œā”€ā”€ gitGraphDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ gitGraphDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ gitGraphParser.d.ts
│   │   │   │   │   ā”œā”€ā”€ gitGraphRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ gitGraphTypes.d.ts
│   │   │   │   │   └── styles.d.ts
│   │   │   │   ā”œā”€ā”€ globalStyles.d.ts
│   │   │   │   ā”œā”€ā”€ info
│   │   │   │   │   ā”œā”€ā”€ info.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ infoDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ infoDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ infoDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ infoParser.d.ts
│   │   │   │   │   ā”œā”€ā”€ infoRenderer.d.ts
│   │   │   │   │   └── infoTypes.d.ts
│   │   │   │   ā”œā”€ā”€ kanban
│   │   │   │   │   ā”œā”€ā”€ detector.d.ts
│   │   │   │   │   ā”œā”€ā”€ kanban-definition.d.ts
│   │   │   │   │   ā”œā”€ā”€ kanban.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ kanbanDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ kanbanRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ kanbanTypes.d.ts
│   │   │   │   │   └── styles.d.ts
│   │   │   │   ā”œā”€ā”€ mindmap
│   │   │   │   │   ā”œā”€ā”€ detector.d.ts
│   │   │   │   │   ā”œā”€ā”€ mindmap-definition.d.ts
│   │   │   │   │   ā”œā”€ā”€ mindmap.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ mindmapDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ mindmapRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ mindmapTypes.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   └── svgDraw.d.ts
│   │   │   │   ā”œā”€ā”€ packet
│   │   │   │   │   ā”œā”€ā”€ db.d.ts
│   │   │   │   │   ā”œā”€ā”€ detector.d.ts
│   │   │   │   │   ā”œā”€ā”€ diagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ packet.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ parser.d.ts
│   │   │   │   │   ā”œā”€ā”€ renderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   └── types.d.ts
│   │   │   │   ā”œā”€ā”€ pie
│   │   │   │   │   ā”œā”€ā”€ pie.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ pieDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ pieDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ pieDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ pieParser.d.ts
│   │   │   │   │   ā”œā”€ā”€ pieRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ pieStyles.d.ts
│   │   │   │   │   └── pieTypes.d.ts
│   │   │   │   ā”œā”€ā”€ quadrant-chart
│   │   │   │   │   ā”œā”€ā”€ parser
│   │   │   │   │   │   └── quadrant.jison.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ quadrantBuilder.d.ts
│   │   │   │   │   ā”œā”€ā”€ quadrantDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ quadrantDb.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ quadrantDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ quadrantDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ quadrantRenderer.d.ts
│   │   │   │   │   └── utils.d.ts
│   │   │   │   ā”œā”€ā”€ radar
│   │   │   │   │   ā”œā”€ā”€ db.d.ts
│   │   │   │   │   ā”œā”€ā”€ detector.d.ts
│   │   │   │   │   ā”œā”€ā”€ diagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ parser.d.ts
│   │   │   │   │   ā”œā”€ā”€ radar.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ renderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   └── types.d.ts
│   │   │   │   ā”œā”€ā”€ requirement
│   │   │   │   │   ā”œā”€ā”€ requirementDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ requirementDb.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ requirementDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ requirementDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ requirementRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   └── types.d.ts
│   │   │   │   ā”œā”€ā”€ sankey
│   │   │   │   │   ā”œā”€ā”€ parser
│   │   │   │   │   │   └── sankey.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ sankeyDB.d.ts
│   │   │   │   │   ā”œā”€ā”€ sankeyDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ sankeyDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ sankeyRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ sankeyUtils.d.ts
│   │   │   │   │   └── styles.d.ts
│   │   │   │   ā”œā”€ā”€ sequence
│   │   │   │   │   ā”œā”€ā”€ sequenceDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ sequenceDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ sequenceDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ sequenceRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   ā”œā”€ā”€ svgDraw.d.ts
│   │   │   │   │   └── types.d.ts
│   │   │   │   ā”œā”€ā”€ state
│   │   │   │   │   ā”œā”€ā”€ dataFetcher.d.ts
│   │   │   │   │   ā”œā”€ā”€ shapes.d.ts
│   │   │   │   │   ā”œā”€ā”€ stateCommon.d.ts
│   │   │   │   │   ā”œā”€ā”€ stateDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ stateDetector-V2.d.ts
│   │   │   │   │   ā”œā”€ā”€ stateDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ stateDiagram-v2.d.ts
│   │   │   │   │   ā”œā”€ā”€ stateDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ stateRenderer-v3-unified.d.ts
│   │   │   │   │   ā”œā”€ā”€ stateRenderer.d.ts
│   │   │   │   │   └── styles.d.ts
│   │   │   │   ā”œā”€ā”€ timeline
│   │   │   │   │   ā”œā”€ā”€ detector.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   ā”œā”€ā”€ svgDraw.d.ts
│   │   │   │   │   ā”œā”€ā”€ timeline-definition.d.ts
│   │   │   │   │   ā”œā”€ā”€ timelineDb.d.ts
│   │   │   │   │   └── timelineRenderer.d.ts
│   │   │   │   ā”œā”€ā”€ treemap
│   │   │   │   │   ā”œā”€ā”€ db.d.ts
│   │   │   │   │   ā”œā”€ā”€ detector.d.ts
│   │   │   │   │   ā”œā”€ā”€ diagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ parser.d.ts
│   │   │   │   │   ā”œā”€ā”€ renderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   │   │   └── utils.test.d.ts
│   │   │   │   ā”œā”€ā”€ user-journey
│   │   │   │   │   ā”œā”€ā”€ journeyDb.d.ts
│   │   │   │   │   ā”œā”€ā”€ journeyDetector.d.ts
│   │   │   │   │   ā”œā”€ā”€ journeyDiagram.d.ts
│   │   │   │   │   ā”œā”€ā”€ journeyRenderer.d.ts
│   │   │   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   │   │   └── svgDraw.d.ts
│   │   │   │   └── xychart
│   │   │   │       ā”œā”€ā”€ chartBuilder
│   │   │   │       │   ā”œā”€ā”€ components
│   │   │   │       │   │   ā”œā”€ā”€ axis
│   │   │   │       │   │   │   ā”œā”€ā”€ bandAxis.d.ts
│   │   │   │       │   │   │   ā”œā”€ā”€ baseAxis.d.ts
│   │   │   │       │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │       │   │   │   └── linearAxis.d.ts
│   │   │   │       │   │   ā”œā”€ā”€ chartTitle.d.ts
│   │   │   │       │   │   └── plot
│   │   │   │       │   │       ā”œā”€ā”€ barPlot.d.ts
│   │   │   │       │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       │   │       └── linePlot.d.ts
│   │   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │   │       │   ā”œā”€ā”€ interfaces.d.ts
│   │   │   │       │   ā”œā”€ā”€ orchestrator.d.ts
│   │   │   │       │   └── textDimensionCalculator.d.ts
│   │   │   │       ā”œā”€ā”€ parser
│   │   │   │       │   └── xychart.jison.spec.d.ts
│   │   │   │       ā”œā”€ā”€ xychartDb.d.ts
│   │   │   │       ā”œā”€ā”€ xychartDetector.d.ts
│   │   │   │       ā”œā”€ā”€ xychartDiagram.d.ts
│   │   │   │       └── xychartRenderer.d.ts
│   │   │   ā”œā”€ā”€ docs
│   │   │   │   └── vite.config.d.ts
│   │   │   ā”œā”€ā”€ errors.d.ts
│   │   │   ā”œā”€ā”€ interactionDb.d.ts
│   │   │   ā”œā”€ā”€ internals.d.ts
│   │   │   ā”œā”€ā”€ logger.d.ts
│   │   │   ā”œā”€ā”€ mermaid.core.mjs
│   │   │   ā”œā”€ā”€ mermaid.core.mjs.map
│   │   │   ā”œā”€ā”€ mermaid.d.ts
│   │   │   ā”œā”€ā”€ mermaid.esm.min.mjs
│   │   │   ā”œā”€ā”€ mermaid.esm.min.mjs.map
│   │   │   ā”œā”€ā”€ mermaid.esm.mjs
│   │   │   ā”œā”€ā”€ mermaid.esm.mjs.map
│   │   │   ā”œā”€ā”€ mermaid.js
│   │   │   ā”œā”€ā”€ mermaid.js.map
│   │   │   ā”œā”€ā”€ mermaid.min.js
│   │   │   ā”œā”€ā”€ mermaid.min.js.map
│   │   │   ā”œā”€ā”€ mermaid.spec.d.ts
│   │   │   ā”œā”€ā”€ mermaidAPI.d.ts
│   │   │   ā”œā”€ā”€ mermaidAPI.spec.d.ts
│   │   │   ā”œā”€ā”€ preprocess.d.ts
│   │   │   ā”œā”€ā”€ rendering-util
│   │   │   │   ā”œā”€ā”€ createText.d.ts
│   │   │   │   ā”œā”€ā”€ createText.spec.d.ts
│   │   │   │   ā”œā”€ā”€ handle-markdown-text.d.ts
│   │   │   │   ā”œā”€ā”€ handle-markdown-text.spec.d.ts
│   │   │   │   ā”œā”€ā”€ icons.d.ts
│   │   │   │   ā”œā”€ā”€ insertElementsForSize.d.ts
│   │   │   │   ā”œā”€ā”€ layout-algorithms
│   │   │   │   │   └── dagre
│   │   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │   │       └── mermaid-graphlib.d.ts
│   │   │   │   ā”œā”€ā”€ render.d.ts
│   │   │   │   ā”œā”€ā”€ rendering-elements
│   │   │   │   │   ā”œā”€ā”€ clusters.d.ts
│   │   │   │   │   ā”œā”€ā”€ createLabel.d.ts
│   │   │   │   │   ā”œā”€ā”€ edgeMarker.d.ts
│   │   │   │   │   ā”œā”€ā”€ edgeMarker.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ edges.d.ts
│   │   │   │   │   ā”œā”€ā”€ intersect
│   │   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ intersect-circle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ intersect-ellipse.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ intersect-line.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ intersect-node.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ intersect-polygon.d.ts
│   │   │   │   │   │   └── intersect-rect.d.ts
│   │   │   │   │   ā”œā”€ā”€ markers.d.ts
│   │   │   │   │   ā”œā”€ā”€ nodes.d.ts
│   │   │   │   │   ā”œā”€ā”€ nodes.spec.d.ts
│   │   │   │   │   ā”œā”€ā”€ shapes
│   │   │   │   │   │   ā”œā”€ā”€ anchor.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ bowTieRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ card.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ choice.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ circle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ classBox.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ crossedCircle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ curlyBraceLeft.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ curlyBraceRight.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ curlyBraces.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ curvedTrapezoid.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ cylinder.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ dividedRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ document.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ doubleCircle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ drawRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ erBox.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ filledCircle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ flippedTriangle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ forkJoin.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ halfRoundedRectangle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ handDrawnShapeStyles.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ hexagon.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ hourglass.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ icon.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ iconCircle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ iconRounded.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ iconSquare.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ imageSquare.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ insertPolygonShape.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ invertedTrapezoid.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ kanbanItem.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ labelRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ leanLeft.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ leanRight.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ lightningBolt.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ linedCylinder.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ linedWaveEdgedRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ multiRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ multiWaveEdgedRectangle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ note.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ question.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ rectLeftInvArrow.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ rectWithTitle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ requirementBox.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ roundedRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ roundedRectPath.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ shadedProcess.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ slopedRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ squareRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ stadium.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ state.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ stateEnd.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ stateStart.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ subroutine.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ taggedRect.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ taggedWaveEdgedRectangle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ text.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ tiltedCylinder.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ trapezoid.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ trapezoidalPentagon.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ triangle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ util.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ waveEdgedRectangle.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ waveRectangle.d.ts
│   │   │   │   │   │   └── windowPane.d.ts
│   │   │   │   │   └── shapes.d.ts
│   │   │   │   ā”œā”€ā”€ selectSvgElement.d.ts
│   │   │   │   ā”œā”€ā”€ setupViewPortForSVG.d.ts
│   │   │   │   ā”œā”€ā”€ splitText.d.ts
│   │   │   │   ā”œā”€ā”€ splitText.spec.d.ts
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   └── uid.d.ts
│   │   │   ā”œā”€ā”€ setupGraphViewbox.d.ts
│   │   │   ā”œā”€ā”€ styles.d.ts
│   │   │   ā”œā”€ā”€ styles.spec.d.ts
│   │   │   ā”œā”€ā”€ tests
│   │   │   │   └── util.d.ts
│   │   │   ā”œā”€ā”€ themes
│   │   │   │   ā”œā”€ā”€ erDiagram-oldHardcodedValues.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ theme-base.d.ts
│   │   │   │   ā”œā”€ā”€ theme-dark.d.ts
│   │   │   │   ā”œā”€ā”€ theme-default.d.ts
│   │   │   │   ā”œā”€ā”€ theme-forest.d.ts
│   │   │   │   ā”œā”€ā”€ theme-helpers.d.ts
│   │   │   │   └── theme-neutral.d.ts
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   ā”œā”€ā”€ utils
│   │   │   │   ā”œā”€ā”€ base64.d.ts
│   │   │   │   ā”œā”€ā”€ imperativeState.d.ts
│   │   │   │   ā”œā”€ā”€ imperativeState.spec.d.ts
│   │   │   │   ā”œā”€ā”€ lineWithOffset.d.ts
│   │   │   │   ā”œā”€ā”€ sanitizeDirective.d.ts
│   │   │   │   ā”œā”€ā”€ subGraphTitleMargins.d.ts
│   │   │   │   └── subGraphTitleMargins.spec.d.ts
│   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   └── utils.spec.d.ts
│   │   └── package.json
│   ā”œā”€ā”€ methods
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ micromatch
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── picomatch
│   │   │       ā”œā”€ā”€ CHANGELOG.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ constants.js
│   │   │       │   ā”œā”€ā”€ parse.js
│   │   │       │   ā”œā”€ā”€ picomatch.js
│   │   │       │   ā”œā”€ā”€ scan.js
│   │   │       │   └── utils.js
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ mime
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── cli.js
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ src
│   │   │   │   ā”œā”€ā”€ Mime.d.ts
│   │   │   │   ā”œā”€ā”€ Mime.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index_lite.d.ts
│   │   │   │   ā”œā”€ā”€ index_lite.js
│   │   │   │   ā”œā”€ā”€ mime_cli.d.ts
│   │   │   │   └── mime_cli.js
│   │   │   └── types
│   │   │       ā”œā”€ā”€ other.d.ts
│   │   │       ā”œā”€ā”€ other.js
│   │   │       ā”œā”€ā”€ standard.d.ts
│   │   │       └── standard.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ Mime.ts
│   │   │   ā”œā”€ā”€ index.ts
│   │   │   ā”œā”€ā”€ index_lite.ts
│   │   │   └── mime_cli.ts
│   │   └── types
│   │       ā”œā”€ā”€ other.ts
│   │       └── standard.ts
│   ā”œā”€ā”€ mime-db
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ db.json
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ mime-types
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ mimeScore.js
│   │   └── package.json
│   ā”œā”€ā”€ mimic-function
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ miniflare
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bootstrap.js
│   │   ā”œā”€ā”€ dist
│   │   │   └── src
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ shared
│   │   │       │   ā”œā”€ā”€ dev-registry.worker.js
│   │   │       │   └── dev-registry.worker.js.map
│   │   │       └── workers
│   │   │           ā”œā”€ā”€ analytics-engine
│   │   │           │   ā”œā”€ā”€ analytics-engine.worker.js
│   │   │           │   └── analytics-engine.worker.js.map
│   │   │           ā”œā”€ā”€ assets
│   │   │           │   ā”œā”€ā”€ assets-kv.worker.js
│   │   │           │   ā”œā”€ā”€ assets-kv.worker.js.map
│   │   │           │   ā”œā”€ā”€ assets.worker.js
│   │   │           │   ā”œā”€ā”€ assets.worker.js.map
│   │   │           │   ā”œā”€ā”€ router.worker.js
│   │   │           │   ā”œā”€ā”€ router.worker.js.map
│   │   │           │   ā”œā”€ā”€ rpc-proxy.worker.js
│   │   │           │   └── rpc-proxy.worker.js.map
│   │   │           ā”œā”€ā”€ browser-rendering
│   │   │           │   ā”œā”€ā”€ binding.worker.js
│   │   │           │   └── binding.worker.js.map
│   │   │           ā”œā”€ā”€ cache
│   │   │           │   ā”œā”€ā”€ cache-entry-noop.worker.js
│   │   │           │   ā”œā”€ā”€ cache-entry-noop.worker.js.map
│   │   │           │   ā”œā”€ā”€ cache-entry.worker.js
│   │   │           │   ā”œā”€ā”€ cache-entry.worker.js.map
│   │   │           │   ā”œā”€ā”€ cache.worker.js
│   │   │           │   └── cache.worker.js.map
│   │   │           ā”œā”€ā”€ core
│   │   │           │   ā”œā”€ā”€ entry.worker.js
│   │   │           │   ā”œā”€ā”€ entry.worker.js.map
│   │   │           │   ā”œā”€ā”€ strip-cf-connecting-ip.worker.js
│   │   │           │   └── strip-cf-connecting-ip.worker.js.map
│   │   │           ā”œā”€ā”€ d1
│   │   │           │   ā”œā”€ā”€ database.worker.js
│   │   │           │   └── database.worker.js.map
│   │   │           ā”œā”€ā”€ dispatch-namespace
│   │   │           │   ā”œā”€ā”€ dispatch-namespace.worker.js
│   │   │           │   └── dispatch-namespace.worker.js.map
│   │   │           ā”œā”€ā”€ email
│   │   │           │   ā”œā”€ā”€ email.worker.js
│   │   │           │   ā”œā”€ā”€ email.worker.js.map
│   │   │           │   ā”œā”€ā”€ send_email.worker.js
│   │   │           │   └── send_email.worker.js.map
│   │   │           ā”œā”€ā”€ hello-world
│   │   │           │   ā”œā”€ā”€ binding.worker.js
│   │   │           │   ā”œā”€ā”€ binding.worker.js.map
│   │   │           │   ā”œā”€ā”€ object.worker.js
│   │   │           │   └── object.worker.js.map
│   │   │           ā”œā”€ā”€ kv
│   │   │           │   ā”œā”€ā”€ namespace.worker.js
│   │   │           │   ā”œā”€ā”€ namespace.worker.js.map
│   │   │           │   ā”œā”€ā”€ sites.worker.js
│   │   │           │   └── sites.worker.js.map
│   │   │           ā”œā”€ā”€ pipelines
│   │   │           │   ā”œā”€ā”€ pipeline.worker.js
│   │   │           │   └── pipeline.worker.js.map
│   │   │           ā”œā”€ā”€ queues
│   │   │           │   ā”œā”€ā”€ broker.worker.js
│   │   │           │   └── broker.worker.js.map
│   │   │           ā”œā”€ā”€ r2
│   │   │           │   ā”œā”€ā”€ bucket.worker.js
│   │   │           │   └── bucket.worker.js.map
│   │   │           ā”œā”€ā”€ ratelimit
│   │   │           │   ā”œā”€ā”€ ratelimit.worker.js
│   │   │           │   └── ratelimit.worker.js.map
│   │   │           ā”œā”€ā”€ secrets-store
│   │   │           │   ā”œā”€ā”€ secret.worker.js
│   │   │           │   └── secret.worker.js.map
│   │   │           ā”œā”€ā”€ shared
│   │   │           │   ā”œā”€ā”€ index.worker.js
│   │   │           │   ā”œā”€ā”€ index.worker.js.map
│   │   │           │   ā”œā”€ā”€ object-entry.worker.js
│   │   │           │   ā”œā”€ā”€ object-entry.worker.js.map
│   │   │           │   ā”œā”€ā”€ remote-proxy-client.worker.js
│   │   │           │   ā”œā”€ā”€ remote-proxy-client.worker.js.map
│   │   │           │   ā”œā”€ā”€ zod.worker.js
│   │   │           │   └── zod.worker.js.map
│   │   │           └── workflows
│   │   │               ā”œā”€ā”€ binding.worker.js
│   │   │               └── binding.worker.js.map
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ .bin
│   │   │   │   └── acorn -> ../acorn/bin/acorn
│   │   │   ā”œā”€ā”€ acorn
│   │   │   │   ā”œā”€ā”€ CHANGELOG.md
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ bin
│   │   │   │   │   └── acorn
│   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   ā”œā”€ā”€ acorn.d.mts
│   │   │   │   │   ā”œā”€ā”€ acorn.d.ts
│   │   │   │   │   ā”œā”€ā”€ acorn.js
│   │   │   │   │   ā”œā”€ā”€ acorn.mjs
│   │   │   │   │   └── bin.js
│   │   │   │   └── package.json
│   │   │   ā”œā”€ā”€ acorn-walk
│   │   │   │   ā”œā”€ā”€ CHANGELOG.md
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   ā”œā”€ā”€ walk.d.mts
│   │   │   │   │   ā”œā”€ā”€ walk.d.ts
│   │   │   │   │   ā”œā”€ā”€ walk.js
│   │   │   │   │   └── walk.mjs
│   │   │   │   └── package.json
│   │   │   ā”œā”€ā”€ undici
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ docs
│   │   │   │   │   └── docs
│   │   │   │   │       ā”œā”€ā”€ api
│   │   │   │   │       │   ā”œā”€ā”€ Agent.md
│   │   │   │   │       │   ā”œā”€ā”€ BalancedPool.md
│   │   │   │   │       │   ā”œā”€ā”€ CacheStorage.md
│   │   │   │   │       │   ā”œā”€ā”€ CacheStore.md
│   │   │   │   │       │   ā”œā”€ā”€ Client.md
│   │   │   │   │       │   ā”œā”€ā”€ ClientStats.md
│   │   │   │   │       │   ā”œā”€ā”€ Connector.md
│   │   │   │   │       │   ā”œā”€ā”€ ContentType.md
│   │   │   │   │       │   ā”œā”€ā”€ Cookies.md
│   │   │   │   │       │   ā”œā”€ā”€ Debug.md
│   │   │   │   │       │   ā”œā”€ā”€ DiagnosticsChannel.md
│   │   │   │   │       │   ā”œā”€ā”€ Dispatcher.md
│   │   │   │   │       │   ā”œā”€ā”€ EnvHttpProxyAgent.md
│   │   │   │   │       │   ā”œā”€ā”€ Errors.md
│   │   │   │   │       │   ā”œā”€ā”€ EventSource.md
│   │   │   │   │       │   ā”œā”€ā”€ Fetch.md
│   │   │   │   │       │   ā”œā”€ā”€ GlobalInstallation.md
│   │   │   │   │       │   ā”œā”€ā”€ H2CClient.md
│   │   │   │   │       │   ā”œā”€ā”€ MockAgent.md
│   │   │   │   │       │   ā”œā”€ā”€ MockCallHistory.md
│   │   │   │   │       │   ā”œā”€ā”€ MockCallHistoryLog.md
│   │   │   │   │       │   ā”œā”€ā”€ MockClient.md
│   │   │   │   │       │   ā”œā”€ā”€ MockErrors.md
│   │   │   │   │       │   ā”œā”€ā”€ MockPool.md
│   │   │   │   │       │   ā”œā”€ā”€ Pool.md
│   │   │   │   │       │   ā”œā”€ā”€ PoolStats.md
│   │   │   │   │       │   ā”œā”€ā”€ ProxyAgent.md
│   │   │   │   │       │   ā”œā”€ā”€ RedirectHandler.md
│   │   │   │   │       │   ā”œā”€ā”€ RetryAgent.md
│   │   │   │   │       │   ā”œā”€ā”€ RetryHandler.md
│   │   │   │   │       │   ā”œā”€ā”€ SnapshotAgent.md
│   │   │   │   │       │   ā”œā”€ā”€ Util.md
│   │   │   │   │       │   ā”œā”€ā”€ WebSocket.md
│   │   │   │   │       │   └── api-lifecycle.md
│   │   │   │   │       └── best-practices
│   │   │   │   │           ā”œā”€ā”€ client-certificate.md
│   │   │   │   │           ā”œā”€ā”€ mocking-request.md
│   │   │   │   │           ā”œā”€ā”€ proxy.md
│   │   │   │   │           └── writing-tests.md
│   │   │   │   ā”œā”€ā”€ index-fetch.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ lib
│   │   │   │   │   ā”œā”€ā”€ api
│   │   │   │   │   │   ā”œā”€ā”€ abort-signal.js
│   │   │   │   │   │   ā”œā”€ā”€ api-connect.js
│   │   │   │   │   │   ā”œā”€ā”€ api-pipeline.js
│   │   │   │   │   │   ā”œā”€ā”€ api-request.js
│   │   │   │   │   │   ā”œā”€ā”€ api-stream.js
│   │   │   │   │   │   ā”œā”€ā”€ api-upgrade.js
│   │   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   │   ā”œā”€ā”€ readable.js
│   │   │   │   │   │   └── util.js
│   │   │   │   │   ā”œā”€ā”€ cache
│   │   │   │   │   │   ā”œā”€ā”€ memory-cache-store.js
│   │   │   │   │   │   └── sqlite-cache-store.js
│   │   │   │   │   ā”œā”€ā”€ core
│   │   │   │   │   │   ā”œā”€ā”€ connect.js
│   │   │   │   │   │   ā”œā”€ā”€ constants.js
│   │   │   │   │   │   ā”œā”€ā”€ diagnostics.js
│   │   │   │   │   │   ā”œā”€ā”€ errors.js
│   │   │   │   │   │   ā”œā”€ā”€ request.js
│   │   │   │   │   │   ā”œā”€ā”€ symbols.js
│   │   │   │   │   │   ā”œā”€ā”€ tree.js
│   │   │   │   │   │   └── util.js
│   │   │   │   │   ā”œā”€ā”€ dispatcher
│   │   │   │   │   │   ā”œā”€ā”€ agent.js
│   │   │   │   │   │   ā”œā”€ā”€ balanced-pool.js
│   │   │   │   │   │   ā”œā”€ā”€ client-h1.js
│   │   │   │   │   │   ā”œā”€ā”€ client-h2.js
│   │   │   │   │   │   ā”œā”€ā”€ client.js
│   │   │   │   │   │   ā”œā”€ā”€ dispatcher-base.js
│   │   │   │   │   │   ā”œā”€ā”€ dispatcher.js
│   │   │   │   │   │   ā”œā”€ā”€ env-http-proxy-agent.js
│   │   │   │   │   │   ā”œā”€ā”€ fixed-queue.js
│   │   │   │   │   │   ā”œā”€ā”€ h2c-client.js
│   │   │   │   │   │   ā”œā”€ā”€ pool-base.js
│   │   │   │   │   │   ā”œā”€ā”€ pool.js
│   │   │   │   │   │   ā”œā”€ā”€ proxy-agent.js
│   │   │   │   │   │   └── retry-agent.js
│   │   │   │   │   ā”œā”€ā”€ global.js
│   │   │   │   │   ā”œā”€ā”€ handler
│   │   │   │   │   │   ā”œā”€ā”€ cache-handler.js
│   │   │   │   │   │   ā”œā”€ā”€ cache-revalidation-handler.js
│   │   │   │   │   │   ā”œā”€ā”€ decorator-handler.js
│   │   │   │   │   │   ā”œā”€ā”€ redirect-handler.js
│   │   │   │   │   │   ā”œā”€ā”€ retry-handler.js
│   │   │   │   │   │   ā”œā”€ā”€ unwrap-handler.js
│   │   │   │   │   │   └── wrap-handler.js
│   │   │   │   │   ā”œā”€ā”€ interceptor
│   │   │   │   │   │   ā”œā”€ā”€ cache.js
│   │   │   │   │   │   ā”œā”€ā”€ dns.js
│   │   │   │   │   │   ā”œā”€ā”€ dump.js
│   │   │   │   │   │   ā”œā”€ā”€ redirect.js
│   │   │   │   │   │   ā”œā”€ā”€ response-error.js
│   │   │   │   │   │   └── retry.js
│   │   │   │   │   ā”œā”€ā”€ llhttp
│   │   │   │   │   │   ā”œā”€ā”€ .gitkeep
│   │   │   │   │   │   ā”œā”€ā”€ constants.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ constants.js
│   │   │   │   │   │   ā”œā”€ā”€ constants.js.map
│   │   │   │   │   │   ā”œā”€ā”€ llhttp-wasm.js
│   │   │   │   │   │   ā”œā”€ā”€ llhttp_simd-wasm.js
│   │   │   │   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   │   │   │   ā”œā”€ā”€ utils.js
│   │   │   │   │   │   └── utils.js.map
│   │   │   │   │   ā”œā”€ā”€ mock
│   │   │   │   │   │   ā”œā”€ā”€ mock-agent.js
│   │   │   │   │   │   ā”œā”€ā”€ mock-call-history.js
│   │   │   │   │   │   ā”œā”€ā”€ mock-client.js
│   │   │   │   │   │   ā”œā”€ā”€ mock-errors.js
│   │   │   │   │   │   ā”œā”€ā”€ mock-interceptor.js
│   │   │   │   │   │   ā”œā”€ā”€ mock-pool.js
│   │   │   │   │   │   ā”œā”€ā”€ mock-symbols.js
│   │   │   │   │   │   ā”œā”€ā”€ mock-utils.js
│   │   │   │   │   │   ā”œā”€ā”€ pending-interceptors-formatter.js
│   │   │   │   │   │   ā”œā”€ā”€ snapshot-agent.js
│   │   │   │   │   │   ā”œā”€ā”€ snapshot-recorder.js
│   │   │   │   │   │   └── snapshot-utils.js
│   │   │   │   │   ā”œā”€ā”€ util
│   │   │   │   │   │   ā”œā”€ā”€ cache.js
│   │   │   │   │   │   ā”œā”€ā”€ date.js
│   │   │   │   │   │   ā”œā”€ā”€ promise.js
│   │   │   │   │   │   ā”œā”€ā”€ stats.js
│   │   │   │   │   │   └── timers.js
│   │   │   │   │   └── web
│   │   │   │   │       ā”œā”€ā”€ cache
│   │   │   │   │       │   ā”œā”€ā”€ cache.js
│   │   │   │   │       │   ā”œā”€ā”€ cachestorage.js
│   │   │   │   │       │   └── util.js
│   │   │   │   │       ā”œā”€ā”€ cookies
│   │   │   │   │       │   ā”œā”€ā”€ constants.js
│   │   │   │   │       │   ā”œā”€ā”€ index.js
│   │   │   │   │       │   ā”œā”€ā”€ parse.js
│   │   │   │   │       │   └── util.js
│   │   │   │   │       ā”œā”€ā”€ eventsource
│   │   │   │   │       │   ā”œā”€ā”€ eventsource-stream.js
│   │   │   │   │       │   ā”œā”€ā”€ eventsource.js
│   │   │   │   │       │   └── util.js
│   │   │   │   │       ā”œā”€ā”€ fetch
│   │   │   │   │       │   ā”œā”€ā”€ LICENSE
│   │   │   │   │       │   ā”œā”€ā”€ body.js
│   │   │   │   │       │   ā”œā”€ā”€ constants.js
│   │   │   │   │       │   ā”œā”€ā”€ data-url.js
│   │   │   │   │       │   ā”œā”€ā”€ formdata-parser.js
│   │   │   │   │       │   ā”œā”€ā”€ formdata.js
│   │   │   │   │       │   ā”œā”€ā”€ global.js
│   │   │   │   │       │   ā”œā”€ā”€ headers.js
│   │   │   │   │       │   ā”œā”€ā”€ index.js
│   │   │   │   │       │   ā”œā”€ā”€ request.js
│   │   │   │   │       │   ā”œā”€ā”€ response.js
│   │   │   │   │       │   └── util.js
│   │   │   │   │       ā”œā”€ā”€ webidl
│   │   │   │   │       │   └── index.js
│   │   │   │   │       └── websocket
│   │   │   │   │           ā”œā”€ā”€ connection.js
│   │   │   │   │           ā”œā”€ā”€ constants.js
│   │   │   │   │           ā”œā”€ā”€ events.js
│   │   │   │   │           ā”œā”€ā”€ frame.js
│   │   │   │   │           ā”œā”€ā”€ permessage-deflate.js
│   │   │   │   │           ā”œā”€ā”€ receiver.js
│   │   │   │   │           ā”œā”€ā”€ sender.js
│   │   │   │   │           ā”œā”€ā”€ stream
│   │   │   │   │           │   ā”œā”€ā”€ websocketerror.js
│   │   │   │   │           │   └── websocketstream.js
│   │   │   │   │           ā”œā”€ā”€ util.js
│   │   │   │   │           └── websocket.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ scripts
│   │   │   │   │   └── strip-comments.js
│   │   │   │   └── types
│   │   │   │       ā”œā”€ā”€ README.md
│   │   │   │       ā”œā”€ā”€ agent.d.ts
│   │   │   │       ā”œā”€ā”€ api.d.ts
│   │   │   │       ā”œā”€ā”€ balanced-pool.d.ts
│   │   │   │       ā”œā”€ā”€ cache-interceptor.d.ts
│   │   │   │       ā”œā”€ā”€ cache.d.ts
│   │   │   │       ā”œā”€ā”€ client-stats.d.ts
│   │   │   │       ā”œā”€ā”€ client.d.ts
│   │   │   │       ā”œā”€ā”€ connector.d.ts
│   │   │   │       ā”œā”€ā”€ content-type.d.ts
│   │   │   │       ā”œā”€ā”€ cookies.d.ts
│   │   │   │       ā”œā”€ā”€ diagnostics-channel.d.ts
│   │   │   │       ā”œā”€ā”€ dispatcher.d.ts
│   │   │   │       ā”œā”€ā”€ env-http-proxy-agent.d.ts
│   │   │   │       ā”œā”€ā”€ errors.d.ts
│   │   │   │       ā”œā”€ā”€ eventsource.d.ts
│   │   │   │       ā”œā”€ā”€ fetch.d.ts
│   │   │   │       ā”œā”€ā”€ formdata.d.ts
│   │   │   │       ā”œā”€ā”€ global-dispatcher.d.ts
│   │   │   │       ā”œā”€ā”€ global-origin.d.ts
│   │   │   │       ā”œā”€ā”€ h2c-client.d.ts
│   │   │   │       ā”œā”€ā”€ handlers.d.ts
│   │   │   │       ā”œā”€ā”€ header.d.ts
│   │   │   │       ā”œā”€ā”€ index.d.ts
│   │   │   │       ā”œā”€ā”€ interceptors.d.ts
│   │   │   │       ā”œā”€ā”€ mock-agent.d.ts
│   │   │   │       ā”œā”€ā”€ mock-call-history.d.ts
│   │   │   │       ā”œā”€ā”€ mock-client.d.ts
│   │   │   │       ā”œā”€ā”€ mock-errors.d.ts
│   │   │   │       ā”œā”€ā”€ mock-interceptor.d.ts
│   │   │   │       ā”œā”€ā”€ mock-pool.d.ts
│   │   │   │       ā”œā”€ā”€ patch.d.ts
│   │   │   │       ā”œā”€ā”€ pool-stats.d.ts
│   │   │   │       ā”œā”€ā”€ pool.d.ts
│   │   │   │       ā”œā”€ā”€ proxy-agent.d.ts
│   │   │   │       ā”œā”€ā”€ readable.d.ts
│   │   │   │       ā”œā”€ā”€ retry-agent.d.ts
│   │   │   │       ā”œā”€ā”€ retry-handler.d.ts
│   │   │   │       ā”œā”€ā”€ snapshot-agent.d.ts
│   │   │   │       ā”œā”€ā”€ util.d.ts
│   │   │   │       ā”œā”€ā”€ utility.d.ts
│   │   │   │       ā”œā”€ā”€ webidl.d.ts
│   │   │   │       └── websocket.d.ts
│   │   │   └── ws
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ browser.js
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ buffer-util.js
│   │   │       │   ā”œā”€ā”€ constants.js
│   │   │       │   ā”œā”€ā”€ event-target.js
│   │   │       │   ā”œā”€ā”€ extension.js
│   │   │       │   ā”œā”€ā”€ limiter.js
│   │   │       │   ā”œā”€ā”€ permessage-deflate.js
│   │   │       │   ā”œā”€ā”€ receiver.js
│   │   │       │   ā”œā”€ā”€ sender.js
│   │   │       │   ā”œā”€ā”€ stream.js
│   │   │       │   ā”œā”€ā”€ subprotocol.js
│   │   │       │   ā”œā”€ā”€ validation.js
│   │   │       │   ā”œā”€ā”€ websocket-server.js
│   │   │       │   └── websocket.js
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── wrapper.mjs
│   │   └── package.json
│   ā”œā”€ā”€ minimatch
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ minimatch.js
│   │   └── package.json
│   ā”œā”€ā”€ minimist
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ example
│   │   │   └── parse.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ all_bool.js
│   │       ā”œā”€ā”€ bool.js
│   │       ā”œā”€ā”€ dash.js
│   │       ā”œā”€ā”€ default_bool.js
│   │       ā”œā”€ā”€ dotted.js
│   │       ā”œā”€ā”€ kv_short.js
│   │       ā”œā”€ā”€ long.js
│   │       ā”œā”€ā”€ num.js
│   │       ā”œā”€ā”€ parse.js
│   │       ā”œā”€ā”€ parse_modified.js
│   │       ā”œā”€ā”€ proto.js
│   │       ā”œā”€ā”€ short.js
│   │       ā”œā”€ā”€ stop_early.js
│   │       ā”œā”€ā”€ unknown.js
│   │       └── whitespace.js
│   ā”œā”€ā”€ minipass
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commonjs
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ mlly
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.mjs
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ confbox
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   ā”œā”€ā”€ index.cjs
│   │   │   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   │   ā”œā”€ā”€ json5.cjs
│   │   │   │   │   ā”œā”€ā”€ json5.d.cts
│   │   │   │   │   ā”œā”€ā”€ json5.d.mts
│   │   │   │   │   ā”œā”€ā”€ json5.d.ts
│   │   │   │   │   ā”œā”€ā”€ json5.mjs
│   │   │   │   │   ā”œā”€ā”€ jsonc.cjs
│   │   │   │   │   ā”œā”€ā”€ jsonc.d.cts
│   │   │   │   │   ā”œā”€ā”€ jsonc.d.mts
│   │   │   │   │   ā”œā”€ā”€ jsonc.d.ts
│   │   │   │   │   ā”œā”€ā”€ jsonc.mjs
│   │   │   │   │   ā”œā”€ā”€ shared
│   │   │   │   │   │   ā”œā”€ā”€ confbox.3768c7e9.cjs
│   │   │   │   │   │   ā”œā”€ā”€ confbox.6b479c78.cjs
│   │   │   │   │   │   ā”œā”€ā”€ confbox.9388d834.mjs
│   │   │   │   │   │   ā”œā”€ā”€ confbox.9745c98f.d.cts
│   │   │   │   │   │   ā”œā”€ā”€ confbox.9745c98f.d.mts
│   │   │   │   │   │   ā”œā”€ā”€ confbox.9745c98f.d.ts
│   │   │   │   │   │   └── confbox.f9f03f05.mjs
│   │   │   │   │   ā”œā”€ā”€ toml.cjs
│   │   │   │   │   ā”œā”€ā”€ toml.d.cts
│   │   │   │   │   ā”œā”€ā”€ toml.d.mts
│   │   │   │   │   ā”œā”€ā”€ toml.d.ts
│   │   │   │   │   ā”œā”€ā”€ toml.mjs
│   │   │   │   │   ā”œā”€ā”€ yaml.cjs
│   │   │   │   │   ā”œā”€ā”€ yaml.d.cts
│   │   │   │   │   ā”œā”€ā”€ yaml.d.mts
│   │   │   │   │   ā”œā”€ā”€ yaml.d.ts
│   │   │   │   │   └── yaml.mjs
│   │   │   │   ā”œā”€ā”€ json5.d.ts
│   │   │   │   ā”œā”€ā”€ jsonc.d.ts
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ toml.d.ts
│   │   │   │   └── yaml.d.ts
│   │   │   └── pkg-types
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ dist
│   │   │       │   ā”œā”€ā”€ index.cjs
│   │   │       │   ā”œā”€ā”€ index.d.cts
│   │   │       │   ā”œā”€ā”€ index.d.mts
│   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │       │   └── index.mjs
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ moo
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ moo.js
│   │   └── package.json
│   ā”œā”€ā”€ morphdom
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ morphdom-esm.js
│   │   │   ā”œā”€ā”€ morphdom-factory.js
│   │   │   ā”œā”€ā”€ morphdom-umd.js
│   │   │   ā”œā”€ā”€ morphdom-umd.min.js
│   │   │   └── morphdom.js
│   │   ā”œā”€ā”€ docs
│   │   │   ā”œā”€ā”€ old-benchmark.md
│   │   │   └── virtual-dom.md
│   │   ā”œā”€ā”€ factory.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ morphAttrs.js
│   │       ā”œā”€ā”€ morphdom.js
│   │       ā”œā”€ā”€ specialElHandlers.js
│   │       └── util.js
│   ā”œā”€ā”€ mrmime
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ ms
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license.md
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ namecheap-cli
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── namecheap-cli.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ NamecheapClient.js
│   │   │   ā”œā”€ā”€ api
│   │   │   │   ā”œā”€ā”€ domains.dns.js
│   │   │   │   ā”œā”€ā”€ domains.js
│   │   │   │   ā”œā”€ā”€ domains.ns.js
│   │   │   │   ā”œā”€ā”€ domains.transfer.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ ssl.js
│   │   │   │   ā”œā”€ā”€ users.address.js
│   │   │   │   ā”œā”€ā”€ users.js
│   │   │   │   └── whoisguard.js
│   │   │   └── config
│   │   │       └── registration.json.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── commander
│   │   │       ā”œā”€ā”€ CHANGELOG.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ Readme.md
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── typings
│   │   │           └── index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── api
│   │           ā”œā”€ā”€ domains_api_test.js
│   │           ā”œā”€ā”€ domains_dns_api_test.js
│   │           ā”œā”€ā”€ domains_ns_api_test.js
│   │           ā”œā”€ā”€ domains_transfer_api_test.js
│   │           ā”œā”€ā”€ ssl_api_test.js
│   │           ā”œā”€ā”€ users_address_api_test.js
│   │           ā”œā”€ā”€ users_api_test.js
│   │           └── whoisguard_api_test.js
│   ā”œā”€ā”€ nano-spawn
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── source
│   │       ā”œā”€ā”€ context.js
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ index.js
│   │       ā”œā”€ā”€ iterable.js
│   │       ā”œā”€ā”€ options.js
│   │       ā”œā”€ā”€ pipe.js
│   │       ā”œā”€ā”€ result.js
│   │       ā”œā”€ā”€ spawn.js
│   │       └── windows.js
│   ā”œā”€ā”€ nanoid
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── nanoid.js
│   │   ā”œā”€ā”€ index.browser.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ nanoid.js
│   │   ā”œā”€ā”€ non-secure
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── url-alphabet
│   │       └── index.js
│   ā”œā”€ā”€ natural-compare
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ ndarray
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ ndarray.js
│   │   └── package.json
│   ā”œā”€ā”€ node-retrieve-globals
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ retrieveGlobals.js
│   │   └── util
│   │       ā”œā”€ā”€ getWorkingDirectory.js
│   │       └── vmModules.js
│   ā”œā”€ā”€ normalize-path
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ nunjucks
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   ā”œā”€ā”€ precompile
│   │   │   └── precompile.cmd
│   │   ā”œā”€ā”€ browser
│   │   │   ā”œā”€ā”€ nunjucks-slim.js
│   │   │   ā”œā”€ā”€ nunjucks-slim.js.map
│   │   │   ā”œā”€ā”€ nunjucks-slim.min.js
│   │   │   ā”œā”€ā”€ nunjucks-slim.min.js.map
│   │   │   ā”œā”€ā”€ nunjucks.js
│   │   │   ā”œā”€ā”€ nunjucks.js.map
│   │   │   ā”œā”€ā”€ nunjucks.min.js
│   │   │   └── nunjucks.min.js.map
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── commander
│   │   │       ā”œā”€ā”€ CHANGELOG.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ Readme.md
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── typings
│   │   │           └── index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ compiler.js
│   │       ā”œā”€ā”€ environment.js
│   │       ā”œā”€ā”€ express-app.js
│   │       ā”œā”€ā”€ filters.js
│   │       ā”œā”€ā”€ globals.js
│   │       ā”œā”€ā”€ jinja-compat.js
│   │       ā”œā”€ā”€ lexer.js
│   │       ā”œā”€ā”€ lib.js
│   │       ā”œā”€ā”€ loader.js
│   │       ā”œā”€ā”€ loaders.js
│   │       ā”œā”€ā”€ node-loaders.js
│   │       ā”œā”€ā”€ nodes.js
│   │       ā”œā”€ā”€ object.js
│   │       ā”œā”€ā”€ parser.js
│   │       ā”œā”€ā”€ precompile-global.js
│   │       ā”œā”€ā”€ precompile.js
│   │       ā”œā”€ā”€ precompiled-loader.js
│   │       ā”œā”€ā”€ runtime.js
│   │       ā”œā”€ā”€ tests.js
│   │       ā”œā”€ā”€ transformer.js
│   │       └── web-loaders.js
│   ā”œā”€ā”€ object-inspect
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ example
│   │   │   ā”œā”€ā”€ all.js
│   │   │   ā”œā”€ā”€ circular.js
│   │   │   ā”œā”€ā”€ fn.js
│   │   │   └── inspect.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package-support.json
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.markdown
│   │   ā”œā”€ā”€ test
│   │   │   ā”œā”€ā”€ bigint.js
│   │   │   ā”œā”€ā”€ browser
│   │   │   │   └── dom.js
│   │   │   ā”œā”€ā”€ circular.js
│   │   │   ā”œā”€ā”€ deep.js
│   │   │   ā”œā”€ā”€ element.js
│   │   │   ā”œā”€ā”€ err.js
│   │   │   ā”œā”€ā”€ fakes.js
│   │   │   ā”œā”€ā”€ fn.js
│   │   │   ā”œā”€ā”€ global.js
│   │   │   ā”œā”€ā”€ has.js
│   │   │   ā”œā”€ā”€ holes.js
│   │   │   ā”œā”€ā”€ indent-option.js
│   │   │   ā”œā”€ā”€ inspect.js
│   │   │   ā”œā”€ā”€ lowbyte.js
│   │   │   ā”œā”€ā”€ number.js
│   │   │   ā”œā”€ā”€ quoteStyle.js
│   │   │   ā”œā”€ā”€ toStringTag.js
│   │   │   ā”œā”€ā”€ undef.js
│   │   │   └── values.js
│   │   ā”œā”€ā”€ test-core-js.js
│   │   └── util.inspect.js
│   ā”œā”€ā”€ ohash
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ crypto
│   │   │   │   ā”œā”€ā”€ js
│   │   │   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   │   │   └── index.mjs
│   │   │   │   └── node
│   │   │   │       ā”œā”€ā”€ index.d.mts
│   │   │   │       └── index.mjs
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ shared
│   │   │   │   ā”œā”€ā”€ ohash.CMR0vuBX.d.mts
│   │   │   │   ā”œā”€ā”€ ohash.CMR0vuBX.d.ts
│   │   │   │   └── ohash.D__AXeF1.mjs
│   │   │   └── utils
│   │   │       ā”œā”€ā”€ index.d.mts
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ on-finished
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ onetime
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ optionator
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ help.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── util.js
│   │   └── package.json
│   ā”œā”€ā”€ p-finally
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ p-limit
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ p-locate
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ p-queue
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ lower-bound.d.ts
│   │   │   ā”œā”€ā”€ lower-bound.js
│   │   │   ā”œā”€ā”€ options.d.ts
│   │   │   ā”œā”€ā”€ options.js
│   │   │   ā”œā”€ā”€ priority-queue.d.ts
│   │   │   ā”œā”€ā”€ priority-queue.js
│   │   │   ā”œā”€ā”€ queue.d.ts
│   │   │   └── queue.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ p-timeout
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ package-json-from-dist
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commonjs
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ package-manager-detector
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commands.d.mts
│   │   │   ā”œā”€ā”€ commands.mjs
│   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │   ā”œā”€ā”€ constants.mjs
│   │   │   ā”œā”€ā”€ detect.d.mts
│   │   │   ā”œā”€ā”€ detect.mjs
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   └── shared
│   │   │       └── package-manager-detector.pUYRhiOu.d.mts
│   │   └── package.json
│   ā”œā”€ā”€ pagefind
│   │   ā”œā”€ā”€ LICENSE
│   │   │   ā”œā”€ā”€ LICENSE
│   │   │   └── LICENSE-vscode-ripgrep
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ checksums
│   │   │   ā”œā”€ā”€ pagefind-v1.3.0-aarch64-apple-darwin.tar.gz.sha256
│   │   │   ā”œā”€ā”€ pagefind-v1.3.0-aarch64-unknown-linux-musl.tar.gz.sha256
│   │   │   ā”œā”€ā”€ pagefind-v1.3.0-x86_64-apple-darwin.tar.gz.sha256
│   │   │   ā”œā”€ā”€ pagefind-v1.3.0-x86_64-pc-windows-msvc.tar.gz.sha256
│   │   │   ā”œā”€ā”€ pagefind-v1.3.0-x86_64-unknown-linux-musl.tar.gz.sha256
│   │   │   ā”œā”€ā”€ pagefind_extended-v1.3.0-aarch64-apple-darwin.tar.gz.sha256
│   │   │   ā”œā”€ā”€ pagefind_extended-v1.3.0-aarch64-unknown-linux-musl.tar.gz.sha256
│   │   │   ā”œā”€ā”€ pagefind_extended-v1.3.0-x86_64-apple-darwin.tar.gz.sha256
│   │   │   ā”œā”€ā”€ pagefind_extended-v1.3.0-x86_64-pc-windows-msvc.tar.gz.sha256
│   │   │   └── pagefind_extended-v1.3.0-x86_64-unknown-linux-musl.tar.gz.sha256
│   │   ā”œā”€ā”€ jsconfig.json
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ encoding.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ resolveBinary.js
│   │   │   ā”œā”€ā”€ runner
│   │   │   │   └── bin.cjs
│   │   │   └── service.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ tsconfig.json
│   │   └── types
│   │       ā”œā”€ā”€ index.d.ts
│   │       └── internal.d.ts
│   ā”œā”€ā”€ parent-module
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ parse-srcset
│   │   ā”œā”€ā”€ .jscs.json
│   │   ā”œā”€ā”€ .jshintrc
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   └── parse-srcset.js
│   │   └── tests
│   │       ā”œā”€ā”€ he.js
│   │       ā”œā”€ā”€ intern.js
│   │       └── unit
│   │           └── ps.js
│   ā”œā”€ā”€ parse5
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ cjs
│   │   │   │   ā”œā”€ā”€ common
│   │   │   │   │   ā”œā”€ā”€ doctype.d.ts
│   │   │   │   │   ā”œā”€ā”€ doctype.js
│   │   │   │   │   ā”œā”€ā”€ error-codes.d.ts
│   │   │   │   │   ā”œā”€ā”€ error-codes.js
│   │   │   │   │   ā”œā”€ā”€ foreign-content.d.ts
│   │   │   │   │   ā”œā”€ā”€ foreign-content.js
│   │   │   │   │   ā”œā”€ā”€ html.d.ts
│   │   │   │   │   ā”œā”€ā”€ html.js
│   │   │   │   │   ā”œā”€ā”€ token.d.ts
│   │   │   │   │   ā”œā”€ā”€ token.js
│   │   │   │   │   ā”œā”€ā”€ unicode.d.ts
│   │   │   │   │   └── unicode.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ parser
│   │   │   │   │   ā”œā”€ā”€ formatting-element-list.d.ts
│   │   │   │   │   ā”œā”€ā”€ formatting-element-list.js
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   ā”œā”€ā”€ open-element-stack.d.ts
│   │   │   │   │   └── open-element-stack.js
│   │   │   │   ā”œā”€ā”€ serializer
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   └── index.js
│   │   │   │   ā”œā”€ā”€ tokenizer
│   │   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   ā”œā”€ā”€ preprocessor.d.ts
│   │   │   │   │   └── preprocessor.js
│   │   │   │   └── tree-adapters
│   │   │   │       ā”œā”€ā”€ default.d.ts
│   │   │   │       ā”œā”€ā”€ default.js
│   │   │   │       ā”œā”€ā”€ interface.d.ts
│   │   │   │       └── interface.js
│   │   │   ā”œā”€ā”€ common
│   │   │   │   ā”œā”€ā”€ doctype.d.ts
│   │   │   │   ā”œā”€ā”€ doctype.js
│   │   │   │   ā”œā”€ā”€ error-codes.d.ts
│   │   │   │   ā”œā”€ā”€ error-codes.js
│   │   │   │   ā”œā”€ā”€ foreign-content.d.ts
│   │   │   │   ā”œā”€ā”€ foreign-content.js
│   │   │   │   ā”œā”€ā”€ html.d.ts
│   │   │   │   ā”œā”€ā”€ html.js
│   │   │   │   ā”œā”€ā”€ token.d.ts
│   │   │   │   ā”œā”€ā”€ token.js
│   │   │   │   ā”œā”€ā”€ unicode.d.ts
│   │   │   │   └── unicode.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ parser
│   │   │   │   ā”œā”€ā”€ formatting-element-list.d.ts
│   │   │   │   ā”œā”€ā”€ formatting-element-list.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ open-element-stack.d.ts
│   │   │   │   └── open-element-stack.js
│   │   │   ā”œā”€ā”€ serializer
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   └── index.js
│   │   │   ā”œā”€ā”€ tokenizer
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ preprocessor.d.ts
│   │   │   │   └── preprocessor.js
│   │   │   └── tree-adapters
│   │   │       ā”œā”€ā”€ default.d.ts
│   │   │       ā”œā”€ā”€ default.js
│   │   │       ā”œā”€ā”€ interface.d.ts
│   │   │       └── interface.js
│   │   └── package.json
│   ā”œā”€ā”€ parseurl
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ path-data-parser
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ absolutize.d.ts
│   │   │   ā”œā”€ā”€ absolutize.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ normalize.d.ts
│   │   │   ā”œā”€ā”€ normalize.js
│   │   │   ā”œā”€ā”€ parser.d.ts
│   │   │   └── parser.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ absolutize.ts
│   │   │   ā”œā”€ā”€ index.ts
│   │   │   ā”œā”€ā”€ normalize.ts
│   │   │   └── parser.ts
│   │   ā”œā”€ā”€ tsconfig.json
│   │   └── tslint.json
│   ā”œā”€ā”€ path-exists
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ path-key
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ path-scurry
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ commonjs
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ path-to-regexp
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.js.map
│   │   ā”œā”€ā”€ dist.es2015
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.js.map
│   │   └── package.json
│   ā”œā”€ā”€ pathe
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ shared
│   │   │   │   ā”œā”€ā”€ pathe.BSlhyZSM.cjs
│   │   │   │   └── pathe.M-eThtNZ.mjs
│   │   │   ā”œā”€ā”€ utils.cjs
│   │   │   ā”œā”€ā”€ utils.d.cts
│   │   │   ā”œā”€ā”€ utils.d.mts
│   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   └── utils.mjs
│   │   ā”œā”€ā”€ package.json
│   │   └── utils.d.ts
│   ā”œā”€ā”€ pathval
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ picocolors
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ picocolors.browser.js
│   │   ā”œā”€ā”€ picocolors.d.ts
│   │   ā”œā”€ā”€ picocolors.js
│   │   └── types.d.ts
│   ā”œā”€ā”€ picomatch
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ constants.js
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   ā”œā”€ā”€ picomatch.js
│   │   │   ā”œā”€ā”€ scan.js
│   │   │   └── utils.js
│   │   ā”œā”€ā”€ package.json
│   │   └── posix.js
│   ā”œā”€ā”€ pidtree
│   │   ā”œā”€ā”€ bin
│   │   │   └── pidtree.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ bin.js
│   │   │   ā”œā”€ā”€ get.js
│   │   │   ā”œā”€ā”€ pidtree.js
│   │   │   ā”œā”€ā”€ ps.js
│   │   │   └── wmic.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ pkg-types
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ playwright
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ NOTICE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ ThirdPartyNotices.txt
│   │   ā”œā”€ā”€ cli.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ jsx-runtime.js
│   │   ā”œā”€ā”€ jsx-runtime.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ common
│   │   │   │   ā”œā”€ā”€ config.js
│   │   │   │   ā”œā”€ā”€ configLoader.js
│   │   │   │   ā”œā”€ā”€ esmLoaderHost.js
│   │   │   │   ā”œā”€ā”€ expectBundle.js
│   │   │   │   ā”œā”€ā”€ expectBundleImpl.js
│   │   │   │   ā”œā”€ā”€ fixtures.js
│   │   │   │   ā”œā”€ā”€ globals.js
│   │   │   │   ā”œā”€ā”€ ipc.js
│   │   │   │   ā”œā”€ā”€ poolBuilder.js
│   │   │   │   ā”œā”€ā”€ process.js
│   │   │   │   ā”œā”€ā”€ suiteUtils.js
│   │   │   │   ā”œā”€ā”€ test.js
│   │   │   │   ā”œā”€ā”€ testLoader.js
│   │   │   │   └── testType.js
│   │   │   ā”œā”€ā”€ fsWatcher.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ internalsForTest.js
│   │   │   ā”œā”€ā”€ isomorphic
│   │   │   │   ā”œā”€ā”€ events.js
│   │   │   │   ā”œā”€ā”€ folders.js
│   │   │   │   ā”œā”€ā”€ stringInternPool.js
│   │   │   │   ā”œā”€ā”€ teleReceiver.js
│   │   │   │   ā”œā”€ā”€ teleSuiteUpdater.js
│   │   │   │   ā”œā”€ā”€ testServerConnection.js
│   │   │   │   ā”œā”€ā”€ testServerInterface.js
│   │   │   │   ā”œā”€ā”€ testTree.js
│   │   │   │   └── types.d.js
│   │   │   ā”œā”€ā”€ loader
│   │   │   │   └── loaderMain.js
│   │   │   ā”œā”€ā”€ matchers
│   │   │   │   ā”œā”€ā”€ expect.js
│   │   │   │   ā”œā”€ā”€ matcherHint.js
│   │   │   │   ā”œā”€ā”€ matchers.js
│   │   │   │   ā”œā”€ā”€ toBeTruthy.js
│   │   │   │   ā”œā”€ā”€ toEqual.js
│   │   │   │   ā”œā”€ā”€ toHaveURL.js
│   │   │   │   ā”œā”€ā”€ toMatchAriaSnapshot.js
│   │   │   │   ā”œā”€ā”€ toMatchSnapshot.js
│   │   │   │   └── toMatchText.js
│   │   │   ā”œā”€ā”€ mcp
│   │   │   │   ā”œā”€ā”€ bundle.js
│   │   │   │   ā”œā”€ā”€ exports.js
│   │   │   │   ā”œā”€ā”€ inProcessTransport.js
│   │   │   │   ā”œā”€ā”€ proxyBackend.js
│   │   │   │   ā”œā”€ā”€ server.js
│   │   │   │   ā”œā”€ā”€ tool.js
│   │   │   │   └── transport.js
│   │   │   ā”œā”€ā”€ mcpBundleImpl.js
│   │   │   ā”œā”€ā”€ plugins
│   │   │   │   ā”œā”€ā”€ gitCommitInfoPlugin.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── webServerPlugin.js
│   │   │   ā”œā”€ā”€ program.js
│   │   │   ā”œā”€ā”€ reporters
│   │   │   │   ā”œā”€ā”€ base.js
│   │   │   │   ā”œā”€ā”€ blob.js
│   │   │   │   ā”œā”€ā”€ dot.js
│   │   │   │   ā”œā”€ā”€ empty.js
│   │   │   │   ā”œā”€ā”€ github.js
│   │   │   │   ā”œā”€ā”€ html.js
│   │   │   │   ā”œā”€ā”€ internalReporter.js
│   │   │   │   ā”œā”€ā”€ json.js
│   │   │   │   ā”œā”€ā”€ junit.js
│   │   │   │   ā”œā”€ā”€ line.js
│   │   │   │   ā”œā”€ā”€ list.js
│   │   │   │   ā”œā”€ā”€ listModeReporter.js
│   │   │   │   ā”œā”€ā”€ markdown.js
│   │   │   │   ā”œā”€ā”€ merge.js
│   │   │   │   ā”œā”€ā”€ multiplexer.js
│   │   │   │   ā”œā”€ā”€ reporterV2.js
│   │   │   │   ā”œā”€ā”€ teleEmitter.js
│   │   │   │   └── versions
│   │   │   │       └── blobV1.js
│   │   │   ā”œā”€ā”€ runner
│   │   │   │   ā”œā”€ā”€ dispatcher.js
│   │   │   │   ā”œā”€ā”€ failureTracker.js
│   │   │   │   ā”œā”€ā”€ lastRun.js
│   │   │   │   ā”œā”€ā”€ loadUtils.js
│   │   │   │   ā”œā”€ā”€ loaderHost.js
│   │   │   │   ā”œā”€ā”€ processHost.js
│   │   │   │   ā”œā”€ā”€ projectUtils.js
│   │   │   │   ā”œā”€ā”€ rebase.js
│   │   │   │   ā”œā”€ā”€ reporters.js
│   │   │   │   ā”œā”€ā”€ sigIntWatcher.js
│   │   │   │   ā”œā”€ā”€ taskRunner.js
│   │   │   │   ā”œā”€ā”€ tasks.js
│   │   │   │   ā”œā”€ā”€ testGroups.js
│   │   │   │   ā”œā”€ā”€ testRunner.js
│   │   │   │   ā”œā”€ā”€ testServer.js
│   │   │   │   ā”œā”€ā”€ uiModeReporter.js
│   │   │   │   ā”œā”€ā”€ vcs.js
│   │   │   │   ā”œā”€ā”€ watchMode.js
│   │   │   │   └── workerHost.js
│   │   │   ā”œā”€ā”€ third_party
│   │   │   │   ā”œā”€ā”€ pirates.js
│   │   │   │   └── tsconfig-loader.js
│   │   │   ā”œā”€ā”€ transform
│   │   │   │   ā”œā”€ā”€ babelBundle.js
│   │   │   │   ā”œā”€ā”€ babelBundleImpl.js
│   │   │   │   ā”œā”€ā”€ compilationCache.js
│   │   │   │   ā”œā”€ā”€ esmLoader.js
│   │   │   │   ā”œā”€ā”€ portTransport.js
│   │   │   │   └── transform.js
│   │   │   ā”œā”€ā”€ util.js
│   │   │   ā”œā”€ā”€ utilsBundle.js
│   │   │   ā”œā”€ā”€ utilsBundleImpl.js
│   │   │   └── worker
│   │   │       ā”œā”€ā”€ fixtureRunner.js
│   │   │       ā”œā”€ā”€ testInfo.js
│   │   │       ā”œā”€ā”€ testTracing.js
│   │   │       ā”œā”€ā”€ timeoutManager.js
│   │   │       ā”œā”€ā”€ util.js
│   │   │       └── workerMain.js
│   │   ā”œā”€ā”€ node_modules
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test.d.ts
│   │   ā”œā”€ā”€ test.js
│   │   ā”œā”€ā”€ test.mjs
│   │   └── types
│   │       ā”œā”€ā”€ test.d.ts
│   │       └── testReporter.d.ts
│   ā”œā”€ā”€ playwright-core
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ NOTICE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ ThirdPartyNotices.txt
│   │   ā”œā”€ā”€ bin
│   │   │   ā”œā”€ā”€ install_media_pack.ps1
│   │   │   ā”œā”€ā”€ reinstall_chrome_beta_linux.sh
│   │   │   ā”œā”€ā”€ reinstall_chrome_beta_mac.sh
│   │   │   ā”œā”€ā”€ reinstall_chrome_beta_win.ps1
│   │   │   ā”œā”€ā”€ reinstall_chrome_stable_linux.sh
│   │   │   ā”œā”€ā”€ reinstall_chrome_stable_mac.sh
│   │   │   ā”œā”€ā”€ reinstall_chrome_stable_win.ps1
│   │   │   ā”œā”€ā”€ reinstall_msedge_beta_linux.sh
│   │   │   ā”œā”€ā”€ reinstall_msedge_beta_mac.sh
│   │   │   ā”œā”€ā”€ reinstall_msedge_beta_win.ps1
│   │   │   ā”œā”€ā”€ reinstall_msedge_dev_linux.sh
│   │   │   ā”œā”€ā”€ reinstall_msedge_dev_mac.sh
│   │   │   ā”œā”€ā”€ reinstall_msedge_dev_win.ps1
│   │   │   ā”œā”€ā”€ reinstall_msedge_stable_linux.sh
│   │   │   ā”œā”€ā”€ reinstall_msedge_stable_mac.sh
│   │   │   └── reinstall_msedge_stable_win.ps1
│   │   ā”œā”€ā”€ browsers.json
│   │   ā”œā”€ā”€ cli.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ androidServerImpl.js
│   │   │   ā”œā”€ā”€ browserServerImpl.js
│   │   │   ā”œā”€ā”€ cli
│   │   │   │   ā”œā”€ā”€ driver.js
│   │   │   │   ā”œā”€ā”€ program.js
│   │   │   │   └── programWithTestStub.js
│   │   │   ā”œā”€ā”€ client
│   │   │   │   ā”œā”€ā”€ accessibility.js
│   │   │   │   ā”œā”€ā”€ android.js
│   │   │   │   ā”œā”€ā”€ api.js
│   │   │   │   ā”œā”€ā”€ artifact.js
│   │   │   │   ā”œā”€ā”€ browser.js
│   │   │   │   ā”œā”€ā”€ browserContext.js
│   │   │   │   ā”œā”€ā”€ browserType.js
│   │   │   │   ā”œā”€ā”€ cdpSession.js
│   │   │   │   ā”œā”€ā”€ channelOwner.js
│   │   │   │   ā”œā”€ā”€ clientHelper.js
│   │   │   │   ā”œā”€ā”€ clientInstrumentation.js
│   │   │   │   ā”œā”€ā”€ clientStackTrace.js
│   │   │   │   ā”œā”€ā”€ clock.js
│   │   │   │   ā”œā”€ā”€ connection.js
│   │   │   │   ā”œā”€ā”€ consoleMessage.js
│   │   │   │   ā”œā”€ā”€ coverage.js
│   │   │   │   ā”œā”€ā”€ dialog.js
│   │   │   │   ā”œā”€ā”€ download.js
│   │   │   │   ā”œā”€ā”€ electron.js
│   │   │   │   ā”œā”€ā”€ elementHandle.js
│   │   │   │   ā”œā”€ā”€ errors.js
│   │   │   │   ā”œā”€ā”€ eventEmitter.js
│   │   │   │   ā”œā”€ā”€ events.js
│   │   │   │   ā”œā”€ā”€ fetch.js
│   │   │   │   ā”œā”€ā”€ fileChooser.js
│   │   │   │   ā”œā”€ā”€ fileUtils.js
│   │   │   │   ā”œā”€ā”€ frame.js
│   │   │   │   ā”œā”€ā”€ harRouter.js
│   │   │   │   ā”œā”€ā”€ input.js
│   │   │   │   ā”œā”€ā”€ jsHandle.js
│   │   │   │   ā”œā”€ā”€ jsonPipe.js
│   │   │   │   ā”œā”€ā”€ localUtils.js
│   │   │   │   ā”œā”€ā”€ locator.js
│   │   │   │   ā”œā”€ā”€ network.js
│   │   │   │   ā”œā”€ā”€ page.js
│   │   │   │   ā”œā”€ā”€ platform.js
│   │   │   │   ā”œā”€ā”€ playwright.js
│   │   │   │   ā”œā”€ā”€ selectors.js
│   │   │   │   ā”œā”€ā”€ stream.js
│   │   │   │   ā”œā”€ā”€ timeoutSettings.js
│   │   │   │   ā”œā”€ā”€ tracing.js
│   │   │   │   ā”œā”€ā”€ types.js
│   │   │   │   ā”œā”€ā”€ video.js
│   │   │   │   ā”œā”€ā”€ waiter.js
│   │   │   │   ā”œā”€ā”€ webError.js
│   │   │   │   ā”œā”€ā”€ webSocket.js
│   │   │   │   ā”œā”€ā”€ worker.js
│   │   │   │   └── writableStream.js
│   │   │   ā”œā”€ā”€ generated
│   │   │   │   ā”œā”€ā”€ bindingsControllerSource.js
│   │   │   │   ā”œā”€ā”€ clockSource.js
│   │   │   │   ā”œā”€ā”€ injectedScriptSource.js
│   │   │   │   ā”œā”€ā”€ pollingRecorderSource.js
│   │   │   │   ā”œā”€ā”€ storageScriptSource.js
│   │   │   │   ā”œā”€ā”€ utilityScriptSource.js
│   │   │   │   └── webSocketMockSource.js
│   │   │   ā”œā”€ā”€ inProcessFactory.js
│   │   │   ā”œā”€ā”€ inprocess.js
│   │   │   ā”œā”€ā”€ outofprocess.js
│   │   │   ā”œā”€ā”€ protocol
│   │   │   │   ā”œā”€ā”€ serializers.js
│   │   │   │   ā”œā”€ā”€ validator.js
│   │   │   │   └── validatorPrimitives.js
│   │   │   ā”œā”€ā”€ remote
│   │   │   │   ā”œā”€ā”€ playwrightConnection.js
│   │   │   │   └── playwrightServer.js
│   │   │   ā”œā”€ā”€ server
│   │   │   │   ā”œā”€ā”€ accessibility.js
│   │   │   │   ā”œā”€ā”€ android
│   │   │   │   │   ā”œā”€ā”€ android.js
│   │   │   │   │   └── backendAdb.js
│   │   │   │   ā”œā”€ā”€ artifact.js
│   │   │   │   ā”œā”€ā”€ bidi
│   │   │   │   │   ā”œā”€ā”€ bidiBrowser.js
│   │   │   │   │   ā”œā”€ā”€ bidiChromium.js
│   │   │   │   │   ā”œā”€ā”€ bidiConnection.js
│   │   │   │   │   ā”œā”€ā”€ bidiExecutionContext.js
│   │   │   │   │   ā”œā”€ā”€ bidiFirefox.js
│   │   │   │   │   ā”œā”€ā”€ bidiInput.js
│   │   │   │   │   ā”œā”€ā”€ bidiNetworkManager.js
│   │   │   │   │   ā”œā”€ā”€ bidiOverCdp.js
│   │   │   │   │   ā”œā”€ā”€ bidiPage.js
│   │   │   │   │   ā”œā”€ā”€ bidiPdf.js
│   │   │   │   │   └── third_party
│   │   │   │   │       ā”œā”€ā”€ bidiCommands.d.js
│   │   │   │   │       ā”œā”€ā”€ bidiDeserializer.js
│   │   │   │   │       ā”œā”€ā”€ bidiKeyboard.js
│   │   │   │   │       ā”œā”€ā”€ bidiProtocol.js
│   │   │   │   │       ā”œā”€ā”€ bidiProtocolCore.js
│   │   │   │   │       ā”œā”€ā”€ bidiProtocolPermissions.js
│   │   │   │   │       ā”œā”€ā”€ bidiSerializer.js
│   │   │   │   │       └── firefoxPrefs.js
│   │   │   │   ā”œā”€ā”€ browser.js
│   │   │   │   ā”œā”€ā”€ browserContext.js
│   │   │   │   ā”œā”€ā”€ browserType.js
│   │   │   │   ā”œā”€ā”€ callLog.js
│   │   │   │   ā”œā”€ā”€ chromium
│   │   │   │   │   ā”œā”€ā”€ appIcon.png
│   │   │   │   │   ā”œā”€ā”€ chromium.js
│   │   │   │   │   ā”œā”€ā”€ chromiumSwitches.js
│   │   │   │   │   ā”œā”€ā”€ crAccessibility.js
│   │   │   │   │   ā”œā”€ā”€ crBrowser.js
│   │   │   │   │   ā”œā”€ā”€ crConnection.js
│   │   │   │   │   ā”œā”€ā”€ crCoverage.js
│   │   │   │   │   ā”œā”€ā”€ crDevTools.js
│   │   │   │   │   ā”œā”€ā”€ crDragDrop.js
│   │   │   │   │   ā”œā”€ā”€ crExecutionContext.js
│   │   │   │   │   ā”œā”€ā”€ crInput.js
│   │   │   │   │   ā”œā”€ā”€ crNetworkManager.js
│   │   │   │   │   ā”œā”€ā”€ crPage.js
│   │   │   │   │   ā”œā”€ā”€ crPdf.js
│   │   │   │   │   ā”œā”€ā”€ crProtocolHelper.js
│   │   │   │   │   ā”œā”€ā”€ crServiceWorker.js
│   │   │   │   │   ā”œā”€ā”€ defaultFontFamilies.js
│   │   │   │   │   ā”œā”€ā”€ protocol.d.js
│   │   │   │   │   └── videoRecorder.js
│   │   │   │   ā”œā”€ā”€ clock.js
│   │   │   │   ā”œā”€ā”€ codegen
│   │   │   │   │   ā”œā”€ā”€ csharp.js
│   │   │   │   │   ā”œā”€ā”€ java.js
│   │   │   │   │   ā”œā”€ā”€ javascript.js
│   │   │   │   │   ā”œā”€ā”€ jsonl.js
│   │   │   │   │   ā”œā”€ā”€ language.js
│   │   │   │   │   ā”œā”€ā”€ languages.js
│   │   │   │   │   ā”œā”€ā”€ python.js
│   │   │   │   │   └── types.js
│   │   │   │   ā”œā”€ā”€ console.js
│   │   │   │   ā”œā”€ā”€ cookieStore.js
│   │   │   │   ā”œā”€ā”€ debugController.js
│   │   │   │   ā”œā”€ā”€ debugger.js
│   │   │   │   ā”œā”€ā”€ deviceDescriptors.js
│   │   │   │   ā”œā”€ā”€ deviceDescriptorsSource.json
│   │   │   │   ā”œā”€ā”€ dialog.js
│   │   │   │   ā”œā”€ā”€ dispatchers
│   │   │   │   │   ā”œā”€ā”€ androidDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ artifactDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ browserContextDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ browserDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ browserTypeDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ cdpSessionDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ debugControllerDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ dialogDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ dispatcher.js
│   │   │   │   │   ā”œā”€ā”€ electronDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ elementHandlerDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ frameDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ jsHandleDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ jsonPipeDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ localUtilsDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ networkDispatchers.js
│   │   │   │   │   ā”œā”€ā”€ pageDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ playwrightDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ streamDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ tracingDispatcher.js
│   │   │   │   │   ā”œā”€ā”€ webSocketRouteDispatcher.js
│   │   │   │   │   └── writableStreamDispatcher.js
│   │   │   │   ā”œā”€ā”€ dom.js
│   │   │   │   ā”œā”€ā”€ download.js
│   │   │   │   ā”œā”€ā”€ electron
│   │   │   │   │   ā”œā”€ā”€ electron.js
│   │   │   │   │   └── loader.js
│   │   │   │   ā”œā”€ā”€ errors.js
│   │   │   │   ā”œā”€ā”€ fetch.js
│   │   │   │   ā”œā”€ā”€ fileChooser.js
│   │   │   │   ā”œā”€ā”€ fileUploadUtils.js
│   │   │   │   ā”œā”€ā”€ firefox
│   │   │   │   │   ā”œā”€ā”€ ffAccessibility.js
│   │   │   │   │   ā”œā”€ā”€ ffBrowser.js
│   │   │   │   │   ā”œā”€ā”€ ffConnection.js
│   │   │   │   │   ā”œā”€ā”€ ffExecutionContext.js
│   │   │   │   │   ā”œā”€ā”€ ffInput.js
│   │   │   │   │   ā”œā”€ā”€ ffNetworkManager.js
│   │   │   │   │   ā”œā”€ā”€ ffPage.js
│   │   │   │   │   ā”œā”€ā”€ firefox.js
│   │   │   │   │   └── protocol.d.js
│   │   │   │   ā”œā”€ā”€ formData.js
│   │   │   │   ā”œā”€ā”€ frameSelectors.js
│   │   │   │   ā”œā”€ā”€ frames.js
│   │   │   │   ā”œā”€ā”€ har
│   │   │   │   │   ā”œā”€ā”€ harRecorder.js
│   │   │   │   │   └── harTracer.js
│   │   │   │   ā”œā”€ā”€ harBackend.js
│   │   │   │   ā”œā”€ā”€ helper.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ input.js
│   │   │   │   ā”œā”€ā”€ instrumentation.js
│   │   │   │   ā”œā”€ā”€ javascript.js
│   │   │   │   ā”œā”€ā”€ launchApp.js
│   │   │   │   ā”œā”€ā”€ localUtils.js
│   │   │   │   ā”œā”€ā”€ macEditingCommands.js
│   │   │   │   ā”œā”€ā”€ network.js
│   │   │   │   ā”œā”€ā”€ page.js
│   │   │   │   ā”œā”€ā”€ pipeTransport.js
│   │   │   │   ā”œā”€ā”€ playwright.js
│   │   │   │   ā”œā”€ā”€ progress.js
│   │   │   │   ā”œā”€ā”€ protocolError.js
│   │   │   │   ā”œā”€ā”€ recorder
│   │   │   │   │   ā”œā”€ā”€ chat.js
│   │   │   │   │   ā”œā”€ā”€ recorderApp.js
│   │   │   │   │   ā”œā”€ā”€ recorderRunner.js
│   │   │   │   │   ā”œā”€ā”€ recorderSignalProcessor.js
│   │   │   │   │   ā”œā”€ā”€ recorderUtils.js
│   │   │   │   │   └── throttledFile.js
│   │   │   │   ā”œā”€ā”€ recorder.js
│   │   │   │   ā”œā”€ā”€ registry
│   │   │   │   │   ā”œā”€ā”€ browserFetcher.js
│   │   │   │   │   ā”œā”€ā”€ dependencies.js
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   ā”œā”€ā”€ nativeDeps.js
│   │   │   │   │   └── oopDownloadBrowserMain.js
│   │   │   │   ā”œā”€ā”€ screenshotter.js
│   │   │   │   ā”œā”€ā”€ selectors.js
│   │   │   │   ā”œā”€ā”€ socksClientCertificatesInterceptor.js
│   │   │   │   ā”œā”€ā”€ socksInterceptor.js
│   │   │   │   ā”œā”€ā”€ trace
│   │   │   │   │   ā”œā”€ā”€ recorder
│   │   │   │   │   │   ā”œā”€ā”€ snapshotter.js
│   │   │   │   │   │   ā”œā”€ā”€ snapshotterInjected.js
│   │   │   │   │   │   └── tracing.js
│   │   │   │   │   ā”œā”€ā”€ test
│   │   │   │   │   │   └── inMemorySnapshotter.js
│   │   │   │   │   └── viewer
│   │   │   │   │       └── traceViewer.js
│   │   │   │   ā”œā”€ā”€ transport.js
│   │   │   │   ā”œā”€ā”€ types.js
│   │   │   │   ā”œā”€ā”€ usKeyboardLayout.js
│   │   │   │   ā”œā”€ā”€ utils
│   │   │   │   │   ā”œā”€ā”€ ascii.js
│   │   │   │   │   ā”œā”€ā”€ comparators.js
│   │   │   │   │   ā”œā”€ā”€ crypto.js
│   │   │   │   │   ā”œā”€ā”€ debug.js
│   │   │   │   │   ā”œā”€ā”€ debugLogger.js
│   │   │   │   │   ā”œā”€ā”€ env.js
│   │   │   │   │   ā”œā”€ā”€ eventsHelper.js
│   │   │   │   │   ā”œā”€ā”€ expectUtils.js
│   │   │   │   │   ā”œā”€ā”€ fileUtils.js
│   │   │   │   │   ā”œā”€ā”€ happyEyeballs.js
│   │   │   │   │   ā”œā”€ā”€ hostPlatform.js
│   │   │   │   │   ā”œā”€ā”€ httpServer.js
│   │   │   │   │   ā”œā”€ā”€ image_tools
│   │   │   │   │   │   ā”œā”€ā”€ colorUtils.js
│   │   │   │   │   │   ā”œā”€ā”€ compare.js
│   │   │   │   │   │   ā”œā”€ā”€ imageChannel.js
│   │   │   │   │   │   └── stats.js
│   │   │   │   │   ā”œā”€ā”€ linuxUtils.js
│   │   │   │   │   ā”œā”€ā”€ network.js
│   │   │   │   │   ā”œā”€ā”€ nodePlatform.js
│   │   │   │   │   ā”œā”€ā”€ pipeTransport.js
│   │   │   │   │   ā”œā”€ā”€ processLauncher.js
│   │   │   │   │   ā”œā”€ā”€ profiler.js
│   │   │   │   │   ā”œā”€ā”€ socksProxy.js
│   │   │   │   │   ā”œā”€ā”€ spawnAsync.js
│   │   │   │   │   ā”œā”€ā”€ task.js
│   │   │   │   │   ā”œā”€ā”€ userAgent.js
│   │   │   │   │   ā”œā”€ā”€ wsServer.js
│   │   │   │   │   ā”œā”€ā”€ zipFile.js
│   │   │   │   │   └── zones.js
│   │   │   │   └── webkit
│   │   │   │       ā”œā”€ā”€ protocol.d.js
│   │   │   │       ā”œā”€ā”€ webkit.js
│   │   │   │       ā”œā”€ā”€ wkAccessibility.js
│   │   │   │       ā”œā”€ā”€ wkBrowser.js
│   │   │   │       ā”œā”€ā”€ wkConnection.js
│   │   │   │       ā”œā”€ā”€ wkExecutionContext.js
│   │   │   │       ā”œā”€ā”€ wkInput.js
│   │   │   │       ā”œā”€ā”€ wkInterceptableRequest.js
│   │   │   │       ā”œā”€ā”€ wkPage.js
│   │   │   │       ā”œā”€ā”€ wkProvisionalPage.js
│   │   │   │       └── wkWorkers.js
│   │   │   ā”œā”€ā”€ third_party
│   │   │   │   └── pixelmatch.js
│   │   │   ā”œā”€ā”€ utils
│   │   │   │   └── isomorphic
│   │   │   │       ā”œā”€ā”€ ariaSnapshot.js
│   │   │   │       ā”œā”€ā”€ assert.js
│   │   │   │       ā”œā”€ā”€ colors.js
│   │   │   │       ā”œā”€ā”€ cssParser.js
│   │   │   │       ā”œā”€ā”€ cssTokenizer.js
│   │   │   │       ā”œā”€ā”€ headers.js
│   │   │   │       ā”œā”€ā”€ locatorGenerators.js
│   │   │   │       ā”œā”€ā”€ locatorParser.js
│   │   │   │       ā”œā”€ā”€ locatorUtils.js
│   │   │   │       ā”œā”€ā”€ manualPromise.js
│   │   │   │       ā”œā”€ā”€ mimeType.js
│   │   │   │       ā”œā”€ā”€ multimap.js
│   │   │   │       ā”œā”€ā”€ protocolFormatter.js
│   │   │   │       ā”œā”€ā”€ protocolMetainfo.js
│   │   │   │       ā”œā”€ā”€ rtti.js
│   │   │   │       ā”œā”€ā”€ selectorParser.js
│   │   │   │       ā”œā”€ā”€ semaphore.js
│   │   │   │       ā”œā”€ā”€ stackTrace.js
│   │   │   │       ā”œā”€ā”€ stringUtils.js
│   │   │   │       ā”œā”€ā”€ time.js
│   │   │   │       ā”œā”€ā”€ timeoutRunner.js
│   │   │   │       ā”œā”€ā”€ traceUtils.js
│   │   │   │       ā”œā”€ā”€ types.js
│   │   │   │       ā”œā”€ā”€ urlMatch.js
│   │   │   │       └── utilityScriptSerializers.js
│   │   │   ā”œā”€ā”€ utils.js
│   │   │   ā”œā”€ā”€ utilsBundle.js
│   │   │   ā”œā”€ā”€ utilsBundleImpl
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── xdg-open
│   │   │   ā”œā”€ā”€ vite
│   │   │   │   ā”œā”€ā”€ htmlReport
│   │   │   │   │   └── index.html
│   │   │   │   ā”œā”€ā”€ recorder
│   │   │   │   │   ā”œā”€ā”€ assets
│   │   │   │   │   │   ā”œā”€ā”€ codeMirrorModule-C3UTv-Ge.css
│   │   │   │   │   │   ā”œā”€ā”€ codeMirrorModule-DzQ0k89p.js
│   │   │   │   │   │   ā”œā”€ā”€ codicon-DCmgc-ay.ttf
│   │   │   │   │   │   ā”œā”€ā”€ index-CI4HQ-Zb.css
│   │   │   │   │   │   └── index-D7C7daHH.js
│   │   │   │   │   ā”œā”€ā”€ index.html
│   │   │   │   │   └── playwright-logo.svg
│   │   │   │   └── traceViewer
│   │   │   │       ā”œā”€ā”€ assets
│   │   │   │       │   ā”œā”€ā”€ codeMirrorModule-B9MwJ51G.js
│   │   │   │       │   ā”œā”€ā”€ defaultSettingsView-Do_wwdKw.js
│   │   │   │       │   └── xtermModule-BoAIEibi.js
│   │   │   │       ā”œā”€ā”€ codeMirrorModule.C3UTv-Ge.css
│   │   │   │       ā”œā”€ā”€ codicon.DCmgc-ay.ttf
│   │   │   │       ā”œā”€ā”€ defaultSettingsView.DVJHpiGt.css
│   │   │   │       ā”œā”€ā”€ index.BFsek2M6.css
│   │   │   │       ā”œā”€ā”€ index.BZPYnuWQ.js
│   │   │   │       ā”œā”€ā”€ index.html
│   │   │   │       ā”œā”€ā”€ playwright-logo.svg
│   │   │   │       ā”œā”€ā”€ snapshot.html
│   │   │   │       ā”œā”€ā”€ sw.bundle.js
│   │   │   │       ā”œā”€ā”€ uiMode.9zHYMU6d.js
│   │   │   │       ā”œā”€ā”€ uiMode.BatfzHMG.css
│   │   │   │       ā”œā”€ā”€ uiMode.html
│   │   │   │       └── xtermModule.Beg8tuEN.css
│   │   │   ā”œā”€ā”€ zipBundle.js
│   │   │   └── zipBundleImpl.js
│   │   ā”œā”€ā”€ package.json
│   │   └── types
│   │       ā”œā”€ā”€ protocol.d.ts
│   │       ā”œā”€ā”€ structs.d.ts
│   │       └── types.d.ts
│   ā”œā”€ā”€ please-upgrade-node
│   │   ā”œā”€ā”€ .eslintrc.js
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ pngjs
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ browser.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ bitmapper.js
│   │   │   ā”œā”€ā”€ bitpacker.js
│   │   │   ā”œā”€ā”€ chunkstream.js
│   │   │   ā”œā”€ā”€ constants.js
│   │   │   ā”œā”€ā”€ crc.js
│   │   │   ā”œā”€ā”€ filter-pack.js
│   │   │   ā”œā”€ā”€ filter-parse-async.js
│   │   │   ā”œā”€ā”€ filter-parse-sync.js
│   │   │   ā”œā”€ā”€ filter-parse.js
│   │   │   ā”œā”€ā”€ format-normaliser.js
│   │   │   ā”œā”€ā”€ interlace.js
│   │   │   ā”œā”€ā”€ packer-async.js
│   │   │   ā”œā”€ā”€ packer-sync.js
│   │   │   ā”œā”€ā”€ packer.js
│   │   │   ā”œā”€ā”€ paeth-predictor.js
│   │   │   ā”œā”€ā”€ parser-async.js
│   │   │   ā”œā”€ā”€ parser-sync.js
│   │   │   ā”œā”€ā”€ parser.js
│   │   │   ā”œā”€ā”€ png-sync.js
│   │   │   ā”œā”€ā”€ png.js
│   │   │   ā”œā”€ā”€ sync-inflate.js
│   │   │   └── sync-reader.js
│   │   └── package.json
│   ā”œā”€ā”€ points-on-curve
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ curve-to-bezier.d.ts
│   │   │   ā”œā”€ā”€ curve-to-bezier.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   ā”œā”€ā”€ curve-to-bezier.ts
│   │   │   └── index.ts
│   │   ā”œā”€ā”€ tsconfig.json
│   │   └── tslint.json
│   ā”œā”€ā”€ points-on-path
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   └── index.ts
│   │   ā”œā”€ā”€ tsconfig.json
│   │   └── tslint.json
│   ā”œā”€ā”€ pony-cause
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ compat.d.ts
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.d.ts.map
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ error-with-cause-compat.d.ts
│   │   │   ā”œā”€ā”€ error-with-cause.d.ts
│   │   │   ā”œā”€ā”€ error-with-cause.d.ts.map
│   │   │   ā”œā”€ā”€ error-with-cause.js
│   │   │   ā”œā”€ā”€ error-with-cause.mjs
│   │   │   ā”œā”€ā”€ helpers.d.ts
│   │   │   ā”œā”€ā”€ helpers.d.ts.map
│   │   │   ā”œā”€ā”€ helpers.js
│   │   │   └── helpers.mjs
│   │   └── package.json
│   ā”œā”€ā”€ postcss
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ at-rule.d.ts
│   │   │   ā”œā”€ā”€ at-rule.js
│   │   │   ā”œā”€ā”€ comment.d.ts
│   │   │   ā”œā”€ā”€ comment.js
│   │   │   ā”œā”€ā”€ container.d.ts
│   │   │   ā”œā”€ā”€ container.js
│   │   │   ā”œā”€ā”€ css-syntax-error.d.ts
│   │   │   ā”œā”€ā”€ css-syntax-error.js
│   │   │   ā”œā”€ā”€ declaration.d.ts
│   │   │   ā”œā”€ā”€ declaration.js
│   │   │   ā”œā”€ā”€ document.d.ts
│   │   │   ā”œā”€ā”€ document.js
│   │   │   ā”œā”€ā”€ fromJSON.d.ts
│   │   │   ā”œā”€ā”€ fromJSON.js
│   │   │   ā”œā”€ā”€ input.d.ts
│   │   │   ā”œā”€ā”€ input.js
│   │   │   ā”œā”€ā”€ lazy-result.d.ts
│   │   │   ā”œā”€ā”€ lazy-result.js
│   │   │   ā”œā”€ā”€ list.d.ts
│   │   │   ā”œā”€ā”€ list.js
│   │   │   ā”œā”€ā”€ map-generator.js
│   │   │   ā”œā”€ā”€ no-work-result.d.ts
│   │   │   ā”œā”€ā”€ no-work-result.js
│   │   │   ā”œā”€ā”€ node.d.ts
│   │   │   ā”œā”€ā”€ node.js
│   │   │   ā”œā”€ā”€ parse.d.ts
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   ā”œā”€ā”€ parser.js
│   │   │   ā”œā”€ā”€ postcss.d.mts
│   │   │   ā”œā”€ā”€ postcss.d.ts
│   │   │   ā”œā”€ā”€ postcss.js
│   │   │   ā”œā”€ā”€ postcss.mjs
│   │   │   ā”œā”€ā”€ previous-map.d.ts
│   │   │   ā”œā”€ā”€ previous-map.js
│   │   │   ā”œā”€ā”€ processor.d.ts
│   │   │   ā”œā”€ā”€ processor.js
│   │   │   ā”œā”€ā”€ result.d.ts
│   │   │   ā”œā”€ā”€ result.js
│   │   │   ā”œā”€ā”€ root.d.ts
│   │   │   ā”œā”€ā”€ root.js
│   │   │   ā”œā”€ā”€ rule.d.ts
│   │   │   ā”œā”€ā”€ rule.js
│   │   │   ā”œā”€ā”€ stringifier.d.ts
│   │   │   ā”œā”€ā”€ stringifier.js
│   │   │   ā”œā”€ā”€ stringify.d.ts
│   │   │   ā”œā”€ā”€ stringify.js
│   │   │   ā”œā”€ā”€ symbols.js
│   │   │   ā”œā”€ā”€ terminal-highlight.js
│   │   │   ā”œā”€ā”€ tokenize.js
│   │   │   ā”œā”€ā”€ warn-once.js
│   │   │   ā”œā”€ā”€ warning.d.ts
│   │   │   └── warning.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ .bin
│   │   │   │   └── nanoid -> ../nanoid/bin/nanoid.cjs
│   │   │   └── nanoid
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ async
│   │   │       │   ā”œā”€ā”€ index.browser.cjs
│   │   │       │   ā”œā”€ā”€ index.browser.js
│   │   │       │   ā”œā”€ā”€ index.cjs
│   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   ā”œā”€ā”€ index.native.js
│   │   │       │   └── package.json
│   │   │       ā”œā”€ā”€ bin
│   │   │       │   └── nanoid.cjs
│   │   │       ā”œā”€ā”€ index.browser.cjs
│   │   │       ā”œā”€ā”€ index.browser.js
│   │   │       ā”œā”€ā”€ index.cjs
│   │   │       ā”œā”€ā”€ index.d.cts
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ nanoid.js
│   │   │       ā”œā”€ā”€ non-secure
│   │   │       │   ā”œā”€ā”€ index.cjs
│   │   │       │   ā”œā”€ā”€ index.d.ts
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   └── package.json
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── url-alphabet
│   │   │           ā”œā”€ā”€ index.cjs
│   │   │           ā”œā”€ā”€ index.js
│   │   │           └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ posthtml
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ api.js
│   │   │   └── index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── types
│   │       └── posthtml.d.ts
│   ā”œā”€ā”€ posthtml-match-helper
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ posthtml-parser
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ chunk.2UQLUWPH.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ location-tracker.d.ts
│   │   │   └── location-tracker.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ posthtml-render
│   │   ā”œā”€ā”€ changelog.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ prelude-ls
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ Func.js
│   │   │   ā”œā”€ā”€ List.js
│   │   │   ā”œā”€ā”€ Num.js
│   │   │   ā”œā”€ā”€ Obj.js
│   │   │   ā”œā”€ā”€ Str.js
│   │   │   └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ prettier
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ THIRD-PARTY-NOTICES.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── prettier.cjs
│   │   ā”œā”€ā”€ doc.d.ts
│   │   ā”œā”€ā”€ doc.js
│   │   ā”œā”€ā”€ doc.mjs
│   │   ā”œā”€ā”€ index.cjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ internal
│   │   │   ā”œā”€ā”€ experimental-cli-worker.mjs
│   │   │   ā”œā”€ā”€ experimental-cli.mjs
│   │   │   └── legacy-cli.mjs
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ plugins
│   │   │   ā”œā”€ā”€ acorn.d.ts
│   │   │   ā”œā”€ā”€ acorn.js
│   │   │   ā”œā”€ā”€ acorn.mjs
│   │   │   ā”œā”€ā”€ angular.d.ts
│   │   │   ā”œā”€ā”€ angular.js
│   │   │   ā”œā”€ā”€ angular.mjs
│   │   │   ā”œā”€ā”€ babel.d.ts
│   │   │   ā”œā”€ā”€ babel.js
│   │   │   ā”œā”€ā”€ babel.mjs
│   │   │   ā”œā”€ā”€ estree.d.ts
│   │   │   ā”œā”€ā”€ estree.js
│   │   │   ā”œā”€ā”€ estree.mjs
│   │   │   ā”œā”€ā”€ flow.d.ts
│   │   │   ā”œā”€ā”€ flow.js
│   │   │   ā”œā”€ā”€ flow.mjs
│   │   │   ā”œā”€ā”€ glimmer.d.ts
│   │   │   ā”œā”€ā”€ glimmer.js
│   │   │   ā”œā”€ā”€ glimmer.mjs
│   │   │   ā”œā”€ā”€ graphql.d.ts
│   │   │   ā”œā”€ā”€ graphql.js
│   │   │   ā”œā”€ā”€ graphql.mjs
│   │   │   ā”œā”€ā”€ html.d.ts
│   │   │   ā”œā”€ā”€ html.js
│   │   │   ā”œā”€ā”€ html.mjs
│   │   │   ā”œā”€ā”€ markdown.d.ts
│   │   │   ā”œā”€ā”€ markdown.js
│   │   │   ā”œā”€ā”€ markdown.mjs
│   │   │   ā”œā”€ā”€ meriyah.d.ts
│   │   │   ā”œā”€ā”€ meriyah.js
│   │   │   ā”œā”€ā”€ meriyah.mjs
│   │   │   ā”œā”€ā”€ postcss.d.ts
│   │   │   ā”œā”€ā”€ postcss.js
│   │   │   ā”œā”€ā”€ postcss.mjs
│   │   │   ā”œā”€ā”€ typescript.d.ts
│   │   │   ā”œā”€ā”€ typescript.js
│   │   │   ā”œā”€ā”€ typescript.mjs
│   │   │   ā”œā”€ā”€ yaml.d.ts
│   │   │   ā”œā”€ā”€ yaml.js
│   │   │   └── yaml.mjs
│   │   ā”œā”€ā”€ standalone.d.ts
│   │   ā”œā”€ā”€ standalone.js
│   │   └── standalone.mjs
│   ā”œā”€ā”€ prismjs
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ _headers
│   │   ā”œā”€ā”€ components
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ prism-abap.js
│   │   │   ā”œā”€ā”€ prism-abap.min.js
│   │   │   ā”œā”€ā”€ prism-abnf.js
│   │   │   ā”œā”€ā”€ prism-abnf.min.js
│   │   │   ā”œā”€ā”€ prism-actionscript.js
│   │   │   ā”œā”€ā”€ prism-actionscript.min.js
│   │   │   ā”œā”€ā”€ prism-ada.js
│   │   │   ā”œā”€ā”€ prism-ada.min.js
│   │   │   ā”œā”€ā”€ prism-agda.js
│   │   │   ā”œā”€ā”€ prism-agda.min.js
│   │   │   ā”œā”€ā”€ prism-al.js
│   │   │   ā”œā”€ā”€ prism-al.min.js
│   │   │   ā”œā”€ā”€ prism-antlr4.js
│   │   │   ā”œā”€ā”€ prism-antlr4.min.js
│   │   │   ā”œā”€ā”€ prism-apacheconf.js
│   │   │   ā”œā”€ā”€ prism-apacheconf.min.js
│   │   │   ā”œā”€ā”€ prism-apex.js
│   │   │   ā”œā”€ā”€ prism-apex.min.js
│   │   │   ā”œā”€ā”€ prism-apl.js
│   │   │   ā”œā”€ā”€ prism-apl.min.js
│   │   │   ā”œā”€ā”€ prism-applescript.js
│   │   │   ā”œā”€ā”€ prism-applescript.min.js
│   │   │   ā”œā”€ā”€ prism-aql.js
│   │   │   ā”œā”€ā”€ prism-aql.min.js
│   │   │   ā”œā”€ā”€ prism-arduino.js
│   │   │   ā”œā”€ā”€ prism-arduino.min.js
│   │   │   ā”œā”€ā”€ prism-arff.js
│   │   │   ā”œā”€ā”€ prism-arff.min.js
│   │   │   ā”œā”€ā”€ prism-armasm.js
│   │   │   ā”œā”€ā”€ prism-armasm.min.js
│   │   │   ā”œā”€ā”€ prism-arturo.js
│   │   │   ā”œā”€ā”€ prism-arturo.min.js
│   │   │   ā”œā”€ā”€ prism-asciidoc.js
│   │   │   ā”œā”€ā”€ prism-asciidoc.min.js
│   │   │   ā”œā”€ā”€ prism-asm6502.js
│   │   │   ā”œā”€ā”€ prism-asm6502.min.js
│   │   │   ā”œā”€ā”€ prism-asmatmel.js
│   │   │   ā”œā”€ā”€ prism-asmatmel.min.js
│   │   │   ā”œā”€ā”€ prism-aspnet.js
│   │   │   ā”œā”€ā”€ prism-aspnet.min.js
│   │   │   ā”œā”€ā”€ prism-autohotkey.js
│   │   │   ā”œā”€ā”€ prism-autohotkey.min.js
│   │   │   ā”œā”€ā”€ prism-autoit.js
│   │   │   ā”œā”€ā”€ prism-autoit.min.js
│   │   │   ā”œā”€ā”€ prism-avisynth.js
│   │   │   ā”œā”€ā”€ prism-avisynth.min.js
│   │   │   ā”œā”€ā”€ prism-avro-idl.js
│   │   │   ā”œā”€ā”€ prism-avro-idl.min.js
│   │   │   ā”œā”€ā”€ prism-awk.js
│   │   │   ā”œā”€ā”€ prism-awk.min.js
│   │   │   ā”œā”€ā”€ prism-bash.js
│   │   │   ā”œā”€ā”€ prism-bash.min.js
│   │   │   ā”œā”€ā”€ prism-basic.js
│   │   │   ā”œā”€ā”€ prism-basic.min.js
│   │   │   ā”œā”€ā”€ prism-batch.js
│   │   │   ā”œā”€ā”€ prism-batch.min.js
│   │   │   ā”œā”€ā”€ prism-bbcode.js
│   │   │   ā”œā”€ā”€ prism-bbcode.min.js
│   │   │   ā”œā”€ā”€ prism-bbj.js
│   │   │   ā”œā”€ā”€ prism-bbj.min.js
│   │   │   ā”œā”€ā”€ prism-bicep.js
│   │   │   ā”œā”€ā”€ prism-bicep.min.js
│   │   │   ā”œā”€ā”€ prism-birb.js
│   │   │   ā”œā”€ā”€ prism-birb.min.js
│   │   │   ā”œā”€ā”€ prism-bison.js
│   │   │   ā”œā”€ā”€ prism-bison.min.js
│   │   │   ā”œā”€ā”€ prism-bnf.js
│   │   │   ā”œā”€ā”€ prism-bnf.min.js
│   │   │   ā”œā”€ā”€ prism-bqn.js
│   │   │   ā”œā”€ā”€ prism-bqn.min.js
│   │   │   ā”œā”€ā”€ prism-brainfuck.js
│   │   │   ā”œā”€ā”€ prism-brainfuck.min.js
│   │   │   ā”œā”€ā”€ prism-brightscript.js
│   │   │   ā”œā”€ā”€ prism-brightscript.min.js
│   │   │   ā”œā”€ā”€ prism-bro.js
│   │   │   ā”œā”€ā”€ prism-bro.min.js
│   │   │   ā”œā”€ā”€ prism-bsl.js
│   │   │   ā”œā”€ā”€ prism-bsl.min.js
│   │   │   ā”œā”€ā”€ prism-c.js
│   │   │   ā”œā”€ā”€ prism-c.min.js
│   │   │   ā”œā”€ā”€ prism-cfscript.js
│   │   │   ā”œā”€ā”€ prism-cfscript.min.js
│   │   │   ā”œā”€ā”€ prism-chaiscript.js
│   │   │   ā”œā”€ā”€ prism-chaiscript.min.js
│   │   │   ā”œā”€ā”€ prism-cil.js
│   │   │   ā”œā”€ā”€ prism-cil.min.js
│   │   │   ā”œā”€ā”€ prism-cilkc.js
│   │   │   ā”œā”€ā”€ prism-cilkc.min.js
│   │   │   ā”œā”€ā”€ prism-cilkcpp.js
│   │   │   ā”œā”€ā”€ prism-cilkcpp.min.js
│   │   │   ā”œā”€ā”€ prism-clike.js
│   │   │   ā”œā”€ā”€ prism-clike.min.js
│   │   │   ā”œā”€ā”€ prism-clojure.js
│   │   │   ā”œā”€ā”€ prism-clojure.min.js
│   │   │   ā”œā”€ā”€ prism-cmake.js
│   │   │   ā”œā”€ā”€ prism-cmake.min.js
│   │   │   ā”œā”€ā”€ prism-cobol.js
│   │   │   ā”œā”€ā”€ prism-cobol.min.js
│   │   │   ā”œā”€ā”€ prism-coffeescript.js
│   │   │   ā”œā”€ā”€ prism-coffeescript.min.js
│   │   │   ā”œā”€ā”€ prism-concurnas.js
│   │   │   ā”œā”€ā”€ prism-concurnas.min.js
│   │   │   ā”œā”€ā”€ prism-cooklang.js
│   │   │   ā”œā”€ā”€ prism-cooklang.min.js
│   │   │   ā”œā”€ā”€ prism-coq.js
│   │   │   ā”œā”€ā”€ prism-coq.min.js
│   │   │   ā”œā”€ā”€ prism-core.js
│   │   │   ā”œā”€ā”€ prism-core.min.js
│   │   │   ā”œā”€ā”€ prism-cpp.js
│   │   │   ā”œā”€ā”€ prism-cpp.min.js
│   │   │   ā”œā”€ā”€ prism-crystal.js
│   │   │   ā”œā”€ā”€ prism-crystal.min.js
│   │   │   ā”œā”€ā”€ prism-csharp.js
│   │   │   ā”œā”€ā”€ prism-csharp.min.js
│   │   │   ā”œā”€ā”€ prism-cshtml.js
│   │   │   ā”œā”€ā”€ prism-cshtml.min.js
│   │   │   ā”œā”€ā”€ prism-csp.js
│   │   │   ā”œā”€ā”€ prism-csp.min.js
│   │   │   ā”œā”€ā”€ prism-css-extras.js
│   │   │   ā”œā”€ā”€ prism-css-extras.min.js
│   │   │   ā”œā”€ā”€ prism-css.js
│   │   │   ā”œā”€ā”€ prism-css.min.js
│   │   │   ā”œā”€ā”€ prism-csv.js
│   │   │   ā”œā”€ā”€ prism-csv.min.js
│   │   │   ā”œā”€ā”€ prism-cue.js
│   │   │   ā”œā”€ā”€ prism-cue.min.js
│   │   │   ā”œā”€ā”€ prism-cypher.js
│   │   │   ā”œā”€ā”€ prism-cypher.min.js
│   │   │   ā”œā”€ā”€ prism-d.js
│   │   │   ā”œā”€ā”€ prism-d.min.js
│   │   │   ā”œā”€ā”€ prism-dart.js
│   │   │   ā”œā”€ā”€ prism-dart.min.js
│   │   │   ā”œā”€ā”€ prism-dataweave.js
│   │   │   ā”œā”€ā”€ prism-dataweave.min.js
│   │   │   ā”œā”€ā”€ prism-dax.js
│   │   │   ā”œā”€ā”€ prism-dax.min.js
│   │   │   ā”œā”€ā”€ prism-dhall.js
│   │   │   ā”œā”€ā”€ prism-dhall.min.js
│   │   │   ā”œā”€ā”€ prism-diff.js
│   │   │   ā”œā”€ā”€ prism-diff.min.js
│   │   │   ā”œā”€ā”€ prism-django.js
│   │   │   ā”œā”€ā”€ prism-django.min.js
│   │   │   ā”œā”€ā”€ prism-dns-zone-file.js
│   │   │   ā”œā”€ā”€ prism-dns-zone-file.min.js
│   │   │   ā”œā”€ā”€ prism-docker.js
│   │   │   ā”œā”€ā”€ prism-docker.min.js
│   │   │   ā”œā”€ā”€ prism-dot.js
│   │   │   ā”œā”€ā”€ prism-dot.min.js
│   │   │   ā”œā”€ā”€ prism-ebnf.js
│   │   │   ā”œā”€ā”€ prism-ebnf.min.js
│   │   │   ā”œā”€ā”€ prism-editorconfig.js
│   │   │   ā”œā”€ā”€ prism-editorconfig.min.js
│   │   │   ā”œā”€ā”€ prism-eiffel.js
│   │   │   ā”œā”€ā”€ prism-eiffel.min.js
│   │   │   ā”œā”€ā”€ prism-ejs.js
│   │   │   ā”œā”€ā”€ prism-ejs.min.js
│   │   │   ā”œā”€ā”€ prism-elixir.js
│   │   │   ā”œā”€ā”€ prism-elixir.min.js
│   │   │   ā”œā”€ā”€ prism-elm.js
│   │   │   ā”œā”€ā”€ prism-elm.min.js
│   │   │   ā”œā”€ā”€ prism-erb.js
│   │   │   ā”œā”€ā”€ prism-erb.min.js
│   │   │   ā”œā”€ā”€ prism-erlang.js
│   │   │   ā”œā”€ā”€ prism-erlang.min.js
│   │   │   ā”œā”€ā”€ prism-etlua.js
│   │   │   ā”œā”€ā”€ prism-etlua.min.js
│   │   │   ā”œā”€ā”€ prism-excel-formula.js
│   │   │   ā”œā”€ā”€ prism-excel-formula.min.js
│   │   │   ā”œā”€ā”€ prism-factor.js
│   │   │   ā”œā”€ā”€ prism-factor.min.js
│   │   │   ā”œā”€ā”€ prism-false.js
│   │   │   ā”œā”€ā”€ prism-false.min.js
│   │   │   ā”œā”€ā”€ prism-firestore-security-rules.js
│   │   │   ā”œā”€ā”€ prism-firestore-security-rules.min.js
│   │   │   ā”œā”€ā”€ prism-flow.js
│   │   │   ā”œā”€ā”€ prism-flow.min.js
│   │   │   ā”œā”€ā”€ prism-fortran.js
│   │   │   ā”œā”€ā”€ prism-fortran.min.js
│   │   │   ā”œā”€ā”€ prism-fsharp.js
│   │   │   ā”œā”€ā”€ prism-fsharp.min.js
│   │   │   ā”œā”€ā”€ prism-ftl.js
│   │   │   ā”œā”€ā”€ prism-ftl.min.js
│   │   │   ā”œā”€ā”€ prism-gap.js
│   │   │   ā”œā”€ā”€ prism-gap.min.js
│   │   │   ā”œā”€ā”€ prism-gcode.js
│   │   │   ā”œā”€ā”€ prism-gcode.min.js
│   │   │   ā”œā”€ā”€ prism-gdscript.js
│   │   │   ā”œā”€ā”€ prism-gdscript.min.js
│   │   │   ā”œā”€ā”€ prism-gedcom.js
│   │   │   ā”œā”€ā”€ prism-gedcom.min.js
│   │   │   ā”œā”€ā”€ prism-gettext.js
│   │   │   ā”œā”€ā”€ prism-gettext.min.js
│   │   │   ā”œā”€ā”€ prism-gherkin.js
│   │   │   ā”œā”€ā”€ prism-gherkin.min.js
│   │   │   ā”œā”€ā”€ prism-git.js
│   │   │   ā”œā”€ā”€ prism-git.min.js
│   │   │   ā”œā”€ā”€ prism-glsl.js
│   │   │   ā”œā”€ā”€ prism-glsl.min.js
│   │   │   ā”œā”€ā”€ prism-gml.js
│   │   │   ā”œā”€ā”€ prism-gml.min.js
│   │   │   ā”œā”€ā”€ prism-gn.js
│   │   │   ā”œā”€ā”€ prism-gn.min.js
│   │   │   ā”œā”€ā”€ prism-go-module.js
│   │   │   ā”œā”€ā”€ prism-go-module.min.js
│   │   │   ā”œā”€ā”€ prism-go.js
│   │   │   ā”œā”€ā”€ prism-go.min.js
│   │   │   ā”œā”€ā”€ prism-gradle.js
│   │   │   ā”œā”€ā”€ prism-gradle.min.js
│   │   │   ā”œā”€ā”€ prism-graphql.js
│   │   │   ā”œā”€ā”€ prism-graphql.min.js
│   │   │   ā”œā”€ā”€ prism-groovy.js
│   │   │   ā”œā”€ā”€ prism-groovy.min.js
│   │   │   ā”œā”€ā”€ prism-haml.js
│   │   │   ā”œā”€ā”€ prism-haml.min.js
│   │   │   ā”œā”€ā”€ prism-handlebars.js
│   │   │   ā”œā”€ā”€ prism-handlebars.min.js
│   │   │   ā”œā”€ā”€ prism-haskell.js
│   │   │   ā”œā”€ā”€ prism-haskell.min.js
│   │   │   ā”œā”€ā”€ prism-haxe.js
│   │   │   ā”œā”€ā”€ prism-haxe.min.js
│   │   │   ā”œā”€ā”€ prism-hcl.js
│   │   │   ā”œā”€ā”€ prism-hcl.min.js
│   │   │   ā”œā”€ā”€ prism-hlsl.js
│   │   │   ā”œā”€ā”€ prism-hlsl.min.js
│   │   │   ā”œā”€ā”€ prism-hoon.js
│   │   │   ā”œā”€ā”€ prism-hoon.min.js
│   │   │   ā”œā”€ā”€ prism-hpkp.js
│   │   │   ā”œā”€ā”€ prism-hpkp.min.js
│   │   │   ā”œā”€ā”€ prism-hsts.js
│   │   │   ā”œā”€ā”€ prism-hsts.min.js
│   │   │   ā”œā”€ā”€ prism-http.js
│   │   │   ā”œā”€ā”€ prism-http.min.js
│   │   │   ā”œā”€ā”€ prism-ichigojam.js
│   │   │   ā”œā”€ā”€ prism-ichigojam.min.js
│   │   │   ā”œā”€ā”€ prism-icon.js
│   │   │   ā”œā”€ā”€ prism-icon.min.js
│   │   │   ā”œā”€ā”€ prism-icu-message-format.js
│   │   │   ā”œā”€ā”€ prism-icu-message-format.min.js
│   │   │   ā”œā”€ā”€ prism-idris.js
│   │   │   ā”œā”€ā”€ prism-idris.min.js
│   │   │   ā”œā”€ā”€ prism-iecst.js
│   │   │   ā”œā”€ā”€ prism-iecst.min.js
│   │   │   ā”œā”€ā”€ prism-ignore.js
│   │   │   ā”œā”€ā”€ prism-ignore.min.js
│   │   │   ā”œā”€ā”€ prism-inform7.js
│   │   │   ā”œā”€ā”€ prism-inform7.min.js
│   │   │   ā”œā”€ā”€ prism-ini.js
│   │   │   ā”œā”€ā”€ prism-ini.min.js
│   │   │   ā”œā”€ā”€ prism-io.js
│   │   │   ā”œā”€ā”€ prism-io.min.js
│   │   │   ā”œā”€ā”€ prism-j.js
│   │   │   ā”œā”€ā”€ prism-j.min.js
│   │   │   ā”œā”€ā”€ prism-java.js
│   │   │   ā”œā”€ā”€ prism-java.min.js
│   │   │   ā”œā”€ā”€ prism-javadoc.js
│   │   │   ā”œā”€ā”€ prism-javadoc.min.js
│   │   │   ā”œā”€ā”€ prism-javadoclike.js
│   │   │   ā”œā”€ā”€ prism-javadoclike.min.js
│   │   │   ā”œā”€ā”€ prism-javascript.js
│   │   │   ā”œā”€ā”€ prism-javascript.min.js
│   │   │   ā”œā”€ā”€ prism-javastacktrace.js
│   │   │   ā”œā”€ā”€ prism-javastacktrace.min.js
│   │   │   ā”œā”€ā”€ prism-jexl.js
│   │   │   ā”œā”€ā”€ prism-jexl.min.js
│   │   │   ā”œā”€ā”€ prism-jolie.js
│   │   │   ā”œā”€ā”€ prism-jolie.min.js
│   │   │   ā”œā”€ā”€ prism-jq.js
│   │   │   ā”œā”€ā”€ prism-jq.min.js
│   │   │   ā”œā”€ā”€ prism-js-extras.js
│   │   │   ā”œā”€ā”€ prism-js-extras.min.js
│   │   │   ā”œā”€ā”€ prism-js-templates.js
│   │   │   ā”œā”€ā”€ prism-js-templates.min.js
│   │   │   ā”œā”€ā”€ prism-jsdoc.js
│   │   │   ā”œā”€ā”€ prism-jsdoc.min.js
│   │   │   ā”œā”€ā”€ prism-json.js
│   │   │   ā”œā”€ā”€ prism-json.min.js
│   │   │   ā”œā”€ā”€ prism-json5.js
│   │   │   ā”œā”€ā”€ prism-json5.min.js
│   │   │   ā”œā”€ā”€ prism-jsonp.js
│   │   │   ā”œā”€ā”€ prism-jsonp.min.js
│   │   │   ā”œā”€ā”€ prism-jsstacktrace.js
│   │   │   ā”œā”€ā”€ prism-jsstacktrace.min.js
│   │   │   ā”œā”€ā”€ prism-jsx.js
│   │   │   ā”œā”€ā”€ prism-jsx.min.js
│   │   │   ā”œā”€ā”€ prism-julia.js
│   │   │   ā”œā”€ā”€ prism-julia.min.js
│   │   │   ā”œā”€ā”€ prism-keepalived.js
│   │   │   ā”œā”€ā”€ prism-keepalived.min.js
│   │   │   ā”œā”€ā”€ prism-keyman.js
│   │   │   ā”œā”€ā”€ prism-keyman.min.js
│   │   │   ā”œā”€ā”€ prism-kotlin.js
│   │   │   ā”œā”€ā”€ prism-kotlin.min.js
│   │   │   ā”œā”€ā”€ prism-kumir.js
│   │   │   ā”œā”€ā”€ prism-kumir.min.js
│   │   │   ā”œā”€ā”€ prism-kusto.js
│   │   │   ā”œā”€ā”€ prism-kusto.min.js
│   │   │   ā”œā”€ā”€ prism-latex.js
│   │   │   ā”œā”€ā”€ prism-latex.min.js
│   │   │   ā”œā”€ā”€ prism-latte.js
│   │   │   ā”œā”€ā”€ prism-latte.min.js
│   │   │   ā”œā”€ā”€ prism-less.js
│   │   │   ā”œā”€ā”€ prism-less.min.js
│   │   │   ā”œā”€ā”€ prism-lilypond.js
│   │   │   ā”œā”€ā”€ prism-lilypond.min.js
│   │   │   ā”œā”€ā”€ prism-linker-script.js
│   │   │   ā”œā”€ā”€ prism-linker-script.min.js
│   │   │   ā”œā”€ā”€ prism-liquid.js
│   │   │   ā”œā”€ā”€ prism-liquid.min.js
│   │   │   ā”œā”€ā”€ prism-lisp.js
│   │   │   ā”œā”€ā”€ prism-lisp.min.js
│   │   │   ā”œā”€ā”€ prism-livescript.js
│   │   │   ā”œā”€ā”€ prism-livescript.min.js
│   │   │   ā”œā”€ā”€ prism-llvm.js
│   │   │   ā”œā”€ā”€ prism-llvm.min.js
│   │   │   ā”œā”€ā”€ prism-log.js
│   │   │   ā”œā”€ā”€ prism-log.min.js
│   │   │   ā”œā”€ā”€ prism-lolcode.js
│   │   │   ā”œā”€ā”€ prism-lolcode.min.js
│   │   │   ā”œā”€ā”€ prism-lua.js
│   │   │   ā”œā”€ā”€ prism-lua.min.js
│   │   │   ā”œā”€ā”€ prism-magma.js
│   │   │   ā”œā”€ā”€ prism-magma.min.js
│   │   │   ā”œā”€ā”€ prism-makefile.js
│   │   │   ā”œā”€ā”€ prism-makefile.min.js
│   │   │   ā”œā”€ā”€ prism-markdown.js
│   │   │   ā”œā”€ā”€ prism-markdown.min.js
│   │   │   ā”œā”€ā”€ prism-markup-templating.js
│   │   │   ā”œā”€ā”€ prism-markup-templating.min.js
│   │   │   ā”œā”€ā”€ prism-markup.js
│   │   │   ā”œā”€ā”€ prism-markup.min.js
│   │   │   ā”œā”€ā”€ prism-mata.js
│   │   │   ā”œā”€ā”€ prism-mata.min.js
│   │   │   ā”œā”€ā”€ prism-matlab.js
│   │   │   ā”œā”€ā”€ prism-matlab.min.js
│   │   │   ā”œā”€ā”€ prism-maxscript.js
│   │   │   ā”œā”€ā”€ prism-maxscript.min.js
│   │   │   ā”œā”€ā”€ prism-mel.js
│   │   │   ā”œā”€ā”€ prism-mel.min.js
│   │   │   ā”œā”€ā”€ prism-mermaid.js
│   │   │   ā”œā”€ā”€ prism-mermaid.min.js
│   │   │   ā”œā”€ā”€ prism-metafont.js
│   │   │   ā”œā”€ā”€ prism-metafont.min.js
│   │   │   ā”œā”€ā”€ prism-mizar.js
│   │   │   ā”œā”€ā”€ prism-mizar.min.js
│   │   │   ā”œā”€ā”€ prism-mongodb.js
│   │   │   ā”œā”€ā”€ prism-mongodb.min.js
│   │   │   ā”œā”€ā”€ prism-monkey.js
│   │   │   ā”œā”€ā”€ prism-monkey.min.js
│   │   │   ā”œā”€ā”€ prism-moonscript.js
│   │   │   ā”œā”€ā”€ prism-moonscript.min.js
│   │   │   ā”œā”€ā”€ prism-n1ql.js
│   │   │   ā”œā”€ā”€ prism-n1ql.min.js
│   │   │   ā”œā”€ā”€ prism-n4js.js
│   │   │   ā”œā”€ā”€ prism-n4js.min.js
│   │   │   ā”œā”€ā”€ prism-nand2tetris-hdl.js
│   │   │   ā”œā”€ā”€ prism-nand2tetris-hdl.min.js
│   │   │   ā”œā”€ā”€ prism-naniscript.js
│   │   │   ā”œā”€ā”€ prism-naniscript.min.js
│   │   │   ā”œā”€ā”€ prism-nasm.js
│   │   │   ā”œā”€ā”€ prism-nasm.min.js
│   │   │   ā”œā”€ā”€ prism-neon.js
│   │   │   ā”œā”€ā”€ prism-neon.min.js
│   │   │   ā”œā”€ā”€ prism-nevod.js
│   │   │   ā”œā”€ā”€ prism-nevod.min.js
│   │   │   ā”œā”€ā”€ prism-nginx.js
│   │   │   ā”œā”€ā”€ prism-nginx.min.js
│   │   │   ā”œā”€ā”€ prism-nim.js
│   │   │   ā”œā”€ā”€ prism-nim.min.js
│   │   │   ā”œā”€ā”€ prism-nix.js
│   │   │   ā”œā”€ā”€ prism-nix.min.js
│   │   │   ā”œā”€ā”€ prism-nsis.js
│   │   │   ā”œā”€ā”€ prism-nsis.min.js
│   │   │   ā”œā”€ā”€ prism-objectivec.js
│   │   │   ā”œā”€ā”€ prism-objectivec.min.js
│   │   │   ā”œā”€ā”€ prism-ocaml.js
│   │   │   ā”œā”€ā”€ prism-ocaml.min.js
│   │   │   ā”œā”€ā”€ prism-odin.js
│   │   │   ā”œā”€ā”€ prism-odin.min.js
│   │   │   ā”œā”€ā”€ prism-opencl.js
│   │   │   ā”œā”€ā”€ prism-opencl.min.js
│   │   │   ā”œā”€ā”€ prism-openqasm.js
│   │   │   ā”œā”€ā”€ prism-openqasm.min.js
│   │   │   ā”œā”€ā”€ prism-oz.js
│   │   │   ā”œā”€ā”€ prism-oz.min.js
│   │   │   ā”œā”€ā”€ prism-parigp.js
│   │   │   ā”œā”€ā”€ prism-parigp.min.js
│   │   │   ā”œā”€ā”€ prism-parser.js
│   │   │   ā”œā”€ā”€ prism-parser.min.js
│   │   │   ā”œā”€ā”€ prism-pascal.js
│   │   │   ā”œā”€ā”€ prism-pascal.min.js
│   │   │   ā”œā”€ā”€ prism-pascaligo.js
│   │   │   ā”œā”€ā”€ prism-pascaligo.min.js
│   │   │   ā”œā”€ā”€ prism-pcaxis.js
│   │   │   ā”œā”€ā”€ prism-pcaxis.min.js
│   │   │   ā”œā”€ā”€ prism-peoplecode.js
│   │   │   ā”œā”€ā”€ prism-peoplecode.min.js
│   │   │   ā”œā”€ā”€ prism-perl.js
│   │   │   ā”œā”€ā”€ prism-perl.min.js
│   │   │   ā”œā”€ā”€ prism-php-extras.js
│   │   │   ā”œā”€ā”€ prism-php-extras.min.js
│   │   │   ā”œā”€ā”€ prism-php.js
│   │   │   ā”œā”€ā”€ prism-php.min.js
│   │   │   ā”œā”€ā”€ prism-phpdoc.js
│   │   │   ā”œā”€ā”€ prism-phpdoc.min.js
│   │   │   ā”œā”€ā”€ prism-plant-uml.js
│   │   │   ā”œā”€ā”€ prism-plant-uml.min.js
│   │   │   ā”œā”€ā”€ prism-plsql.js
│   │   │   ā”œā”€ā”€ prism-plsql.min.js
│   │   │   ā”œā”€ā”€ prism-powerquery.js
│   │   │   ā”œā”€ā”€ prism-powerquery.min.js
│   │   │   ā”œā”€ā”€ prism-powershell.js
│   │   │   ā”œā”€ā”€ prism-powershell.min.js
│   │   │   ā”œā”€ā”€ prism-processing.js
│   │   │   ā”œā”€ā”€ prism-processing.min.js
│   │   │   ā”œā”€ā”€ prism-prolog.js
│   │   │   ā”œā”€ā”€ prism-prolog.min.js
│   │   │   ā”œā”€ā”€ prism-promql.js
│   │   │   ā”œā”€ā”€ prism-promql.min.js
│   │   │   ā”œā”€ā”€ prism-properties.js
│   │   │   ā”œā”€ā”€ prism-properties.min.js
│   │   │   ā”œā”€ā”€ prism-protobuf.js
│   │   │   ā”œā”€ā”€ prism-protobuf.min.js
│   │   │   ā”œā”€ā”€ prism-psl.js
│   │   │   ā”œā”€ā”€ prism-psl.min.js
│   │   │   ā”œā”€ā”€ prism-pug.js
│   │   │   ā”œā”€ā”€ prism-pug.min.js
│   │   │   ā”œā”€ā”€ prism-puppet.js
│   │   │   ā”œā”€ā”€ prism-puppet.min.js
│   │   │   ā”œā”€ā”€ prism-pure.js
│   │   │   ā”œā”€ā”€ prism-pure.min.js
│   │   │   ā”œā”€ā”€ prism-purebasic.js
│   │   │   ā”œā”€ā”€ prism-purebasic.min.js
│   │   │   ā”œā”€ā”€ prism-purescript.js
│   │   │   ā”œā”€ā”€ prism-purescript.min.js
│   │   │   ā”œā”€ā”€ prism-python.js
│   │   │   ā”œā”€ā”€ prism-python.min.js
│   │   │   ā”œā”€ā”€ prism-q.js
│   │   │   ā”œā”€ā”€ prism-q.min.js
│   │   │   ā”œā”€ā”€ prism-qml.js
│   │   │   ā”œā”€ā”€ prism-qml.min.js
│   │   │   ā”œā”€ā”€ prism-qore.js
│   │   │   ā”œā”€ā”€ prism-qore.min.js
│   │   │   ā”œā”€ā”€ prism-qsharp.js
│   │   │   ā”œā”€ā”€ prism-qsharp.min.js
│   │   │   ā”œā”€ā”€ prism-r.js
│   │   │   ā”œā”€ā”€ prism-r.min.js
│   │   │   ā”œā”€ā”€ prism-racket.js
│   │   │   ā”œā”€ā”€ prism-racket.min.js
│   │   │   ā”œā”€ā”€ prism-reason.js
│   │   │   ā”œā”€ā”€ prism-reason.min.js
│   │   │   ā”œā”€ā”€ prism-regex.js
│   │   │   ā”œā”€ā”€ prism-regex.min.js
│   │   │   ā”œā”€ā”€ prism-rego.js
│   │   │   ā”œā”€ā”€ prism-rego.min.js
│   │   │   ā”œā”€ā”€ prism-renpy.js
│   │   │   ā”œā”€ā”€ prism-renpy.min.js
│   │   │   ā”œā”€ā”€ prism-rescript.js
│   │   │   ā”œā”€ā”€ prism-rescript.min.js
│   │   │   ā”œā”€ā”€ prism-rest.js
│   │   │   ā”œā”€ā”€ prism-rest.min.js
│   │   │   ā”œā”€ā”€ prism-rip.js
│   │   │   ā”œā”€ā”€ prism-rip.min.js
│   │   │   ā”œā”€ā”€ prism-roboconf.js
│   │   │   ā”œā”€ā”€ prism-roboconf.min.js
│   │   │   ā”œā”€ā”€ prism-robotframework.js
│   │   │   ā”œā”€ā”€ prism-robotframework.min.js
│   │   │   ā”œā”€ā”€ prism-ruby.js
│   │   │   ā”œā”€ā”€ prism-ruby.min.js
│   │   │   ā”œā”€ā”€ prism-rust.js
│   │   │   ā”œā”€ā”€ prism-rust.min.js
│   │   │   ā”œā”€ā”€ prism-sas.js
│   │   │   ā”œā”€ā”€ prism-sas.min.js
│   │   │   ā”œā”€ā”€ prism-sass.js
│   │   │   ā”œā”€ā”€ prism-sass.min.js
│   │   │   ā”œā”€ā”€ prism-scala.js
│   │   │   ā”œā”€ā”€ prism-scala.min.js
│   │   │   ā”œā”€ā”€ prism-scheme.js
│   │   │   ā”œā”€ā”€ prism-scheme.min.js
│   │   │   ā”œā”€ā”€ prism-scss.js
│   │   │   ā”œā”€ā”€ prism-scss.min.js
│   │   │   ā”œā”€ā”€ prism-shell-session.js
│   │   │   ā”œā”€ā”€ prism-shell-session.min.js
│   │   │   ā”œā”€ā”€ prism-smali.js
│   │   │   ā”œā”€ā”€ prism-smali.min.js
│   │   │   ā”œā”€ā”€ prism-smalltalk.js
│   │   │   ā”œā”€ā”€ prism-smalltalk.min.js
│   │   │   ā”œā”€ā”€ prism-smarty.js
│   │   │   ā”œā”€ā”€ prism-smarty.min.js
│   │   │   ā”œā”€ā”€ prism-sml.js
│   │   │   ā”œā”€ā”€ prism-sml.min.js
│   │   │   ā”œā”€ā”€ prism-solidity.js
│   │   │   ā”œā”€ā”€ prism-solidity.min.js
│   │   │   ā”œā”€ā”€ prism-solution-file.js
│   │   │   ā”œā”€ā”€ prism-solution-file.min.js
│   │   │   ā”œā”€ā”€ prism-soy.js
│   │   │   ā”œā”€ā”€ prism-soy.min.js
│   │   │   ā”œā”€ā”€ prism-sparql.js
│   │   │   ā”œā”€ā”€ prism-sparql.min.js
│   │   │   ā”œā”€ā”€ prism-splunk-spl.js
│   │   │   ā”œā”€ā”€ prism-splunk-spl.min.js
│   │   │   ā”œā”€ā”€ prism-sqf.js
│   │   │   ā”œā”€ā”€ prism-sqf.min.js
│   │   │   ā”œā”€ā”€ prism-sql.js
│   │   │   ā”œā”€ā”€ prism-sql.min.js
│   │   │   ā”œā”€ā”€ prism-squirrel.js
│   │   │   ā”œā”€ā”€ prism-squirrel.min.js
│   │   │   ā”œā”€ā”€ prism-stan.js
│   │   │   ā”œā”€ā”€ prism-stan.min.js
│   │   │   ā”œā”€ā”€ prism-stata.js
│   │   │   ā”œā”€ā”€ prism-stata.min.js
│   │   │   ā”œā”€ā”€ prism-stylus.js
│   │   │   ā”œā”€ā”€ prism-stylus.min.js
│   │   │   ā”œā”€ā”€ prism-supercollider.js
│   │   │   ā”œā”€ā”€ prism-supercollider.min.js
│   │   │   ā”œā”€ā”€ prism-swift.js
│   │   │   ā”œā”€ā”€ prism-swift.min.js
│   │   │   ā”œā”€ā”€ prism-systemd.js
│   │   │   ā”œā”€ā”€ prism-systemd.min.js
│   │   │   ā”œā”€ā”€ prism-t4-cs.js
│   │   │   ā”œā”€ā”€ prism-t4-cs.min.js
│   │   │   ā”œā”€ā”€ prism-t4-templating.js
│   │   │   ā”œā”€ā”€ prism-t4-templating.min.js
│   │   │   ā”œā”€ā”€ prism-t4-vb.js
│   │   │   ā”œā”€ā”€ prism-t4-vb.min.js
│   │   │   ā”œā”€ā”€ prism-tap.js
│   │   │   ā”œā”€ā”€ prism-tap.min.js
│   │   │   ā”œā”€ā”€ prism-tcl.js
│   │   │   ā”œā”€ā”€ prism-tcl.min.js
│   │   │   ā”œā”€ā”€ prism-textile.js
│   │   │   ā”œā”€ā”€ prism-textile.min.js
│   │   │   ā”œā”€ā”€ prism-toml.js
│   │   │   ā”œā”€ā”€ prism-toml.min.js
│   │   │   ā”œā”€ā”€ prism-tremor.js
│   │   │   ā”œā”€ā”€ prism-tremor.min.js
│   │   │   ā”œā”€ā”€ prism-tsx.js
│   │   │   ā”œā”€ā”€ prism-tsx.min.js
│   │   │   ā”œā”€ā”€ prism-tt2.js
│   │   │   ā”œā”€ā”€ prism-tt2.min.js
│   │   │   ā”œā”€ā”€ prism-turtle.js
│   │   │   ā”œā”€ā”€ prism-turtle.min.js
│   │   │   ā”œā”€ā”€ prism-twig.js
│   │   │   ā”œā”€ā”€ prism-twig.min.js
│   │   │   ā”œā”€ā”€ prism-typescript.js
│   │   │   ā”œā”€ā”€ prism-typescript.min.js
│   │   │   ā”œā”€ā”€ prism-typoscript.js
│   │   │   ā”œā”€ā”€ prism-typoscript.min.js
│   │   │   ā”œā”€ā”€ prism-unrealscript.js
│   │   │   ā”œā”€ā”€ prism-unrealscript.min.js
│   │   │   ā”œā”€ā”€ prism-uorazor.js
│   │   │   ā”œā”€ā”€ prism-uorazor.min.js
│   │   │   ā”œā”€ā”€ prism-uri.js
│   │   │   ā”œā”€ā”€ prism-uri.min.js
│   │   │   ā”œā”€ā”€ prism-v.js
│   │   │   ā”œā”€ā”€ prism-v.min.js
│   │   │   ā”œā”€ā”€ prism-vala.js
│   │   │   ā”œā”€ā”€ prism-vala.min.js
│   │   │   ā”œā”€ā”€ prism-vbnet.js
│   │   │   ā”œā”€ā”€ prism-vbnet.min.js
│   │   │   ā”œā”€ā”€ prism-velocity.js
│   │   │   ā”œā”€ā”€ prism-velocity.min.js
│   │   │   ā”œā”€ā”€ prism-verilog.js
│   │   │   ā”œā”€ā”€ prism-verilog.min.js
│   │   │   ā”œā”€ā”€ prism-vhdl.js
│   │   │   ā”œā”€ā”€ prism-vhdl.min.js
│   │   │   ā”œā”€ā”€ prism-vim.js
│   │   │   ā”œā”€ā”€ prism-vim.min.js
│   │   │   ā”œā”€ā”€ prism-visual-basic.js
│   │   │   ā”œā”€ā”€ prism-visual-basic.min.js
│   │   │   ā”œā”€ā”€ prism-warpscript.js
│   │   │   ā”œā”€ā”€ prism-warpscript.min.js
│   │   │   ā”œā”€ā”€ prism-wasm.js
│   │   │   ā”œā”€ā”€ prism-wasm.min.js
│   │   │   ā”œā”€ā”€ prism-web-idl.js
│   │   │   ā”œā”€ā”€ prism-web-idl.min.js
│   │   │   ā”œā”€ā”€ prism-wgsl.js
│   │   │   ā”œā”€ā”€ prism-wgsl.min.js
│   │   │   ā”œā”€ā”€ prism-wiki.js
│   │   │   ā”œā”€ā”€ prism-wiki.min.js
│   │   │   ā”œā”€ā”€ prism-wolfram.js
│   │   │   ā”œā”€ā”€ prism-wolfram.min.js
│   │   │   ā”œā”€ā”€ prism-wren.js
│   │   │   ā”œā”€ā”€ prism-wren.min.js
│   │   │   ā”œā”€ā”€ prism-xeora.js
│   │   │   ā”œā”€ā”€ prism-xeora.min.js
│   │   │   ā”œā”€ā”€ prism-xml-doc.js
│   │   │   ā”œā”€ā”€ prism-xml-doc.min.js
│   │   │   ā”œā”€ā”€ prism-xojo.js
│   │   │   ā”œā”€ā”€ prism-xojo.min.js
│   │   │   ā”œā”€ā”€ prism-xquery.js
│   │   │   ā”œā”€ā”€ prism-xquery.min.js
│   │   │   ā”œā”€ā”€ prism-yaml.js
│   │   │   ā”œā”€ā”€ prism-yaml.min.js
│   │   │   ā”œā”€ā”€ prism-yang.js
│   │   │   ā”œā”€ā”€ prism-yang.min.js
│   │   │   ā”œā”€ā”€ prism-zig.js
│   │   │   └── prism-zig.min.js
│   │   ā”œā”€ā”€ components.js
│   │   ā”œā”€ā”€ components.json
│   │   ā”œā”€ā”€ dependencies.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ plugins
│   │   │   ā”œā”€ā”€ autolinker
│   │   │   │   ā”œā”€ā”€ prism-autolinker.css
│   │   │   │   ā”œā”€ā”€ prism-autolinker.js
│   │   │   │   ā”œā”€ā”€ prism-autolinker.min.css
│   │   │   │   └── prism-autolinker.min.js
│   │   │   ā”œā”€ā”€ autoloader
│   │   │   │   ā”œā”€ā”€ prism-autoloader.js
│   │   │   │   └── prism-autoloader.min.js
│   │   │   ā”œā”€ā”€ command-line
│   │   │   │   ā”œā”€ā”€ prism-command-line.css
│   │   │   │   ā”œā”€ā”€ prism-command-line.js
│   │   │   │   ā”œā”€ā”€ prism-command-line.min.css
│   │   │   │   └── prism-command-line.min.js
│   │   │   ā”œā”€ā”€ copy-to-clipboard
│   │   │   │   ā”œā”€ā”€ prism-copy-to-clipboard.js
│   │   │   │   └── prism-copy-to-clipboard.min.js
│   │   │   ā”œā”€ā”€ custom-class
│   │   │   │   ā”œā”€ā”€ prism-custom-class.js
│   │   │   │   └── prism-custom-class.min.js
│   │   │   ā”œā”€ā”€ data-uri-highlight
│   │   │   │   ā”œā”€ā”€ prism-data-uri-highlight.js
│   │   │   │   └── prism-data-uri-highlight.min.js
│   │   │   ā”œā”€ā”€ diff-highlight
│   │   │   │   ā”œā”€ā”€ prism-diff-highlight.css
│   │   │   │   ā”œā”€ā”€ prism-diff-highlight.js
│   │   │   │   ā”œā”€ā”€ prism-diff-highlight.min.css
│   │   │   │   └── prism-diff-highlight.min.js
│   │   │   ā”œā”€ā”€ download-button
│   │   │   │   ā”œā”€ā”€ prism-download-button.js
│   │   │   │   └── prism-download-button.min.js
│   │   │   ā”œā”€ā”€ file-highlight
│   │   │   │   ā”œā”€ā”€ prism-file-highlight.js
│   │   │   │   └── prism-file-highlight.min.js
│   │   │   ā”œā”€ā”€ filter-highlight-all
│   │   │   │   ā”œā”€ā”€ prism-filter-highlight-all.js
│   │   │   │   └── prism-filter-highlight-all.min.js
│   │   │   ā”œā”€ā”€ highlight-keywords
│   │   │   │   ā”œā”€ā”€ prism-highlight-keywords.js
│   │   │   │   └── prism-highlight-keywords.min.js
│   │   │   ā”œā”€ā”€ inline-color
│   │   │   │   ā”œā”€ā”€ prism-inline-color.css
│   │   │   │   ā”œā”€ā”€ prism-inline-color.js
│   │   │   │   ā”œā”€ā”€ prism-inline-color.min.css
│   │   │   │   └── prism-inline-color.min.js
│   │   │   ā”œā”€ā”€ jsonp-highlight
│   │   │   │   ā”œā”€ā”€ prism-jsonp-highlight.js
│   │   │   │   └── prism-jsonp-highlight.min.js
│   │   │   ā”œā”€ā”€ keep-markup
│   │   │   │   ā”œā”€ā”€ prism-keep-markup.js
│   │   │   │   └── prism-keep-markup.min.js
│   │   │   ā”œā”€ā”€ line-highlight
│   │   │   │   ā”œā”€ā”€ prism-line-highlight.css
│   │   │   │   ā”œā”€ā”€ prism-line-highlight.js
│   │   │   │   ā”œā”€ā”€ prism-line-highlight.min.css
│   │   │   │   └── prism-line-highlight.min.js
│   │   │   ā”œā”€ā”€ line-numbers
│   │   │   │   ā”œā”€ā”€ prism-line-numbers.css
│   │   │   │   ā”œā”€ā”€ prism-line-numbers.js
│   │   │   │   ā”œā”€ā”€ prism-line-numbers.min.css
│   │   │   │   └── prism-line-numbers.min.js
│   │   │   ā”œā”€ā”€ match-braces
│   │   │   │   ā”œā”€ā”€ prism-match-braces.css
│   │   │   │   ā”œā”€ā”€ prism-match-braces.js
│   │   │   │   ā”œā”€ā”€ prism-match-braces.min.css
│   │   │   │   └── prism-match-braces.min.js
│   │   │   ā”œā”€ā”€ normalize-whitespace
│   │   │   │   ā”œā”€ā”€ prism-normalize-whitespace.js
│   │   │   │   └── prism-normalize-whitespace.min.js
│   │   │   ā”œā”€ā”€ previewers
│   │   │   │   ā”œā”€ā”€ prism-previewers.css
│   │   │   │   ā”œā”€ā”€ prism-previewers.js
│   │   │   │   ā”œā”€ā”€ prism-previewers.min.css
│   │   │   │   └── prism-previewers.min.js
│   │   │   ā”œā”€ā”€ remove-initial-line-feed
│   │   │   │   ā”œā”€ā”€ prism-remove-initial-line-feed.js
│   │   │   │   └── prism-remove-initial-line-feed.min.js
│   │   │   ā”œā”€ā”€ show-invisibles
│   │   │   │   ā”œā”€ā”€ prism-show-invisibles.css
│   │   │   │   ā”œā”€ā”€ prism-show-invisibles.js
│   │   │   │   ā”œā”€ā”€ prism-show-invisibles.min.css
│   │   │   │   └── prism-show-invisibles.min.js
│   │   │   ā”œā”€ā”€ show-language
│   │   │   │   ā”œā”€ā”€ prism-show-language.js
│   │   │   │   └── prism-show-language.min.js
│   │   │   ā”œā”€ā”€ toolbar
│   │   │   │   ā”œā”€ā”€ prism-toolbar.css
│   │   │   │   ā”œā”€ā”€ prism-toolbar.js
│   │   │   │   ā”œā”€ā”€ prism-toolbar.min.css
│   │   │   │   └── prism-toolbar.min.js
│   │   │   ā”œā”€ā”€ treeview
│   │   │   │   ā”œā”€ā”€ prism-treeview.css
│   │   │   │   ā”œā”€ā”€ prism-treeview.js
│   │   │   │   ā”œā”€ā”€ prism-treeview.min.css
│   │   │   │   └── prism-treeview.min.js
│   │   │   ā”œā”€ā”€ unescaped-markup
│   │   │   │   ā”œā”€ā”€ prism-unescaped-markup.css
│   │   │   │   ā”œā”€ā”€ prism-unescaped-markup.js
│   │   │   │   ā”œā”€ā”€ prism-unescaped-markup.min.css
│   │   │   │   └── prism-unescaped-markup.min.js
│   │   │   └── wpd
│   │   │       ā”œā”€ā”€ prism-wpd.css
│   │   │       ā”œā”€ā”€ prism-wpd.js
│   │   │       ā”œā”€ā”€ prism-wpd.min.css
│   │   │       └── prism-wpd.min.js
│   │   ā”œā”€ā”€ prism.js
│   │   └── themes
│   │       ā”œā”€ā”€ prism-coy.css
│   │       ā”œā”€ā”€ prism-coy.min.css
│   │       ā”œā”€ā”€ prism-dark.css
│   │       ā”œā”€ā”€ prism-dark.min.css
│   │       ā”œā”€ā”€ prism-funky.css
│   │       ā”œā”€ā”€ prism-funky.min.css
│   │       ā”œā”€ā”€ prism-okaidia.css
│   │       ā”œā”€ā”€ prism-okaidia.min.css
│   │       ā”œā”€ā”€ prism-solarizedlight.css
│   │       ā”œā”€ā”€ prism-solarizedlight.min.css
│   │       ā”œā”€ā”€ prism-tomorrow.css
│   │       ā”œā”€ā”€ prism-tomorrow.min.css
│   │       ā”œā”€ā”€ prism-twilight.css
│   │       ā”œā”€ā”€ prism-twilight.min.css
│   │       ā”œā”€ā”€ prism.css
│   │       └── prism.min.css
│   ā”œā”€ā”€ process-nextick-args
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license.md
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ prr
│   │   ā”œā”€ā”€ .jshintrc
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ prr.js
│   │   └── test.js
│   ā”œā”€ā”€ punycode
│   │   ā”œā”€ā”€ LICENSE-MIT.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ punycode.es6.js
│   │   └── punycode.js
│   ā”œā”€ā”€ punycode.js
│   │   ā”œā”€ā”€ LICENSE-MIT.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ punycode.es6.js
│   │   └── punycode.js
│   ā”œā”€ā”€ qs
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   └── qs.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ formats.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   ā”œā”€ā”€ stringify.js
│   │   │   └── utils.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ empty-keys-cases.js
│   │       ā”œā”€ā”€ parse.js
│   │       ā”œā”€ā”€ stringify.js
│   │       └── utils.js
│   ā”œā”€ā”€ quansync
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ macro.cjs
│   │   │   ā”œā”€ā”€ macro.d.cts
│   │   │   ā”œā”€ā”€ macro.d.mts
│   │   │   ā”œā”€ā”€ macro.d.ts
│   │   │   ā”œā”€ā”€ macro.mjs
│   │   │   ā”œā”€ā”€ types.cjs
│   │   │   ā”œā”€ā”€ types.d.cts
│   │   │   ā”œā”€ā”€ types.d.mts
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   └── types.mjs
│   │   └── package.json
│   ā”œā”€ā”€ queue
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ queue-microtask
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ range-parser
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ readable-stream
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ CONTRIBUTING.md
│   │   ā”œā”€ā”€ GOVERNANCE.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ doc
│   │   │   └── wg-meetings
│   │   │       └── 2015-01-30.md
│   │   ā”œā”€ā”€ duplex-browser.js
│   │   ā”œā”€ā”€ duplex.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ _stream_duplex.js
│   │   │   ā”œā”€ā”€ _stream_passthrough.js
│   │   │   ā”œā”€ā”€ _stream_readable.js
│   │   │   ā”œā”€ā”€ _stream_transform.js
│   │   │   ā”œā”€ā”€ _stream_writable.js
│   │   │   └── internal
│   │   │       └── streams
│   │   │           ā”œā”€ā”€ BufferList.js
│   │   │           ā”œā”€ā”€ destroy.js
│   │   │           ā”œā”€ā”€ stream-browser.js
│   │   │           └── stream.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ passthrough.js
│   │   ā”œā”€ā”€ readable-browser.js
│   │   ā”œā”€ā”€ readable.js
│   │   ā”œā”€ā”€ transform.js
│   │   ā”œā”€ā”€ writable-browser.js
│   │   └── writable.js
│   ā”œā”€ā”€ readdirp
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── picomatch
│   │   │       ā”œā”€ā”€ CHANGELOG.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ constants.js
│   │   │       │   ā”œā”€ā”€ parse.js
│   │   │       │   ā”œā”€ā”€ picomatch.js
│   │   │       │   ā”œā”€ā”€ scan.js
│   │   │       │   └── utils.js
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ resolve-from
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ restore-cursor
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ reusify
│   │   ā”œā”€ā”€ .github
│   │   │   ā”œā”€ā”€ dependabot.yml
│   │   │   └── workflows
│   │   │       └── ci.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ SECURITY.md
│   │   ā”œā”€ā”€ benchmarks
│   │   │   ā”œā”€ā”€ createNoCodeFunction.js
│   │   │   ā”œā”€ā”€ fib.js
│   │   │   └── reuseNoCodeFunction.js
│   │   ā”œā”€ā”€ eslint.config.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ reusify.d.ts
│   │   ā”œā”€ā”€ reusify.js
│   │   ā”œā”€ā”€ test.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ rfdc
│   │   ā”œā”€ā”€ .github
│   │   │   └── workflows
│   │   │       └── ci.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ default.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ index.test-d.ts
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── test
│   │       └── index.js
│   ā”œā”€ā”€ robust-predicates
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ esm
│   │   │   ā”œā”€ā”€ incircle.js
│   │   │   ā”œā”€ā”€ insphere.js
│   │   │   ā”œā”€ā”€ orient2d.js
│   │   │   ā”œā”€ā”€ orient3d.js
│   │   │   └── util.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── umd
│   │       ā”œā”€ā”€ incircle.js
│   │       ā”œā”€ā”€ incircle.min.js
│   │       ā”œā”€ā”€ insphere.js
│   │       ā”œā”€ā”€ insphere.min.js
│   │       ā”œā”€ā”€ orient2d.js
│   │       ā”œā”€ā”€ orient2d.min.js
│   │       ā”œā”€ā”€ orient3d.js
│   │       ā”œā”€ā”€ orient3d.min.js
│   │       ā”œā”€ā”€ predicates.js
│   │       └── predicates.min.js
│   ā”œā”€ā”€ rollup
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ bin
│   │   │   │   └── rollup
│   │   │   ā”œā”€ā”€ es
│   │   │   │   ā”œā”€ā”€ getLogFilter.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ parseAst.js
│   │   │   │   ā”œā”€ā”€ rollup.js
│   │   │   │   └── shared
│   │   │   │       ā”œā”€ā”€ node-entry.js
│   │   │   │       ā”œā”€ā”€ parseAst.js
│   │   │   │       └── watch.js
│   │   │   ā”œā”€ā”€ getLogFilter.d.ts
│   │   │   ā”œā”€ā”€ getLogFilter.js
│   │   │   ā”œā”€ā”€ loadConfigFile.d.ts
│   │   │   ā”œā”€ā”€ loadConfigFile.js
│   │   │   ā”œā”€ā”€ native.js
│   │   │   ā”œā”€ā”€ parseAst.d.ts
│   │   │   ā”œā”€ā”€ parseAst.js
│   │   │   ā”œā”€ā”€ rollup.d.ts
│   │   │   ā”œā”€ā”€ rollup.js
│   │   │   └── shared
│   │   │       ā”œā”€ā”€ fsevents-importer.js
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ loadConfigFile.js
│   │   │       ā”œā”€ā”€ parseAst.js
│   │   │       ā”œā”€ā”€ rollup.js
│   │   │       ā”œā”€ā”€ watch-cli.js
│   │   │       └── watch.js
│   │   └── package.json
│   ā”œā”€ā”€ roughjs
│   │   ā”œā”€ā”€ .eslintrc.json
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   ā”œā”€ā”€ canvas.d.ts
│   │   │   ā”œā”€ā”€ canvas.js
│   │   │   ā”œā”€ā”€ core.d.ts
│   │   │   ā”œā”€ā”€ core.js
│   │   │   ā”œā”€ā”€ fillers
│   │   │   │   ā”œā”€ā”€ dashed-filler.d.ts
│   │   │   │   ā”œā”€ā”€ dashed-filler.js
│   │   │   │   ā”œā”€ā”€ dot-filler.d.ts
│   │   │   │   ā”œā”€ā”€ dot-filler.js
│   │   │   │   ā”œā”€ā”€ filler-interface.d.ts
│   │   │   │   ā”œā”€ā”€ filler-interface.js
│   │   │   │   ā”œā”€ā”€ filler.d.ts
│   │   │   │   ā”œā”€ā”€ filler.js
│   │   │   │   ā”œā”€ā”€ hachure-filler.d.ts
│   │   │   │   ā”œā”€ā”€ hachure-filler.js
│   │   │   │   ā”œā”€ā”€ hatch-filler.d.ts
│   │   │   │   ā”œā”€ā”€ hatch-filler.js
│   │   │   │   ā”œā”€ā”€ scan-line-hachure.d.ts
│   │   │   │   ā”œā”€ā”€ scan-line-hachure.js
│   │   │   │   ā”œā”€ā”€ zigzag-filler.d.ts
│   │   │   │   ā”œā”€ā”€ zigzag-filler.js
│   │   │   │   ā”œā”€ā”€ zigzag-line-filler.d.ts
│   │   │   │   └── zigzag-line-filler.js
│   │   │   ā”œā”€ā”€ generator.d.ts
│   │   │   ā”œā”€ā”€ generator.js
│   │   │   ā”œā”€ā”€ geometry.d.ts
│   │   │   ā”œā”€ā”€ geometry.js
│   │   │   ā”œā”€ā”€ math.d.ts
│   │   │   ā”œā”€ā”€ math.js
│   │   │   ā”œā”€ā”€ renderer.d.ts
│   │   │   ā”œā”€ā”€ renderer.js
│   │   │   ā”œā”€ā”€ rough.d.ts
│   │   │   ā”œā”€ā”€ rough.js
│   │   │   ā”œā”€ā”€ svg.d.ts
│   │   │   └── svg.js
│   │   ā”œā”€ā”€ bundled
│   │   │   ā”œā”€ā”€ canvas.d.ts
│   │   │   ā”œā”€ā”€ core.d.ts
│   │   │   ā”œā”€ā”€ fillers
│   │   │   │   ā”œā”€ā”€ dashed-filler.d.ts
│   │   │   │   ā”œā”€ā”€ dot-filler.d.ts
│   │   │   │   ā”œā”€ā”€ filler-interface.d.ts
│   │   │   │   ā”œā”€ā”€ filler.d.ts
│   │   │   │   ā”œā”€ā”€ hachure-filler.d.ts
│   │   │   │   ā”œā”€ā”€ hatch-filler.d.ts
│   │   │   │   ā”œā”€ā”€ scan-line-hachure.d.ts
│   │   │   │   ā”œā”€ā”€ zigzag-filler.d.ts
│   │   │   │   └── zigzag-line-filler.d.ts
│   │   │   ā”œā”€ā”€ generator.d.ts
│   │   │   ā”œā”€ā”€ geometry.d.ts
│   │   │   ā”œā”€ā”€ math.d.ts
│   │   │   ā”œā”€ā”€ renderer.d.ts
│   │   │   ā”œā”€ā”€ rough.cjs.js
│   │   │   ā”œā”€ā”€ rough.d.ts
│   │   │   ā”œā”€ā”€ rough.esm.js
│   │   │   ā”œā”€ā”€ rough.js
│   │   │   └── svg.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   └── tsconfig.json
│   ā”œā”€ā”€ run-parallel
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ rw
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   └── rw
│   │   │       ā”œā”€ā”€ dash.js
│   │   │       ā”œā”€ā”€ decode.js
│   │   │       ā”œā”€ā”€ encode.js
│   │   │       ā”œā”€ā”€ read-file-sync.js
│   │   │       ā”œā”€ā”€ read-file.js
│   │   │       ā”œā”€ā”€ write-file-sync.js
│   │   │       └── write-file.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ cat-async
│   │       ā”œā”€ā”€ cat-sync
│   │       ā”œā”€ā”€ encode-object-async
│   │       ā”œā”€ā”€ encode-object-sync
│   │       ā”œā”€ā”€ encode-string-async
│   │       ā”œā”€ā”€ encode-string-sync
│   │       ā”œā”€ā”€ encoding-async
│   │       ā”œā”€ā”€ encoding-sync
│   │       ā”œā”€ā”€ run-tests
│   │       ā”œā”€ā”€ utf8.txt
│   │       ā”œā”€ā”€ wc-async
│   │       ā”œā”€ā”€ wc-sync
│   │       ā”œā”€ā”€ write-async
│   │       └── write-sync
│   ā”œā”€ā”€ safe-buffer
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ safer-buffer
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Porting-Buffer.md
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ dangerous.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ safer.js
│   │   └── tests.js
│   ā”œā”€ā”€ sax
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   └── sax.js
│   │   └── package.json
│   ā”œā”€ā”€ section-matter
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ semver
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── semver.js
│   │   ā”œā”€ā”€ classes
│   │   │   ā”œā”€ā”€ comparator.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ range.js
│   │   │   └── semver.js
│   │   ā”œā”€ā”€ functions
│   │   │   ā”œā”€ā”€ clean.js
│   │   │   ā”œā”€ā”€ cmp.js
│   │   │   ā”œā”€ā”€ coerce.js
│   │   │   ā”œā”€ā”€ compare-build.js
│   │   │   ā”œā”€ā”€ compare-loose.js
│   │   │   ā”œā”€ā”€ compare.js
│   │   │   ā”œā”€ā”€ diff.js
│   │   │   ā”œā”€ā”€ eq.js
│   │   │   ā”œā”€ā”€ gt.js
│   │   │   ā”œā”€ā”€ gte.js
│   │   │   ā”œā”€ā”€ inc.js
│   │   │   ā”œā”€ā”€ lt.js
│   │   │   ā”œā”€ā”€ lte.js
│   │   │   ā”œā”€ā”€ major.js
│   │   │   ā”œā”€ā”€ minor.js
│   │   │   ā”œā”€ā”€ neq.js
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   ā”œā”€ā”€ patch.js
│   │   │   ā”œā”€ā”€ prerelease.js
│   │   │   ā”œā”€ā”€ rcompare.js
│   │   │   ā”œā”€ā”€ rsort.js
│   │   │   ā”œā”€ā”€ satisfies.js
│   │   │   ā”œā”€ā”€ sort.js
│   │   │   └── valid.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ internal
│   │   │   ā”œā”€ā”€ constants.js
│   │   │   ā”œā”€ā”€ debug.js
│   │   │   ā”œā”€ā”€ identifiers.js
│   │   │   ā”œā”€ā”€ lrucache.js
│   │   │   ā”œā”€ā”€ parse-options.js
│   │   │   └── re.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ preload.js
│   │   ā”œā”€ā”€ range.bnf
│   │   └── ranges
│   │       ā”œā”€ā”€ gtr.js
│   │       ā”œā”€ā”€ intersects.js
│   │       ā”œā”€ā”€ ltr.js
│   │       ā”œā”€ā”€ max-satisfying.js
│   │       ā”œā”€ā”€ min-satisfying.js
│   │       ā”œā”€ā”€ min-version.js
│   │       ā”œā”€ā”€ outside.js
│   │       ā”œā”€ā”€ simplify.js
│   │       ā”œā”€ā”€ subset.js
│   │       ā”œā”€ā”€ to-comparators.js
│   │       └── valid.js
│   ā”œā”€ā”€ semver-compare
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ example
│   │   │   ā”œā”€ā”€ cmp.js
│   │   │   └── lex.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.markdown
│   │   └── test
│   │       └── cmp.js
│   ā”œā”€ā”€ send
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ setprototypeof
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       └── index.js
│   ā”œā”€ā”€ sharp
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ install
│   │   │   └── check.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ channel.js
│   │   │   ā”œā”€ā”€ colour.js
│   │   │   ā”œā”€ā”€ composite.js
│   │   │   ā”œā”€ā”€ constructor.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ input.js
│   │   │   ā”œā”€ā”€ is.js
│   │   │   ā”œā”€ā”€ libvips.js
│   │   │   ā”œā”€ā”€ operation.js
│   │   │   ā”œā”€ā”€ output.js
│   │   │   ā”œā”€ā”€ resize.js
│   │   │   ā”œā”€ā”€ sharp.js
│   │   │   └── utility.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ binding.gyp
│   │       ā”œā”€ā”€ common.cc
│   │       ā”œā”€ā”€ common.h
│   │       ā”œā”€ā”€ metadata.cc
│   │       ā”œā”€ā”€ metadata.h
│   │       ā”œā”€ā”€ operations.cc
│   │       ā”œā”€ā”€ operations.h
│   │       ā”œā”€ā”€ pipeline.cc
│   │       ā”œā”€ā”€ pipeline.h
│   │       ā”œā”€ā”€ sharp.cc
│   │       ā”œā”€ā”€ stats.cc
│   │       ā”œā”€ā”€ stats.h
│   │       ā”œā”€ā”€ utilities.cc
│   │       └── utilities.h
│   ā”œā”€ā”€ shebang-command
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ shebang-regex
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ short-hash
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       └── index.js
│   ā”œā”€ā”€ side-channel
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ side-channel-list
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ list.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ side-channel-map
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ side-channel-weakmap
│   │   ā”œā”€ā”€ .editorconfig
│   │   ā”œā”€ā”€ .eslintrc
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ .nycrc
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ test
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ā”œā”€ā”€ siginfo
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test.js
│   ā”œā”€ā”€ signal-exit
│   │   ā”œā”€ā”€ LICENSE.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ cjs
│   │   │   │   ā”œā”€ā”€ browser.d.ts
│   │   │   │   ā”œā”€ā”€ browser.d.ts.map
│   │   │   │   ā”œā”€ā”€ browser.js
│   │   │   │   ā”œā”€ā”€ browser.js.map
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ index.js.map
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ signals.d.ts
│   │   │   │   ā”œā”€ā”€ signals.d.ts.map
│   │   │   │   ā”œā”€ā”€ signals.js
│   │   │   │   └── signals.js.map
│   │   │   └── mjs
│   │   │       ā”œā”€ā”€ browser.d.ts
│   │   │       ā”œā”€ā”€ browser.d.ts.map
│   │   │       ā”œā”€ā”€ browser.js
│   │   │       ā”œā”€ā”€ browser.js.map
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.d.ts.map
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ package.json
│   │   │       ā”œā”€ā”€ signals.d.ts
│   │   │       ā”œā”€ā”€ signals.d.ts.map
│   │   │       ā”œā”€ā”€ signals.js
│   │   │       └── signals.js.map
│   │   └── package.json
│   ā”œā”€ā”€ simple-swizzle
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ sirv
│   │   ā”œā”€ā”€ build.js
│   │   ā”œā”€ā”€ build.mjs
│   │   ā”œā”€ā”€ index.d.mts
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ slash
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ slice-ansi
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ source-map
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ source-map.debug.js
│   │   │   ā”œā”€ā”€ source-map.js
│   │   │   ā”œā”€ā”€ source-map.min.js
│   │   │   └── source-map.min.js.map
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ array-set.js
│   │   │   ā”œā”€ā”€ base64-vlq.js
│   │   │   ā”œā”€ā”€ base64.js
│   │   │   ā”œā”€ā”€ binary-search.js
│   │   │   ā”œā”€ā”€ mapping-list.js
│   │   │   ā”œā”€ā”€ quick-sort.js
│   │   │   ā”œā”€ā”€ source-map-consumer.js
│   │   │   ā”œā”€ā”€ source-map-generator.js
│   │   │   ā”œā”€ā”€ source-node.js
│   │   │   └── util.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ source-map.d.ts
│   │   └── source-map.js
│   ā”œā”€ā”€ source-map-js
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ array-set.js
│   │   │   ā”œā”€ā”€ base64-vlq.js
│   │   │   ā”œā”€ā”€ base64.js
│   │   │   ā”œā”€ā”€ binary-search.js
│   │   │   ā”œā”€ā”€ mapping-list.js
│   │   │   ā”œā”€ā”€ quick-sort.js
│   │   │   ā”œā”€ā”€ source-map-consumer.d.ts
│   │   │   ā”œā”€ā”€ source-map-consumer.js
│   │   │   ā”œā”€ā”€ source-map-generator.d.ts
│   │   │   ā”œā”€ā”€ source-map-generator.js
│   │   │   ā”œā”€ā”€ source-node.d.ts
│   │   │   ā”œā”€ā”€ source-node.js
│   │   │   └── util.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ source-map.d.ts
│   │   └── source-map.js
│   ā”œā”€ā”€ source-map-support
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ browser-source-map-support.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ register-hook-require.js
│   │   ā”œā”€ā”€ register.js
│   │   └── source-map-support.js
│   ā”œā”€ā”€ speedlify-score
│   │   ā”œā”€ā”€ 11ty-demo.html
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ demo.html
│   │   ā”œā”€ā”€ package.json
│   │   └── speedlify-score.js
│   ā”œā”€ā”€ ssri
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ stack-trace
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ License
│   │   ā”œā”€ā”€ Makefile
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ lib
│   │   │   └── stack-trace.js
│   │   └── package.json
│   ā”œā”€ā”€ stackback
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ formatstack.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test.js
│   ā”œā”€ā”€ statuses
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ codes.json
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ std-env
│   │   ā”œā”€ā”€ LICENCE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ stoppable
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ lib
│   │   │   └── stoppable.js
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ string-argv
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ commonjs
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ string-width
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ string-width-cjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ ansi-regex
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   ā”œā”€ā”€ emoji-regex
│   │   │   │   ā”œā”€ā”€ LICENSE-MIT.txt
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ es2015
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   └── text.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── text.js
│   │   │   ā”œā”€ā”€ is-fullwidth-code-point
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   └── strip-ansi
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ license
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ string_decoder
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   └── string_decoder.js
│   │   └── package.json
│   ā”œā”€ā”€ strip-ansi
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ strip-ansi-cjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── ansi-regex
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ license
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ strip-bom-string
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ strip-json-comments
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ strip-literal
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ striptags
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bower.json
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ src
│   │   │   └── striptags.js
│   │   └── test
│   │       └── striptags-test.js
│   ā”œā”€ā”€ strnum
│   │   ā”œā”€ā”€ .vscode
│   │   │   └── launch.json
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ strnum.js
│   │   └── strnum.test.js
│   ā”œā”€ā”€ stylis
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ stylis.mjs
│   │   │   ā”œā”€ā”€ stylis.mjs.map
│   │   │   └── umd
│   │   │       ā”œā”€ā”€ package.json
│   │   │       ā”œā”€ā”€ stylis.js
│   │   │       └── stylis.js.map
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ Enum.js
│   │       ā”œā”€ā”€ Middleware.js
│   │       ā”œā”€ā”€ Parser.js
│   │       ā”œā”€ā”€ Prefixer.js
│   │       ā”œā”€ā”€ Serializer.js
│   │       ā”œā”€ā”€ Tokenizer.js
│   │       └── Utility.js
│   ā”œā”€ā”€ superagent
│   │   ā”œā”€ā”€ .npmignore
│   │   ā”œā”€ā”€ .travis.yml
│   │   ā”œā”€ā”€ .zuul.yml
│   │   ā”œā”€ā”€ Contributing.md
│   │   ā”œā”€ā”€ History.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ Makefile
│   │   ā”œā”€ā”€ Readme.md
│   │   ā”œā”€ā”€ component.json
│   │   ā”œā”€ā”€ docs
│   │   │   ā”œā”€ā”€ head.html
│   │   │   ā”œā”€ā”€ images
│   │   │   │   └── bg.png
│   │   │   ā”œā”€ā”€ index.md
│   │   │   ā”œā”€ā”€ style.css
│   │   │   ā”œā”€ā”€ tail.html
│   │   │   └── test.html
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ client.js
│   │   │   ā”œā”€ā”€ is-object.js
│   │   │   ā”œā”€ā”€ node
│   │   │   │   ā”œā”€ā”€ agent.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ parsers
│   │   │   │   │   ā”œā”€ā”€ image.js
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   ā”œā”€ā”€ json.js
│   │   │   │   │   ā”œā”€ā”€ text.js
│   │   │   │   │   └── urlencoded.js
│   │   │   │   ā”œā”€ā”€ part.js
│   │   │   │   ā”œā”€ā”€ response.js
│   │   │   │   └── utils.js
│   │   │   ā”œā”€ā”€ request-base.js
│   │   │   └── request.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ .bin
│   │   │   │   └── mime -> ../mime/cli.js
│   │   │   ā”œā”€ā”€ debug
│   │   │   │   ā”œā”€ā”€ .coveralls.yml
│   │   │   │   ā”œā”€ā”€ .eslintrc
│   │   │   │   ā”œā”€ā”€ .npmignore
│   │   │   │   ā”œā”€ā”€ .travis.yml
│   │   │   │   ā”œā”€ā”€ CHANGELOG.md
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ Makefile
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ component.json
│   │   │   │   ā”œā”€ā”€ karma.conf.js
│   │   │   │   ā”œā”€ā”€ node.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── src
│   │   │   │       ā”œā”€ā”€ browser.js
│   │   │   │       ā”œā”€ā”€ debug.js
│   │   │   │       ā”œā”€ā”€ index.js
│   │   │   │       ā”œā”€ā”€ inspector-log.js
│   │   │   │       └── node.js
│   │   │   ā”œā”€ā”€ mime
│   │   │   │   ā”œā”€ā”€ .npmignore
│   │   │   │   ā”œā”€ā”€ CHANGELOG.md
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ cli.js
│   │   │   │   ā”œā”€ā”€ mime.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ src
│   │   │   │   │   ā”œā”€ā”€ build.js
│   │   │   │   │   └── test.js
│   │   │   │   └── types.json
│   │   │   └── ms
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ license.md
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   ā”œā”€ā”€ package.json
│   │   └── superagent.js
│   ā”œā”€ā”€ supports-color
│   │   ā”œā”€ā”€ browser.d.ts
│   │   ā”œā”€ā”€ browser.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ terser
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ PATRONS.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   ā”œā”€ā”€ package.json
│   │   │   ā”œā”€ā”€ terser
│   │   │   └── uglifyjs
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ .gitkeep
│   │   │   ā”œā”€ā”€ bundle.min.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ ast.js
│   │   │   ā”œā”€ā”€ cli.js
│   │   │   ā”œā”€ā”€ compress
│   │   │   │   ā”œā”€ā”€ common.js
│   │   │   │   ā”œā”€ā”€ compressor-flags.js
│   │   │   │   ā”œā”€ā”€ drop-side-effect-free.js
│   │   │   │   ā”œā”€ā”€ drop-unused.js
│   │   │   │   ā”œā”€ā”€ evaluate.js
│   │   │   │   ā”œā”€ā”€ global-defs.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ inference.js
│   │   │   │   ā”œā”€ā”€ inline.js
│   │   │   │   ā”œā”€ā”€ native-objects.js
│   │   │   │   ā”œā”€ā”€ reduce-vars.js
│   │   │   │   └── tighten-body.js
│   │   │   ā”œā”€ā”€ equivalent-to.js
│   │   │   ā”œā”€ā”€ minify.js
│   │   │   ā”œā”€ā”€ mozilla-ast.js
│   │   │   ā”œā”€ā”€ output.js
│   │   │   ā”œā”€ā”€ parse.js
│   │   │   ā”œā”€ā”€ propmangle.js
│   │   │   ā”œā”€ā”€ scope.js
│   │   │   ā”œā”€ā”€ size.js
│   │   │   ā”œā”€ā”€ sourcemap.js
│   │   │   ā”œā”€ā”€ transform.js
│   │   │   └── utils
│   │   │       ā”œā”€ā”€ first_in_statement.js
│   │   │       └── index.js
│   │   ā”œā”€ā”€ main.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   └── commander
│   │   │       ā”œā”€ā”€ CHANGELOG.md
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ Readme.md
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── typings
│   │   │           └── index.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   └── tools
│   │       ā”œā”€ā”€ domprops.js
│   │       ā”œā”€ā”€ exit.cjs
│   │       ā”œā”€ā”€ props.html
│   │       └── terser.d.ts
│   ā”œā”€ā”€ test-exclude
│   │   ā”œā”€ā”€ LICENSE.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ is-outside-dir-posix.js
│   │   ā”œā”€ā”€ is-outside-dir-win32.js
│   │   ā”œā”€ā”€ is-outside-dir.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ brace-expansion
│   │   │   │   ā”œā”€ā”€ .github
│   │   │   │   │   └── FUNDING.yml
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   └── package.json
│   │   │   └── minimatch
│   │   │       ā”œā”€ā”€ LICENSE
│   │   │       ā”œā”€ā”€ README.md
│   │   │       ā”œā”€ā”€ dist
│   │   │       │   ā”œā”€ā”€ commonjs
│   │   │       │   │   ā”œā”€ā”€ assert-valid-pattern.d.ts
│   │   │       │   │   ā”œā”€ā”€ assert-valid-pattern.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ assert-valid-pattern.js
│   │   │       │   │   ā”œā”€ā”€ assert-valid-pattern.js.map
│   │   │       │   │   ā”œā”€ā”€ ast.d.ts
│   │   │       │   │   ā”œā”€ā”€ ast.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ ast.js
│   │   │       │   │   ā”œā”€ā”€ ast.js.map
│   │   │       │   │   ā”œā”€ā”€ brace-expressions.d.ts
│   │   │       │   │   ā”œā”€ā”€ brace-expressions.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ brace-expressions.js
│   │   │       │   │   ā”œā”€ā”€ brace-expressions.js.map
│   │   │       │   │   ā”œā”€ā”€ escape.d.ts
│   │   │       │   │   ā”œā”€ā”€ escape.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ escape.js
│   │   │       │   │   ā”œā”€ā”€ escape.js.map
│   │   │       │   │   ā”œā”€ā”€ index.d.ts
│   │   │       │   │   ā”œā”€ā”€ index.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ index.js
│   │   │       │   │   ā”œā”€ā”€ index.js.map
│   │   │       │   │   ā”œā”€ā”€ package.json
│   │   │       │   │   ā”œā”€ā”€ unescape.d.ts
│   │   │       │   │   ā”œā”€ā”€ unescape.d.ts.map
│   │   │       │   │   ā”œā”€ā”€ unescape.js
│   │   │       │   │   └── unescape.js.map
│   │   │       │   └── esm
│   │   │       │       ā”œā”€ā”€ assert-valid-pattern.d.ts
│   │   │       │       ā”œā”€ā”€ assert-valid-pattern.d.ts.map
│   │   │       │       ā”œā”€ā”€ assert-valid-pattern.js
│   │   │       │       ā”œā”€ā”€ assert-valid-pattern.js.map
│   │   │       │       ā”œā”€ā”€ ast.d.ts
│   │   │       │       ā”œā”€ā”€ ast.d.ts.map
│   │   │       │       ā”œā”€ā”€ ast.js
│   │   │       │       ā”œā”€ā”€ ast.js.map
│   │   │       │       ā”œā”€ā”€ brace-expressions.d.ts
│   │   │       │       ā”œā”€ā”€ brace-expressions.d.ts.map
│   │   │       │       ā”œā”€ā”€ brace-expressions.js
│   │   │       │       ā”œā”€ā”€ brace-expressions.js.map
│   │   │       │       ā”œā”€ā”€ escape.d.ts
│   │   │       │       ā”œā”€ā”€ escape.d.ts.map
│   │   │       │       ā”œā”€ā”€ escape.js
│   │   │       │       ā”œā”€ā”€ escape.js.map
│   │   │       │       ā”œā”€ā”€ index.d.ts
│   │   │       │       ā”œā”€ā”€ index.d.ts.map
│   │   │       │       ā”œā”€ā”€ index.js
│   │   │       │       ā”œā”€ā”€ index.js.map
│   │   │       │       ā”œā”€ā”€ package.json
│   │   │       │       ā”œā”€ā”€ unescape.d.ts
│   │   │       │       ā”œā”€ā”€ unescape.d.ts.map
│   │   │       │       ā”œā”€ā”€ unescape.js
│   │   │       │       └── unescape.js.map
│   │   │       └── package.json
│   │   └── package.json
│   ā”œā”€ā”€ tinybench
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ tinyexec
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ main.cjs
│   │   │   ā”œā”€ā”€ main.d.cts
│   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   └── main.js
│   │   └── package.json
│   ā”œā”€ā”€ tinyglobby
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ tinypool
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ common-Qw-RoVFD.js
│   │   │   ā”œā”€ā”€ entry
│   │   │   │   ā”œā”€ā”€ process.d.ts
│   │   │   │   ā”œā”€ā”€ process.js
│   │   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   │   ā”œā”€ā”€ utils.js
│   │   │   │   ā”œā”€ā”€ worker.d.ts
│   │   │   │   └── worker.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ utils-B--2TaWv.js
│   │   │   └── utils-De75vAgL.js
│   │   └── package.json
│   ā”œā”€ā”€ tinyrainbow
│   │   ā”œā”€ā”€ LICENCE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ browser.d.ts
│   │   │   ā”œā”€ā”€ browser.js
│   │   │   ā”œā”€ā”€ chunk-BVHSVHOK.js
│   │   │   ā”œā”€ā”€ index-8b61d5bc.d.ts
│   │   │   ā”œā”€ā”€ node.d.ts
│   │   │   └── node.js
│   │   └── package.json
│   ā”œā”€ā”€ tinyspy
│   │   ā”œā”€ā”€ LICENCE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.js
│   │   └── package.json
│   ā”œā”€ā”€ to-regex-range
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ toidentifier
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ totalist
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.mjs
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ readme.md
│   │   └── sync
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ index.js
│   │       └── index.mjs
│   ā”œā”€ā”€ ts-dedent
│   │   ā”œā”€ā”€ HISTORY.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.js.map
│   │   ā”œā”€ā”€ esm
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── index.js.map
│   │   ā”œā”€ā”€ package.json
│   │   └── src
│   │       ā”œā”€ā”€ __tests__
│   │       │   ā”œā”€ā”€ index.spec.ts
│   │       │   └── issue-21.spec.ts
│   │       └── index.ts
│   ā”œā”€ā”€ turndown
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   └── turndown.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ turndown.browser.cjs.js
│   │   │   ā”œā”€ā”€ turndown.browser.es.js
│   │   │   ā”œā”€ā”€ turndown.browser.umd.js
│   │   │   ā”œā”€ā”€ turndown.cjs.js
│   │   │   ā”œā”€ā”€ turndown.es.js
│   │   │   └── turndown.umd.js
│   │   └── package.json
│   ā”œā”€ā”€ type-check
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ check.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── parse-type.js
│   │   └── package.json
│   ā”œā”€ā”€ uc.micro
│   │   ā”œā”€ā”€ LICENSE.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ build
│   │   │   └── index.cjs.js
│   │   ā”œā”€ā”€ categories
│   │   │   ā”œā”€ā”€ Cc
│   │   │   │   └── regex.mjs
│   │   │   ā”œā”€ā”€ Cf
│   │   │   │   └── regex.mjs
│   │   │   ā”œā”€ā”€ P
│   │   │   │   └── regex.mjs
│   │   │   ā”œā”€ā”€ S
│   │   │   │   └── regex.mjs
│   │   │   └── Z
│   │   │       └── regex.mjs
│   │   ā”œā”€ā”€ index.mjs
│   │   ā”œā”€ā”€ package.json
│   │   └── properties
│   │       └── Any
│   │           └── regex.mjs
│   ā”œā”€ā”€ ufo
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d.cts
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   └── index.mjs
│   │   └── package.json
│   ā”œā”€ā”€ undici
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ docs
│   │   │   └── docs
│   │   │       ā”œā”€ā”€ api
│   │   │       │   ā”œā”€ā”€ Agent.md
│   │   │       │   ā”œā”€ā”€ BalancedPool.md
│   │   │       │   ā”œā”€ā”€ CacheStorage.md
│   │   │       │   ā”œā”€ā”€ Client.md
│   │   │       │   ā”œā”€ā”€ Connector.md
│   │   │       │   ā”œā”€ā”€ ContentType.md
│   │   │       │   ā”œā”€ā”€ Cookies.md
│   │   │       │   ā”œā”€ā”€ Debug.md
│   │   │       │   ā”œā”€ā”€ DiagnosticsChannel.md
│   │   │       │   ā”œā”€ā”€ DispatchInterceptor.md
│   │   │       │   ā”œā”€ā”€ Dispatcher.md
│   │   │       │   ā”œā”€ā”€ EnvHttpProxyAgent.md
│   │   │       │   ā”œā”€ā”€ Errors.md
│   │   │       │   ā”œā”€ā”€ EventSource.md
│   │   │       │   ā”œā”€ā”€ Fetch.md
│   │   │       │   ā”œā”€ā”€ MockAgent.md
│   │   │       │   ā”œā”€ā”€ MockClient.md
│   │   │       │   ā”œā”€ā”€ MockErrors.md
│   │   │       │   ā”œā”€ā”€ MockPool.md
│   │   │       │   ā”œā”€ā”€ Pool.md
│   │   │       │   ā”œā”€ā”€ PoolStats.md
│   │   │       │   ā”œā”€ā”€ ProxyAgent.md
│   │   │       │   ā”œā”€ā”€ RedirectHandler.md
│   │   │       │   ā”œā”€ā”€ RetryAgent.md
│   │   │       │   ā”œā”€ā”€ RetryHandler.md
│   │   │       │   ā”œā”€ā”€ Util.md
│   │   │       │   ā”œā”€ā”€ WebSocket.md
│   │   │       │   └── api-lifecycle.md
│   │   │       └── best-practices
│   │   │           ā”œā”€ā”€ client-certificate.md
│   │   │           ā”œā”€ā”€ mocking-request.md
│   │   │           ā”œā”€ā”€ proxy.md
│   │   │           └── writing-tests.md
│   │   ā”œā”€ā”€ index-fetch.js
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ api
│   │   │   │   ā”œā”€ā”€ abort-signal.js
│   │   │   │   ā”œā”€ā”€ api-connect.js
│   │   │   │   ā”œā”€ā”€ api-pipeline.js
│   │   │   │   ā”œā”€ā”€ api-request.js
│   │   │   │   ā”œā”€ā”€ api-stream.js
│   │   │   │   ā”œā”€ā”€ api-upgrade.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ readable.js
│   │   │   │   └── util.js
│   │   │   ā”œā”€ā”€ core
│   │   │   │   ā”œā”€ā”€ connect.js
│   │   │   │   ā”œā”€ā”€ constants.js
│   │   │   │   ā”œā”€ā”€ diagnostics.js
│   │   │   │   ā”œā”€ā”€ errors.js
│   │   │   │   ā”œā”€ā”€ request.js
│   │   │   │   ā”œā”€ā”€ symbols.js
│   │   │   │   ā”œā”€ā”€ tree.js
│   │   │   │   └── util.js
│   │   │   ā”œā”€ā”€ dispatcher
│   │   │   │   ā”œā”€ā”€ agent.js
│   │   │   │   ā”œā”€ā”€ balanced-pool.js
│   │   │   │   ā”œā”€ā”€ client-h1.js
│   │   │   │   ā”œā”€ā”€ client-h2.js
│   │   │   │   ā”œā”€ā”€ client.js
│   │   │   │   ā”œā”€ā”€ dispatcher-base.js
│   │   │   │   ā”œā”€ā”€ dispatcher.js
│   │   │   │   ā”œā”€ā”€ env-http-proxy-agent.js
│   │   │   │   ā”œā”€ā”€ fixed-queue.js
│   │   │   │   ā”œā”€ā”€ pool-base.js
│   │   │   │   ā”œā”€ā”€ pool-stats.js
│   │   │   │   ā”œā”€ā”€ pool.js
│   │   │   │   ā”œā”€ā”€ proxy-agent.js
│   │   │   │   └── retry-agent.js
│   │   │   ā”œā”€ā”€ global.js
│   │   │   ā”œā”€ā”€ handler
│   │   │   │   ā”œā”€ā”€ decorator-handler.js
│   │   │   │   ā”œā”€ā”€ redirect-handler.js
│   │   │   │   └── retry-handler.js
│   │   │   ā”œā”€ā”€ interceptor
│   │   │   │   ā”œā”€ā”€ dns.js
│   │   │   │   ā”œā”€ā”€ dump.js
│   │   │   │   ā”œā”€ā”€ redirect-interceptor.js
│   │   │   │   ā”œā”€ā”€ redirect.js
│   │   │   │   ā”œā”€ā”€ response-error.js
│   │   │   │   └── retry.js
│   │   │   ā”œā”€ā”€ llhttp
│   │   │   │   ā”œā”€ā”€ .gitkeep
│   │   │   │   ā”œā”€ā”€ constants.js
│   │   │   │   ā”œā”€ā”€ llhttp-wasm.js
│   │   │   │   ā”œā”€ā”€ llhttp_simd-wasm.js
│   │   │   │   └── utils.js
│   │   │   ā”œā”€ā”€ mock
│   │   │   │   ā”œā”€ā”€ mock-agent.js
│   │   │   │   ā”œā”€ā”€ mock-client.js
│   │   │   │   ā”œā”€ā”€ mock-errors.js
│   │   │   │   ā”œā”€ā”€ mock-interceptor.js
│   │   │   │   ā”œā”€ā”€ mock-pool.js
│   │   │   │   ā”œā”€ā”€ mock-symbols.js
│   │   │   │   ā”œā”€ā”€ mock-utils.js
│   │   │   │   ā”œā”€ā”€ pending-interceptors-formatter.js
│   │   │   │   └── pluralizer.js
│   │   │   ā”œā”€ā”€ util
│   │   │   │   └── timers.js
│   │   │   └── web
│   │   │       ā”œā”€ā”€ cache
│   │   │       │   ā”œā”€ā”€ cache.js
│   │   │       │   ā”œā”€ā”€ cachestorage.js
│   │   │       │   ā”œā”€ā”€ symbols.js
│   │   │       │   └── util.js
│   │   │       ā”œā”€ā”€ cookies
│   │   │       │   ā”œā”€ā”€ constants.js
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   ā”œā”€ā”€ parse.js
│   │   │       │   └── util.js
│   │   │       ā”œā”€ā”€ eventsource
│   │   │       │   ā”œā”€ā”€ eventsource-stream.js
│   │   │       │   ā”œā”€ā”€ eventsource.js
│   │   │       │   └── util.js
│   │   │       ā”œā”€ā”€ fetch
│   │   │       │   ā”œā”€ā”€ LICENSE
│   │   │       │   ā”œā”€ā”€ body.js
│   │   │       │   ā”œā”€ā”€ constants.js
│   │   │       │   ā”œā”€ā”€ data-url.js
│   │   │       │   ā”œā”€ā”€ dispatcher-weakref.js
│   │   │       │   ā”œā”€ā”€ file.js
│   │   │       │   ā”œā”€ā”€ formdata-parser.js
│   │   │       │   ā”œā”€ā”€ formdata.js
│   │   │       │   ā”œā”€ā”€ global.js
│   │   │       │   ā”œā”€ā”€ headers.js
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   ā”œā”€ā”€ request.js
│   │   │       │   ā”œā”€ā”€ response.js
│   │   │       │   ā”œā”€ā”€ symbols.js
│   │   │       │   ā”œā”€ā”€ util.js
│   │   │       │   └── webidl.js
│   │   │       ā”œā”€ā”€ fileapi
│   │   │       │   ā”œā”€ā”€ encoding.js
│   │   │       │   ā”œā”€ā”€ filereader.js
│   │   │       │   ā”œā”€ā”€ progressevent.js
│   │   │       │   ā”œā”€ā”€ symbols.js
│   │   │       │   └── util.js
│   │   │       └── websocket
│   │   │           ā”œā”€ā”€ connection.js
│   │   │           ā”œā”€ā”€ constants.js
│   │   │           ā”œā”€ā”€ events.js
│   │   │           ā”œā”€ā”€ frame.js
│   │   │           ā”œā”€ā”€ permessage-deflate.js
│   │   │           ā”œā”€ā”€ receiver.js
│   │   │           ā”œā”€ā”€ sender.js
│   │   │           ā”œā”€ā”€ symbols.js
│   │   │           ā”œā”€ā”€ util.js
│   │   │           └── websocket.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ scripts
│   │   │   └── strip-comments.js
│   │   └── types
│   │       ā”œā”€ā”€ README.md
│   │       ā”œā”€ā”€ agent.d.ts
│   │       ā”œā”€ā”€ api.d.ts
│   │       ā”œā”€ā”€ balanced-pool.d.ts
│   │       ā”œā”€ā”€ cache.d.ts
│   │       ā”œā”€ā”€ client.d.ts
│   │       ā”œā”€ā”€ connector.d.ts
│   │       ā”œā”€ā”€ content-type.d.ts
│   │       ā”œā”€ā”€ cookies.d.ts
│   │       ā”œā”€ā”€ diagnostics-channel.d.ts
│   │       ā”œā”€ā”€ dispatcher.d.ts
│   │       ā”œā”€ā”€ env-http-proxy-agent.d.ts
│   │       ā”œā”€ā”€ errors.d.ts
│   │       ā”œā”€ā”€ eventsource.d.ts
│   │       ā”œā”€ā”€ fetch.d.ts
│   │       ā”œā”€ā”€ file.d.ts
│   │       ā”œā”€ā”€ filereader.d.ts
│   │       ā”œā”€ā”€ formdata.d.ts
│   │       ā”œā”€ā”€ global-dispatcher.d.ts
│   │       ā”œā”€ā”€ global-origin.d.ts
│   │       ā”œā”€ā”€ handlers.d.ts
│   │       ā”œā”€ā”€ header.d.ts
│   │       ā”œā”€ā”€ index.d.ts
│   │       ā”œā”€ā”€ interceptors.d.ts
│   │       ā”œā”€ā”€ mock-agent.d.ts
│   │       ā”œā”€ā”€ mock-client.d.ts
│   │       ā”œā”€ā”€ mock-errors.d.ts
│   │       ā”œā”€ā”€ mock-interceptor.d.ts
│   │       ā”œā”€ā”€ mock-pool.d.ts
│   │       ā”œā”€ā”€ patch.d.ts
│   │       ā”œā”€ā”€ pool-stats.d.ts
│   │       ā”œā”€ā”€ pool.d.ts
│   │       ā”œā”€ā”€ proxy-agent.d.ts
│   │       ā”œā”€ā”€ readable.d.ts
│   │       ā”œā”€ā”€ retry-agent.d.ts
│   │       ā”œā”€ā”€ retry-handler.d.ts
│   │       ā”œā”€ā”€ util.d.ts
│   │       ā”œā”€ā”€ webidl.d.ts
│   │       └── websocket.d.ts
│   ā”œā”€ā”€ unenv
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.mts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   └── runtime
│   │   │       ā”œā”€ā”€ _internal
│   │   │       │   ā”œā”€ā”€ types.d.mts
│   │   │       │   ā”œā”€ā”€ types.mjs
│   │   │       │   ā”œā”€ā”€ utils.d.mts
│   │   │       │   └── utils.mjs
│   │   │       ā”œā”€ā”€ mock
│   │   │       │   ā”œā”€ā”€ empty.d.mts
│   │   │       │   ā”œā”€ā”€ empty.mjs
│   │   │       │   ā”œā”€ā”€ noop.d.mts
│   │   │       │   ā”œā”€ā”€ noop.mjs
│   │   │       │   ā”œā”€ā”€ proxy.d.mts
│   │   │       │   └── proxy.mjs
│   │   │       ā”œā”€ā”€ node
│   │   │       │   ā”œā”€ā”€ assert
│   │   │       │   │   ā”œā”€ā”€ strict.d.mts
│   │   │       │   │   └── strict.mjs
│   │   │       │   ā”œā”€ā”€ assert.d.mts
│   │   │       │   ā”œā”€ā”€ assert.mjs
│   │   │       │   ā”œā”€ā”€ async_hooks.d.mts
│   │   │       │   ā”œā”€ā”€ async_hooks.mjs
│   │   │       │   ā”œā”€ā”€ buffer.d.mts
│   │   │       │   ā”œā”€ā”€ buffer.mjs
│   │   │       │   ā”œā”€ā”€ child_process.d.mts
│   │   │       │   ā”œā”€ā”€ child_process.mjs
│   │   │       │   ā”œā”€ā”€ cluster.d.mts
│   │   │       │   ā”œā”€ā”€ cluster.mjs
│   │   │       │   ā”œā”€ā”€ console.d.mts
│   │   │       │   ā”œā”€ā”€ console.mjs
│   │   │       │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   ā”œā”€ā”€ constants.mjs
│   │   │       │   ā”œā”€ā”€ crypto.d.mts
│   │   │       │   ā”œā”€ā”€ crypto.mjs
│   │   │       │   ā”œā”€ā”€ dgram.d.mts
│   │   │       │   ā”œā”€ā”€ dgram.mjs
│   │   │       │   ā”œā”€ā”€ diagnostics_channel.d.mts
│   │   │       │   ā”œā”€ā”€ diagnostics_channel.mjs
│   │   │       │   ā”œā”€ā”€ dns
│   │   │       │   │   ā”œā”€ā”€ promises.d.mts
│   │   │       │   │   └── promises.mjs
│   │   │       │   ā”œā”€ā”€ dns.d.mts
│   │   │       │   ā”œā”€ā”€ dns.mjs
│   │   │       │   ā”œā”€ā”€ domain.d.mts
│   │   │       │   ā”œā”€ā”€ domain.mjs
│   │   │       │   ā”œā”€ā”€ events.d.mts
│   │   │       │   ā”œā”€ā”€ events.mjs
│   │   │       │   ā”œā”€ā”€ fs
│   │   │       │   │   ā”œā”€ā”€ promises.d.mts
│   │   │       │   │   └── promises.mjs
│   │   │       │   ā”œā”€ā”€ fs.d.mts
│   │   │       │   ā”œā”€ā”€ fs.mjs
│   │   │       │   ā”œā”€ā”€ http.d.mts
│   │   │       │   ā”œā”€ā”€ http.mjs
│   │   │       │   ā”œā”€ā”€ http2.d.mts
│   │   │       │   ā”œā”€ā”€ http2.mjs
│   │   │       │   ā”œā”€ā”€ https.d.mts
│   │   │       │   ā”œā”€ā”€ https.mjs
│   │   │       │   ā”œā”€ā”€ inspector
│   │   │       │   │   ā”œā”€ā”€ promises.d.mts
│   │   │       │   │   └── promises.mjs
│   │   │       │   ā”œā”€ā”€ inspector.d.mts
│   │   │       │   ā”œā”€ā”€ inspector.mjs
│   │   │       │   ā”œā”€ā”€ internal
│   │   │       │   │   ā”œā”€ā”€ async_hooks
│   │   │       │   │   │   ā”œā”€ā”€ async-hook.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ async-hook.mjs
│   │   │       │   │   │   ā”œā”€ā”€ async-local-storage.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ async-local-storage.mjs
│   │   │       │   │   │   ā”œā”€ā”€ async-resource.d.mts
│   │   │       │   │   │   └── async-resource.mjs
│   │   │       │   │   ā”œā”€ā”€ buffer
│   │   │       │   │   │   ā”œā”€ā”€ base64.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ base64.mjs
│   │   │       │   │   │   ā”œā”€ā”€ buffer.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ buffer.mjs
│   │   │       │   │   │   ā”œā”€ā”€ file.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ file.mjs
│   │   │       │   │   │   ā”œā”€ā”€ ieee754.d.mts
│   │   │       │   │   │   └── ieee754.mjs
│   │   │       │   │   ā”œā”€ā”€ crypto
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ constants.mjs
│   │   │       │   │   │   ā”œā”€ā”€ node.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ node.mjs
│   │   │       │   │   │   ā”œā”€ā”€ web.d.mts
│   │   │       │   │   │   └── web.mjs
│   │   │       │   │   ā”œā”€ā”€ dgram
│   │   │       │   │   │   ā”œā”€ā”€ socket.d.mts
│   │   │       │   │   │   └── socket.mjs
│   │   │       │   │   ā”œā”€ā”€ diagnostics_channel
│   │   │       │   │   │   ā”œā”€ā”€ channel.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ channel.mjs
│   │   │       │   │   │   ā”œā”€ā”€ tracing-channel.d.mts
│   │   │       │   │   │   └── tracing-channel.mjs
│   │   │       │   │   ā”œā”€ā”€ dns
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   └── constants.mjs
│   │   │       │   │   ā”œā”€ā”€ domain
│   │   │       │   │   │   ā”œā”€ā”€ domain.d.mts
│   │   │       │   │   │   └── domain.mjs
│   │   │       │   │   ā”œā”€ā”€ events
│   │   │       │   │   │   ā”œā”€ā”€ events.d.mts
│   │   │       │   │   │   └── events.mjs
│   │   │       │   │   ā”œā”€ā”€ fs
│   │   │       │   │   │   ā”œā”€ā”€ classes.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ classes.mjs
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ constants.mjs
│   │   │       │   │   │   ā”œā”€ā”€ fs.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ fs.mjs
│   │   │       │   │   │   ā”œā”€ā”€ promises.d.mts
│   │   │       │   │   │   └── promises.mjs
│   │   │       │   │   ā”œā”€ā”€ http
│   │   │       │   │   │   ā”œā”€ā”€ agent.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ agent.mjs
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ constants.mjs
│   │   │       │   │   │   ā”œā”€ā”€ request.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ request.mjs
│   │   │       │   │   │   ā”œā”€ā”€ response.d.mts
│   │   │       │   │   │   └── response.mjs
│   │   │       │   │   ā”œā”€ā”€ http2
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   └── constants.mjs
│   │   │       │   │   ā”œā”€ā”€ net
│   │   │       │   │   │   ā”œā”€ā”€ server.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ server.mjs
│   │   │       │   │   │   ā”œā”€ā”€ socket.d.mts
│   │   │       │   │   │   └── socket.mjs
│   │   │       │   │   ā”œā”€ā”€ os
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   └── constants.mjs
│   │   │       │   │   ā”œā”€ā”€ perf_hooks
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ constants.mjs
│   │   │       │   │   │   ā”œā”€ā”€ histogram.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ histogram.mjs
│   │   │       │   │   │   ā”œā”€ā”€ performance.d.mts
│   │   │       │   │   │   └── performance.mjs
│   │   │       │   │   ā”œā”€ā”€ process
│   │   │       │   │   │   ā”œā”€ā”€ env.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ env.mjs
│   │   │       │   │   │   ā”œā”€ā”€ hrtime.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ hrtime.mjs
│   │   │       │   │   │   ā”œā”€ā”€ nexttick.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ nexttick.mjs
│   │   │       │   │   │   ā”œā”€ā”€ node-version.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ node-version.mjs
│   │   │       │   │   │   ā”œā”€ā”€ process.d.mts
│   │   │       │   │   │   └── process.mjs
│   │   │       │   │   ā”œā”€ā”€ punycode
│   │   │       │   │   │   ā”œā”€ā”€ punycode.d.mts
│   │   │       │   │   │   └── punycode.mjs
│   │   │       │   │   ā”œā”€ā”€ querystring
│   │   │       │   │   │   ā”œā”€ā”€ querystring.d.mts
│   │   │       │   │   │   └── querystring.mjs
│   │   │       │   │   ā”œā”€ā”€ readline
│   │   │       │   │   │   ā”œā”€ā”€ interface.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ interface.mjs
│   │   │       │   │   │   └── promises
│   │   │       │   │   │       ā”œā”€ā”€ interface.d.mts
│   │   │       │   │   │       ā”œā”€ā”€ interface.mjs
│   │   │       │   │   │       ā”œā”€ā”€ readline.d.mts
│   │   │       │   │   │       └── readline.mjs
│   │   │       │   │   ā”œā”€ā”€ stream
│   │   │       │   │   │   ā”œā”€ā”€ duplex.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ duplex.mjs
│   │   │       │   │   │   ā”œā”€ā”€ readable.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ readable.mjs
│   │   │       │   │   │   ā”œā”€ā”€ transform.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ transform.mjs
│   │   │       │   │   │   ā”œā”€ā”€ writable.d.mts
│   │   │       │   │   │   └── writable.mjs
│   │   │       │   │   ā”œā”€ā”€ timers
│   │   │       │   │   │   ā”œā”€ā”€ immediate.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ immediate.mjs
│   │   │       │   │   │   ā”œā”€ā”€ scheduler.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ scheduler.mjs
│   │   │       │   │   │   ā”œā”€ā”€ set-immediate.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ set-immediate.mjs
│   │   │       │   │   │   ā”œā”€ā”€ set-interval.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ set-interval.mjs
│   │   │       │   │   │   ā”œā”€ā”€ set-timeout.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ set-timeout.mjs
│   │   │       │   │   │   ā”œā”€ā”€ timeout.d.mts
│   │   │       │   │   │   └── timeout.mjs
│   │   │       │   │   ā”œā”€ā”€ tls
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ constants.mjs
│   │   │       │   │   │   ā”œā”€ā”€ secure-context.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ secure-context.mjs
│   │   │       │   │   │   ā”œā”€ā”€ server.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ server.mjs
│   │   │       │   │   │   ā”œā”€ā”€ tls-socket.d.mts
│   │   │       │   │   │   └── tls-socket.mjs
│   │   │       │   │   ā”œā”€ā”€ trace_events
│   │   │       │   │   │   ā”œā”€ā”€ tracing.d.mts
│   │   │       │   │   │   └── tracing.mjs
│   │   │       │   │   ā”œā”€ā”€ tty
│   │   │       │   │   │   ā”œā”€ā”€ read-stream.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ read-stream.mjs
│   │   │       │   │   │   ā”œā”€ā”€ write-stream.d.mts
│   │   │       │   │   │   └── write-stream.mjs
│   │   │       │   │   ā”œā”€ā”€ url
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ constants.mjs
│   │   │       │   │   │   ā”œā”€ā”€ errors.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ errors.mjs
│   │   │       │   │   │   ā”œā”€ā”€ url.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ url.mjs
│   │   │       │   │   │   ā”œā”€ā”€ util.d.mts
│   │   │       │   │   │   └── util.mjs
│   │   │       │   │   ā”œā”€ā”€ util
│   │   │       │   │   │   ā”œā”€ā”€ inherits.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ inherits.mjs
│   │   │       │   │   │   ā”œā”€ā”€ legacy-types.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ legacy-types.mjs
│   │   │       │   │   │   ā”œā”€ā”€ log.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ log.mjs
│   │   │       │   │   │   ā”œā”€ā”€ mime.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ mime.mjs
│   │   │       │   │   │   ā”œā”€ā”€ promisify.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ promisify.mjs
│   │   │       │   │   │   ā”œā”€ā”€ types.d.mts
│   │   │       │   │   │   └── types.mjs
│   │   │       │   │   ā”œā”€ā”€ v8
│   │   │       │   │   │   ā”œā”€ā”€ deserializer.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ deserializer.mjs
│   │   │       │   │   │   ā”œā”€ā”€ profiler.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ profiler.mjs
│   │   │       │   │   │   ā”œā”€ā”€ serializer.d.mts
│   │   │       │   │   │   └── serializer.mjs
│   │   │       │   │   ā”œā”€ā”€ vm
│   │   │       │   │   │   ā”œā”€ā”€ constants.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ constants.mjs
│   │   │       │   │   │   ā”œā”€ā”€ script.d.mts
│   │   │       │   │   │   └── script.mjs
│   │   │       │   │   ā”œā”€ā”€ worker_threads
│   │   │       │   │   │   ā”œā”€ā”€ broadcast-channel.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ broadcast-channel.mjs
│   │   │       │   │   │   ā”œā”€ā”€ message-channel.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ message-channel.mjs
│   │   │       │   │   │   ā”œā”€ā”€ message-port.d.mts
│   │   │       │   │   │   ā”œā”€ā”€ message-port.mjs
│   │   │       │   │   │   ā”œā”€ā”€ worker.d.mts
│   │   │       │   │   │   └── worker.mjs
│   │   │       │   │   └── zlib
│   │   │       │   │       ā”œā”€ā”€ codes.d.mts
│   │   │       │   │       ā”œā”€ā”€ codes.mjs
│   │   │       │   │       ā”œā”€ā”€ constants.d.mts
│   │   │       │   │       ā”œā”€ā”€ constants.mjs
│   │   │       │   │       └── formats
│   │   │       │   │           ā”œā”€ā”€ _shared.d.mts
│   │   │       │   │           ā”œā”€ā”€ _shared.mjs
│   │   │       │   │           ā”œā”€ā”€ brotli.d.mts
│   │   │       │   │           ā”œā”€ā”€ brotli.mjs
│   │   │       │   │           ā”œā”€ā”€ deflate.d.mts
│   │   │       │   │           ā”œā”€ā”€ deflate.mjs
│   │   │       │   │           ā”œā”€ā”€ gzip.d.mts
│   │   │       │   │           ā”œā”€ā”€ gzip.mjs
│   │   │       │   │           ā”œā”€ā”€ zip.d.mts
│   │   │       │   │           └── zip.mjs
│   │   │       │   ā”œā”€ā”€ module.d.mts
│   │   │       │   ā”œā”€ā”€ module.mjs
│   │   │       │   ā”œā”€ā”€ net.d.mts
│   │   │       │   ā”œā”€ā”€ net.mjs
│   │   │       │   ā”œā”€ā”€ os.d.mts
│   │   │       │   ā”œā”€ā”€ os.mjs
│   │   │       │   ā”œā”€ā”€ path
│   │   │       │   │   ā”œā”€ā”€ posix.d.mts
│   │   │       │   │   ā”œā”€ā”€ posix.mjs
│   │   │       │   │   ā”œā”€ā”€ win32.d.mts
│   │   │       │   │   └── win32.mjs
│   │   │       │   ā”œā”€ā”€ path.d.mts
│   │   │       │   ā”œā”€ā”€ path.mjs
│   │   │       │   ā”œā”€ā”€ perf_hooks.d.mts
│   │   │       │   ā”œā”€ā”€ perf_hooks.mjs
│   │   │       │   ā”œā”€ā”€ process.d.mts
│   │   │       │   ā”œā”€ā”€ process.mjs
│   │   │       │   ā”œā”€ā”€ punycode.d.mts
│   │   │       │   ā”œā”€ā”€ punycode.mjs
│   │   │       │   ā”œā”€ā”€ querystring.d.mts
│   │   │       │   ā”œā”€ā”€ querystring.mjs
│   │   │       │   ā”œā”€ā”€ readline
│   │   │       │   │   ā”œā”€ā”€ promises.d.mts
│   │   │       │   │   └── promises.mjs
│   │   │       │   ā”œā”€ā”€ readline.d.mts
│   │   │       │   ā”œā”€ā”€ readline.mjs
│   │   │       │   ā”œā”€ā”€ repl.d.mts
│   │   │       │   ā”œā”€ā”€ repl.mjs
│   │   │       │   ā”œā”€ā”€ sqlite.d.mts
│   │   │       │   ā”œā”€ā”€ sqlite.mjs
│   │   │       │   ā”œā”€ā”€ stream
│   │   │       │   │   ā”œā”€ā”€ consumers.d.mts
│   │   │       │   │   ā”œā”€ā”€ consumers.mjs
│   │   │       │   │   ā”œā”€ā”€ promises.d.mts
│   │   │       │   │   ā”œā”€ā”€ promises.mjs
│   │   │       │   │   ā”œā”€ā”€ web.d.mts
│   │   │       │   │   └── web.mjs
│   │   │       │   ā”œā”€ā”€ stream.d.mts
│   │   │       │   ā”œā”€ā”€ stream.mjs
│   │   │       │   ā”œā”€ā”€ string_decoder.d.mts
│   │   │       │   ā”œā”€ā”€ string_decoder.mjs
│   │   │       │   ā”œā”€ā”€ sys.d.mts
│   │   │       │   ā”œā”€ā”€ sys.mjs
│   │   │       │   ā”œā”€ā”€ timers
│   │   │       │   │   ā”œā”€ā”€ promises.d.mts
│   │   │       │   │   └── promises.mjs
│   │   │       │   ā”œā”€ā”€ timers.d.mts
│   │   │       │   ā”œā”€ā”€ timers.mjs
│   │   │       │   ā”œā”€ā”€ tls.d.mts
│   │   │       │   ā”œā”€ā”€ tls.mjs
│   │   │       │   ā”œā”€ā”€ trace_events.d.mts
│   │   │       │   ā”œā”€ā”€ trace_events.mjs
│   │   │       │   ā”œā”€ā”€ tty.d.mts
│   │   │       │   ā”œā”€ā”€ tty.mjs
│   │   │       │   ā”œā”€ā”€ url.d.mts
│   │   │       │   ā”œā”€ā”€ url.mjs
│   │   │       │   ā”œā”€ā”€ util
│   │   │       │   │   ā”œā”€ā”€ types.d.mts
│   │   │       │   │   └── types.mjs
│   │   │       │   ā”œā”€ā”€ util.d.mts
│   │   │       │   ā”œā”€ā”€ util.mjs
│   │   │       │   ā”œā”€ā”€ v8.d.mts
│   │   │       │   ā”œā”€ā”€ v8.mjs
│   │   │       │   ā”œā”€ā”€ vm.d.mts
│   │   │       │   ā”œā”€ā”€ vm.mjs
│   │   │       │   ā”œā”€ā”€ wasi.d.mts
│   │   │       │   ā”œā”€ā”€ wasi.mjs
│   │   │       │   ā”œā”€ā”€ worker_threads.d.mts
│   │   │       │   ā”œā”€ā”€ worker_threads.mjs
│   │   │       │   ā”œā”€ā”€ zlib.d.mts
│   │   │       │   └── zlib.mjs
│   │   │       ā”œā”€ā”€ npm
│   │   │       │   ā”œā”€ā”€ cross-fetch.d.mts
│   │   │       │   ā”œā”€ā”€ cross-fetch.mjs
│   │   │       │   ā”œā”€ā”€ debug.d.mts
│   │   │       │   ā”œā”€ā”€ debug.mjs
│   │   │       │   ā”œā”€ā”€ fsevents.d.mts
│   │   │       │   ā”œā”€ā”€ fsevents.mjs
│   │   │       │   ā”œā”€ā”€ inherits.d.mts
│   │   │       │   ā”œā”€ā”€ inherits.mjs
│   │   │       │   ā”œā”€ā”€ node-fetch.d.mts
│   │   │       │   ā”œā”€ā”€ node-fetch.mjs
│   │   │       │   └── whatwg-url
│   │   │       │       ā”œā”€ā”€ index.d.mts
│   │   │       │       ā”œā”€ā”€ index.mjs
│   │   │       │       ā”œā”€ā”€ webidl2js-wrapper.d.mts
│   │   │       │       └── webidl2js-wrapper.mjs
│   │   │       ā”œā”€ā”€ polyfill
│   │   │       │   ā”œā”€ā”€ buffer.d.mts
│   │   │       │   ā”œā”€ā”€ buffer.mjs
│   │   │       │   ā”œā”€ā”€ globalthis-global.d.mts
│   │   │       │   ā”œā”€ā”€ globalthis-global.mjs
│   │   │       │   ā”œā”€ā”€ globalthis.d.mts
│   │   │       │   ā”œā”€ā”€ globalthis.mjs
│   │   │       │   ā”œā”€ā”€ package.json
│   │   │       │   ā”œā”€ā”€ performance.d.mts
│   │   │       │   ā”œā”€ā”€ performance.mjs
│   │   │       │   ā”œā”€ā”€ process.d.mts
│   │   │       │   ā”œā”€ā”€ process.mjs
│   │   │       │   ā”œā”€ā”€ source-maps.mjs
│   │   │       │   ā”œā”€ā”€ timers.d.mts
│   │   │       │   └── timers.mjs
│   │   │       └── web
│   │   │           └── performance
│   │   │               ā”œā”€ā”€ _polyfills.d.mts
│   │   │               ā”œā”€ā”€ _polyfills.mjs
│   │   │               ā”œā”€ā”€ index.d.mts
│   │   │               └── index.mjs
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ mock.cjs
│   │   │   └── mock.d.cts
│   │   └── package.json
│   ā”œā”€ā”€ universalify
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ uri-js
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ es5
│   │   │   │   ā”œā”€ā”€ uri.all.d.ts
│   │   │   │   ā”œā”€ā”€ uri.all.js
│   │   │   │   ā”œā”€ā”€ uri.all.js.map
│   │   │   │   ā”œā”€ā”€ uri.all.min.d.ts
│   │   │   │   ā”œā”€ā”€ uri.all.min.js
│   │   │   │   └── uri.all.min.js.map
│   │   │   └── esnext
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ regexps-iri.d.ts
│   │   │       ā”œā”€ā”€ regexps-iri.js
│   │   │       ā”œā”€ā”€ regexps-iri.js.map
│   │   │       ā”œā”€ā”€ regexps-uri.d.ts
│   │   │       ā”œā”€ā”€ regexps-uri.js
│   │   │       ā”œā”€ā”€ regexps-uri.js.map
│   │   │       ā”œā”€ā”€ schemes
│   │   │       │   ā”œā”€ā”€ http.d.ts
│   │   │       │   ā”œā”€ā”€ http.js
│   │   │       │   ā”œā”€ā”€ http.js.map
│   │   │       │   ā”œā”€ā”€ https.d.ts
│   │   │       │   ā”œā”€ā”€ https.js
│   │   │       │   ā”œā”€ā”€ https.js.map
│   │   │       │   ā”œā”€ā”€ mailto.d.ts
│   │   │       │   ā”œā”€ā”€ mailto.js
│   │   │       │   ā”œā”€ā”€ mailto.js.map
│   │   │       │   ā”œā”€ā”€ urn-uuid.d.ts
│   │   │       │   ā”œā”€ā”€ urn-uuid.js
│   │   │       │   ā”œā”€ā”€ urn-uuid.js.map
│   │   │       │   ā”œā”€ā”€ urn.d.ts
│   │   │       │   ā”œā”€ā”€ urn.js
│   │   │       │   ā”œā”€ā”€ urn.js.map
│   │   │       │   ā”œā”€ā”€ ws.d.ts
│   │   │       │   ā”œā”€ā”€ ws.js
│   │   │       │   ā”œā”€ā”€ ws.js.map
│   │   │       │   ā”œā”€ā”€ wss.d.ts
│   │   │       │   ā”œā”€ā”€ wss.js
│   │   │       │   └── wss.js.map
│   │   │       ā”œā”€ā”€ uri.d.ts
│   │   │       ā”œā”€ā”€ uri.js
│   │   │       ā”œā”€ā”€ uri.js.map
│   │   │       ā”œā”€ā”€ util.d.ts
│   │   │       ā”œā”€ā”€ util.js
│   │   │       └── util.js.map
│   │   ā”œā”€ā”€ package.json
│   │   └── yarn.lock
│   ā”œā”€ā”€ urlpattern-polyfill
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   ā”œā”€ā”€ urlpattern.cjs
│   │   │   └── urlpattern.js
│   │   ā”œā”€ā”€ index.cjs
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ util-deprecate
│   │   ā”œā”€ā”€ History.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ browser.js
│   │   ā”œā”€ā”€ node.js
│   │   └── package.json
│   ā”œā”€ā”€ uuid
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ cjs
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ max.d.ts
│   │   │   │   ā”œā”€ā”€ max.js
│   │   │   │   ā”œā”€ā”€ md5.d.ts
│   │   │   │   ā”œā”€ā”€ md5.js
│   │   │   │   ā”œā”€ā”€ native.d.ts
│   │   │   │   ā”œā”€ā”€ native.js
│   │   │   │   ā”œā”€ā”€ nil.d.ts
│   │   │   │   ā”œā”€ā”€ nil.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ parse.d.ts
│   │   │   │   ā”œā”€ā”€ parse.js
│   │   │   │   ā”œā”€ā”€ regex.d.ts
│   │   │   │   ā”œā”€ā”€ regex.js
│   │   │   │   ā”œā”€ā”€ rng.d.ts
│   │   │   │   ā”œā”€ā”€ rng.js
│   │   │   │   ā”œā”€ā”€ sha1.d.ts
│   │   │   │   ā”œā”€ā”€ sha1.js
│   │   │   │   ā”œā”€ā”€ stringify.d.ts
│   │   │   │   ā”œā”€ā”€ stringify.js
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   ā”œā”€ā”€ types.js
│   │   │   │   ā”œā”€ā”€ uuid-bin.d.ts
│   │   │   │   ā”œā”€ā”€ uuid-bin.js
│   │   │   │   ā”œā”€ā”€ v1.d.ts
│   │   │   │   ā”œā”€ā”€ v1.js
│   │   │   │   ā”œā”€ā”€ v1ToV6.d.ts
│   │   │   │   ā”œā”€ā”€ v1ToV6.js
│   │   │   │   ā”œā”€ā”€ v3.d.ts
│   │   │   │   ā”œā”€ā”€ v3.js
│   │   │   │   ā”œā”€ā”€ v35.d.ts
│   │   │   │   ā”œā”€ā”€ v35.js
│   │   │   │   ā”œā”€ā”€ v4.d.ts
│   │   │   │   ā”œā”€ā”€ v4.js
│   │   │   │   ā”œā”€ā”€ v5.d.ts
│   │   │   │   ā”œā”€ā”€ v5.js
│   │   │   │   ā”œā”€ā”€ v6.d.ts
│   │   │   │   ā”œā”€ā”€ v6.js
│   │   │   │   ā”œā”€ā”€ v6ToV1.d.ts
│   │   │   │   ā”œā”€ā”€ v6ToV1.js
│   │   │   │   ā”œā”€ā”€ v7.d.ts
│   │   │   │   ā”œā”€ā”€ v7.js
│   │   │   │   ā”œā”€ā”€ validate.d.ts
│   │   │   │   ā”œā”€ā”€ validate.js
│   │   │   │   ā”œā”€ā”€ version.d.ts
│   │   │   │   └── version.js
│   │   │   ā”œā”€ā”€ cjs-browser
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ max.d.ts
│   │   │   │   ā”œā”€ā”€ max.js
│   │   │   │   ā”œā”€ā”€ md5.d.ts
│   │   │   │   ā”œā”€ā”€ md5.js
│   │   │   │   ā”œā”€ā”€ native.d.ts
│   │   │   │   ā”œā”€ā”€ native.js
│   │   │   │   ā”œā”€ā”€ nil.d.ts
│   │   │   │   ā”œā”€ā”€ nil.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ parse.d.ts
│   │   │   │   ā”œā”€ā”€ parse.js
│   │   │   │   ā”œā”€ā”€ regex.d.ts
│   │   │   │   ā”œā”€ā”€ regex.js
│   │   │   │   ā”œā”€ā”€ rng.d.ts
│   │   │   │   ā”œā”€ā”€ rng.js
│   │   │   │   ā”œā”€ā”€ sha1.d.ts
│   │   │   │   ā”œā”€ā”€ sha1.js
│   │   │   │   ā”œā”€ā”€ stringify.d.ts
│   │   │   │   ā”œā”€ā”€ stringify.js
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   ā”œā”€ā”€ types.js
│   │   │   │   ā”œā”€ā”€ uuid-bin.d.ts
│   │   │   │   ā”œā”€ā”€ uuid-bin.js
│   │   │   │   ā”œā”€ā”€ v1.d.ts
│   │   │   │   ā”œā”€ā”€ v1.js
│   │   │   │   ā”œā”€ā”€ v1ToV6.d.ts
│   │   │   │   ā”œā”€ā”€ v1ToV6.js
│   │   │   │   ā”œā”€ā”€ v3.d.ts
│   │   │   │   ā”œā”€ā”€ v3.js
│   │   │   │   ā”œā”€ā”€ v35.d.ts
│   │   │   │   ā”œā”€ā”€ v35.js
│   │   │   │   ā”œā”€ā”€ v4.d.ts
│   │   │   │   ā”œā”€ā”€ v4.js
│   │   │   │   ā”œā”€ā”€ v5.d.ts
│   │   │   │   ā”œā”€ā”€ v5.js
│   │   │   │   ā”œā”€ā”€ v6.d.ts
│   │   │   │   ā”œā”€ā”€ v6.js
│   │   │   │   ā”œā”€ā”€ v6ToV1.d.ts
│   │   │   │   ā”œā”€ā”€ v6ToV1.js
│   │   │   │   ā”œā”€ā”€ v7.d.ts
│   │   │   │   ā”œā”€ā”€ v7.js
│   │   │   │   ā”œā”€ā”€ validate.d.ts
│   │   │   │   ā”œā”€ā”€ validate.js
│   │   │   │   ā”œā”€ā”€ version.d.ts
│   │   │   │   └── version.js
│   │   │   ā”œā”€ā”€ esm
│   │   │   │   ā”œā”€ā”€ bin
│   │   │   │   │   └── uuid
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ max.d.ts
│   │   │   │   ā”œā”€ā”€ max.js
│   │   │   │   ā”œā”€ā”€ md5.d.ts
│   │   │   │   ā”œā”€ā”€ md5.js
│   │   │   │   ā”œā”€ā”€ native.d.ts
│   │   │   │   ā”œā”€ā”€ native.js
│   │   │   │   ā”œā”€ā”€ nil.d.ts
│   │   │   │   ā”œā”€ā”€ nil.js
│   │   │   │   ā”œā”€ā”€ parse.d.ts
│   │   │   │   ā”œā”€ā”€ parse.js
│   │   │   │   ā”œā”€ā”€ regex.d.ts
│   │   │   │   ā”œā”€ā”€ regex.js
│   │   │   │   ā”œā”€ā”€ rng.d.ts
│   │   │   │   ā”œā”€ā”€ rng.js
│   │   │   │   ā”œā”€ā”€ sha1.d.ts
│   │   │   │   ā”œā”€ā”€ sha1.js
│   │   │   │   ā”œā”€ā”€ stringify.d.ts
│   │   │   │   ā”œā”€ā”€ stringify.js
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   ā”œā”€ā”€ types.js
│   │   │   │   ā”œā”€ā”€ uuid-bin.d.ts
│   │   │   │   ā”œā”€ā”€ uuid-bin.js
│   │   │   │   ā”œā”€ā”€ v1.d.ts
│   │   │   │   ā”œā”€ā”€ v1.js
│   │   │   │   ā”œā”€ā”€ v1ToV6.d.ts
│   │   │   │   ā”œā”€ā”€ v1ToV6.js
│   │   │   │   ā”œā”€ā”€ v3.d.ts
│   │   │   │   ā”œā”€ā”€ v3.js
│   │   │   │   ā”œā”€ā”€ v35.d.ts
│   │   │   │   ā”œā”€ā”€ v35.js
│   │   │   │   ā”œā”€ā”€ v4.d.ts
│   │   │   │   ā”œā”€ā”€ v4.js
│   │   │   │   ā”œā”€ā”€ v5.d.ts
│   │   │   │   ā”œā”€ā”€ v5.js
│   │   │   │   ā”œā”€ā”€ v6.d.ts
│   │   │   │   ā”œā”€ā”€ v6.js
│   │   │   │   ā”œā”€ā”€ v6ToV1.d.ts
│   │   │   │   ā”œā”€ā”€ v6ToV1.js
│   │   │   │   ā”œā”€ā”€ v7.d.ts
│   │   │   │   ā”œā”€ā”€ v7.js
│   │   │   │   ā”œā”€ā”€ validate.d.ts
│   │   │   │   ā”œā”€ā”€ validate.js
│   │   │   │   ā”œā”€ā”€ version.d.ts
│   │   │   │   └── version.js
│   │   │   └── esm-browser
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ max.d.ts
│   │   │       ā”œā”€ā”€ max.js
│   │   │       ā”œā”€ā”€ md5.d.ts
│   │   │       ā”œā”€ā”€ md5.js
│   │   │       ā”œā”€ā”€ native.d.ts
│   │   │       ā”œā”€ā”€ native.js
│   │   │       ā”œā”€ā”€ nil.d.ts
│   │   │       ā”œā”€ā”€ nil.js
│   │   │       ā”œā”€ā”€ parse.d.ts
│   │   │       ā”œā”€ā”€ parse.js
│   │   │       ā”œā”€ā”€ regex.d.ts
│   │   │       ā”œā”€ā”€ regex.js
│   │   │       ā”œā”€ā”€ rng.d.ts
│   │   │       ā”œā”€ā”€ rng.js
│   │   │       ā”œā”€ā”€ sha1.d.ts
│   │   │       ā”œā”€ā”€ sha1.js
│   │   │       ā”œā”€ā”€ stringify.d.ts
│   │   │       ā”œā”€ā”€ stringify.js
│   │   │       ā”œā”€ā”€ types.d.ts
│   │   │       ā”œā”€ā”€ types.js
│   │   │       ā”œā”€ā”€ uuid-bin.d.ts
│   │   │       ā”œā”€ā”€ uuid-bin.js
│   │   │       ā”œā”€ā”€ v1.d.ts
│   │   │       ā”œā”€ā”€ v1.js
│   │   │       ā”œā”€ā”€ v1ToV6.d.ts
│   │   │       ā”œā”€ā”€ v1ToV6.js
│   │   │       ā”œā”€ā”€ v3.d.ts
│   │   │       ā”œā”€ā”€ v3.js
│   │   │       ā”œā”€ā”€ v35.d.ts
│   │   │       ā”œā”€ā”€ v35.js
│   │   │       ā”œā”€ā”€ v4.d.ts
│   │   │       ā”œā”€ā”€ v4.js
│   │   │       ā”œā”€ā”€ v5.d.ts
│   │   │       ā”œā”€ā”€ v5.js
│   │   │       ā”œā”€ā”€ v6.d.ts
│   │   │       ā”œā”€ā”€ v6.js
│   │   │       ā”œā”€ā”€ v6ToV1.d.ts
│   │   │       ā”œā”€ā”€ v6ToV1.js
│   │   │       ā”œā”€ā”€ v7.d.ts
│   │   │       ā”œā”€ā”€ v7.js
│   │   │       ā”œā”€ā”€ validate.d.ts
│   │   │       ā”œā”€ā”€ validate.js
│   │   │       ā”œā”€ā”€ version.d.ts
│   │   │       └── version.js
│   │   └── package.json
│   ā”œā”€ā”€ validator
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ alpha.js
│   │   │   ā”œā”€ā”€ blacklist.js
│   │   │   ā”œā”€ā”€ contains.js
│   │   │   ā”œā”€ā”€ equals.js
│   │   │   ā”œā”€ā”€ escape.js
│   │   │   ā”œā”€ā”€ isAfter.js
│   │   │   ā”œā”€ā”€ isAlpha.js
│   │   │   ā”œā”€ā”€ isAlphanumeric.js
│   │   │   ā”œā”€ā”€ isAscii.js
│   │   │   ā”œā”€ā”€ isBase64.js
│   │   │   ā”œā”€ā”€ isBefore.js
│   │   │   ā”œā”€ā”€ isBoolean.js
│   │   │   ā”œā”€ā”€ isByteLength.js
│   │   │   ā”œā”€ā”€ isCreditCard.js
│   │   │   ā”œā”€ā”€ isCurrency.js
│   │   │   ā”œā”€ā”€ isDataURI.js
│   │   │   ā”œā”€ā”€ isDate.js
│   │   │   ā”œā”€ā”€ isDecimal.js
│   │   │   ā”œā”€ā”€ isDivisibleBy.js
│   │   │   ā”œā”€ā”€ isEmail.js
│   │   │   ā”œā”€ā”€ isFQDN.js
│   │   │   ā”œā”€ā”€ isFloat.js
│   │   │   ā”œā”€ā”€ isFullWidth.js
│   │   │   ā”œā”€ā”€ isHalfWidth.js
│   │   │   ā”œā”€ā”€ isHexColor.js
│   │   │   ā”œā”€ā”€ isHexadecimal.js
│   │   │   ā”œā”€ā”€ isIP.js
│   │   │   ā”œā”€ā”€ isISBN.js
│   │   │   ā”œā”€ā”€ isISIN.js
│   │   │   ā”œā”€ā”€ isISO8601.js
│   │   │   ā”œā”€ā”€ isIn.js
│   │   │   ā”œā”€ā”€ isInt.js
│   │   │   ā”œā”€ā”€ isJSON.js
│   │   │   ā”œā”€ā”€ isLength.js
│   │   │   ā”œā”€ā”€ isLowercase.js
│   │   │   ā”œā”€ā”€ isMACAddress.js
│   │   │   ā”œā”€ā”€ isMD5.js
│   │   │   ā”œā”€ā”€ isMobilePhone.js
│   │   │   ā”œā”€ā”€ isMongoId.js
│   │   │   ā”œā”€ā”€ isMultibyte.js
│   │   │   ā”œā”€ā”€ isNull.js
│   │   │   ā”œā”€ā”€ isNumeric.js
│   │   │   ā”œā”€ā”€ isSurrogatePair.js
│   │   │   ā”œā”€ā”€ isURL.js
│   │   │   ā”œā”€ā”€ isUUID.js
│   │   │   ā”œā”€ā”€ isUppercase.js
│   │   │   ā”œā”€ā”€ isVariableWidth.js
│   │   │   ā”œā”€ā”€ isWhitelisted.js
│   │   │   ā”œā”€ā”€ ltrim.js
│   │   │   ā”œā”€ā”€ matches.js
│   │   │   ā”œā”€ā”€ normalizeEmail.js
│   │   │   ā”œā”€ā”€ rtrim.js
│   │   │   ā”œā”€ā”€ stripLow.js
│   │   │   ā”œā”€ā”€ toBoolean.js
│   │   │   ā”œā”€ā”€ toDate.js
│   │   │   ā”œā”€ā”€ toFloat.js
│   │   │   ā”œā”€ā”€ toInt.js
│   │   │   ā”œā”€ā”€ trim.js
│   │   │   ā”œā”€ā”€ unescape.js
│   │   │   ā”œā”€ā”€ util
│   │   │   │   ā”œā”€ā”€ assertString.js
│   │   │   │   ā”œā”€ā”€ merge.js
│   │   │   │   └── toString.js
│   │   │   └── whitelist.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ validator.js
│   │   └── validator.min.js
│   ā”œā”€ā”€ vite
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   ā”œā”€ā”€ openChrome.js
│   │   │   └── vite.js
│   │   ā”œā”€ā”€ client.d.ts
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ client
│   │   │   │   ā”œā”€ā”€ client.mjs
│   │   │   │   └── env.mjs
│   │   │   └── node
│   │   │       ā”œā”€ā”€ chunks
│   │   │       │   ā”œā”€ā”€ dep-03SfmTdk.js
│   │   │       │   ā”œā”€ā”€ dep-6-jTB_1O.js
│   │   │       │   ā”œā”€ā”€ dep-Bj7gA1-0.js
│   │   │       │   ā”œā”€ā”€ dep-C9NktISv.js
│   │   │       │   ā”œā”€ā”€ dep-CA7ICgyJ.js
│   │   │       │   ā”œā”€ā”€ dep-CPnzVSwg.js
│   │   │       │   ā”œā”€ā”€ dep-CcFMbzqu.js
│   │   │       │   ā”œā”€ā”€ dep-D5MCzjWT.js
│   │   │       │   ā”œā”€ā”€ dep-SeJl6gzM.js
│   │   │       │   ā”œā”€ā”€ dep-TDFDwW_9.js
│   │   │       │   ā”œā”€ā”€ dep-UEPspf5j.js
│   │   │       │   ā”œā”€ā”€ dep-XdVlHtXy.js
│   │   │       │   └── dep-lCKrEJQm.js
│   │   │       ā”œā”€ā”€ cli.js
│   │   │       ā”œā”€ā”€ constants.js
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ module-runner.d.ts
│   │   │       ā”œā”€ā”€ module-runner.js
│   │   │       └── moduleRunnerTransport-BWUZBVLX.d.ts
│   │   ā”œā”€ā”€ misc
│   │   │   ā”œā”€ā”€ false.js
│   │   │   └── true.js
│   │   ā”œā”€ā”€ package.json
│   │   └── types
│   │       ā”œā”€ā”€ customEvent.d.ts
│   │       ā”œā”€ā”€ hmrPayload.d.ts
│   │       ā”œā”€ā”€ hot.d.ts
│   │       ā”œā”€ā”€ import-meta.d.ts
│   │       ā”œā”€ā”€ importGlob.d.ts
│   │       ā”œā”€ā”€ importMeta.d.ts
│   │       ā”œā”€ā”€ internal
│   │       │   ā”œā”€ā”€ cssPreprocessorOptions.d.ts
│   │       │   ā”œā”€ā”€ lightningcssOptions.d.ts
│   │       │   └── terserOptions.d.ts
│   │       ā”œā”€ā”€ metadata.d.ts
│   │       └── package.json
│   ā”œā”€ā”€ vite-node
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ chunk-browser.cjs
│   │   │   ā”œā”€ā”€ chunk-browser.mjs
│   │   │   ā”œā”€ā”€ chunk-hmr.cjs
│   │   │   ā”œā”€ā”€ chunk-hmr.mjs
│   │   │   ā”œā”€ā”€ cli.cjs
│   │   │   ā”œā”€ā”€ cli.d.ts
│   │   │   ā”œā”€ā”€ cli.mjs
│   │   │   ā”œā”€ā”€ client.cjs
│   │   │   ā”œā”€ā”€ client.d.ts
│   │   │   ā”œā”€ā”€ client.mjs
│   │   │   ā”œā”€ā”€ constants.cjs
│   │   │   ā”œā”€ā”€ constants.d.ts
│   │   │   ā”œā”€ā”€ constants.mjs
│   │   │   ā”œā”€ā”€ hmr.cjs
│   │   │   ā”œā”€ā”€ hmr.d.ts
│   │   │   ā”œā”€ā”€ hmr.mjs
│   │   │   ā”œā”€ā”€ index.cjs
│   │   │   ā”œā”€ā”€ index.d-DGmxD2U7.d.ts
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.mjs
│   │   │   ā”œā”€ā”€ server.cjs
│   │   │   ā”œā”€ā”€ server.d.ts
│   │   │   ā”œā”€ā”€ server.mjs
│   │   │   ā”œā”€ā”€ source-map.cjs
│   │   │   ā”œā”€ā”€ source-map.d.ts
│   │   │   ā”œā”€ā”€ source-map.mjs
│   │   │   ā”œā”€ā”€ trace-mapping.d-DLVdEqOp.d.ts
│   │   │   ā”œā”€ā”€ types.cjs
│   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   ā”œā”€ā”€ types.mjs
│   │   │   ā”œā”€ā”€ utils.cjs
│   │   │   ā”œā”€ā”€ utils.d.ts
│   │   │   └── utils.mjs
│   │   ā”œā”€ā”€ package.json
│   │   └── vite-node.mjs
│   ā”œā”€ā”€ vitest
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ browser.d.ts
│   │   ā”œā”€ā”€ config.d.ts
│   │   ā”œā”€ā”€ coverage.d.ts
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ browser.d.ts
│   │   │   ā”œā”€ā”€ browser.js
│   │   │   ā”œā”€ā”€ chunks
│   │   │   │   ā”œā”€ā”€ _commonjsHelpers.BFTU3MAI.js
│   │   │   │   ā”œā”€ā”€ base.DfmxU-tU.js
│   │   │   │   ā”œā”€ā”€ benchmark.CYdenmiT.js
│   │   │   │   ā”œā”€ā”€ benchmark.d.BwvBVTda.d.ts
│   │   │   │   ā”œā”€ā”€ cac.Cb-PYCCB.js
│   │   │   │   ā”œā”€ā”€ cli-api.BkDphVBG.js
│   │   │   │   ā”œā”€ā”€ config.d.D2ROskhv.d.ts
│   │   │   │   ā”œā”€ā”€ console.CtFJOzRO.js
│   │   │   │   ā”œā”€ā”€ constants.DnKduX2e.js
│   │   │   │   ā”œā”€ā”€ coverage.DL5VHqXY.js
│   │   │   │   ā”œā”€ā”€ coverage.DVF1vEu8.js
│   │   │   │   ā”œā”€ā”€ coverage.d.S9RMNXIe.d.ts
│   │   │   │   ā”œā”€ā”€ creator.GK6I-cL4.js
│   │   │   │   ā”œā”€ā”€ date.Bq6ZW5rf.js
│   │   │   │   ā”œā”€ā”€ defaults.B7q_naMc.js
│   │   │   │   ā”œā”€ā”€ env.D4Lgay0q.js
│   │   │   │   ā”œā”€ā”€ environment.d.cL3nLXbE.d.ts
│   │   │   │   ā”œā”€ā”€ execute.B7h3T_Hc.js
│   │   │   │   ā”œā”€ā”€ git.BVQ8w_Sw.js
│   │   │   │   ā”œā”€ā”€ global.d.MAmajcmJ.d.ts
│   │   │   │   ā”œā”€ā”€ globals.DEHgCU4V.js
│   │   │   │   ā”œā”€ā”€ index.B521nVV-.js
│   │   │   │   ā”œā”€ā”€ index.BCWujgDG.js
│   │   │   │   ā”œā”€ā”€ index.CdQS2e2Q.js
│   │   │   │   ā”œā”€ā”€ index.CmSc2RE5.js
│   │   │   │   ā”œā”€ā”€ index.CwejwG0H.js
│   │   │   │   ā”œā”€ā”€ index.D3XRDfWc.js
│   │   │   │   ā”œā”€ā”€ index.VByaPkjc.js
│   │   │   │   ā”œā”€ā”€ index.X0nbfr6-.js
│   │   │   │   ā”œā”€ā”€ inspector.C914Efll.js
│   │   │   │   ā”œā”€ā”€ mocker.d.BE_2ls6u.d.ts
│   │   │   │   ā”œā”€ā”€ node.fjCdwEIl.js
│   │   │   │   ā”œā”€ā”€ reporters.d.BFLkQcL6.d.ts
│   │   │   │   ā”œā”€ā”€ rpc.-pEldfrD.js
│   │   │   │   ā”œā”€ā”€ runBaseTests.9Ij9_de-.js
│   │   │   │   ā”œā”€ā”€ setup-common.Dd054P77.js
│   │   │   │   ā”œā”€ā”€ suite.d.FvehnV49.d.ts
│   │   │   │   ā”œā”€ā”€ typechecker.DRKU1-1g.js
│   │   │   │   ā”œā”€ā”€ utils.CAioKnHs.js
│   │   │   │   ā”œā”€ā”€ utils.XdZDrNZV.js
│   │   │   │   ā”œā”€ā”€ vi.bdSIJ99Y.js
│   │   │   │   ā”œā”€ā”€ vite.d.CMLlLIFP.d.ts
│   │   │   │   ā”œā”€ā”€ vm.BThCzidc.js
│   │   │   │   ā”œā”€ā”€ worker.d.1GmBbd7G.d.ts
│   │   │   │   └── worker.d.CKwWzBSj.d.ts
│   │   │   ā”œā”€ā”€ cli.js
│   │   │   ā”œā”€ā”€ config.cjs
│   │   │   ā”œā”€ā”€ config.d.ts
│   │   │   ā”œā”€ā”€ config.js
│   │   │   ā”œā”€ā”€ coverage.d.ts
│   │   │   ā”œā”€ā”€ coverage.js
│   │   │   ā”œā”€ā”€ environments.d.ts
│   │   │   ā”œā”€ā”€ environments.js
│   │   │   ā”œā”€ā”€ execute.d.ts
│   │   │   ā”œā”€ā”€ execute.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ mocker.d.ts
│   │   │   ā”œā”€ā”€ mocker.js
│   │   │   ā”œā”€ā”€ node.d.ts
│   │   │   ā”œā”€ā”€ node.js
│   │   │   ā”œā”€ā”€ path.js
│   │   │   ā”œā”€ā”€ reporters.d.ts
│   │   │   ā”œā”€ā”€ reporters.js
│   │   │   ā”œā”€ā”€ runners.d.ts
│   │   │   ā”œā”€ā”€ runners.js
│   │   │   ā”œā”€ā”€ snapshot.d.ts
│   │   │   ā”œā”€ā”€ snapshot.js
│   │   │   ā”œā”€ā”€ spy.js
│   │   │   ā”œā”€ā”€ suite.d.ts
│   │   │   ā”œā”€ā”€ suite.js
│   │   │   ā”œā”€ā”€ worker.js
│   │   │   ā”œā”€ā”€ workers
│   │   │   │   ā”œā”€ā”€ forks.js
│   │   │   │   ā”œā”€ā”€ runVmTests.js
│   │   │   │   ā”œā”€ā”€ threads.js
│   │   │   │   ā”œā”€ā”€ vmForks.js
│   │   │   │   └── vmThreads.js
│   │   │   ā”œā”€ā”€ workers.d.ts
│   │   │   └── workers.js
│   │   ā”œā”€ā”€ environments.d.ts
│   │   ā”œā”€ā”€ execute.d.ts
│   │   ā”œā”€ā”€ globals.d.ts
│   │   ā”œā”€ā”€ import-meta.d.ts
│   │   ā”œā”€ā”€ importMeta.d.ts
│   │   ā”œā”€ā”€ index.cjs
│   │   ā”œā”€ā”€ index.d.cts
│   │   ā”œā”€ā”€ jsdom.d.ts
│   │   ā”œā”€ā”€ mocker.d.ts
│   │   ā”œā”€ā”€ node.d.ts
│   │   ā”œā”€ā”€ optional-types.d.ts
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ reporters.d.ts
│   │   ā”œā”€ā”€ runners.d.ts
│   │   ā”œā”€ā”€ snapshot.d.ts
│   │   ā”œā”€ā”€ suite.d.ts
│   │   ā”œā”€ā”€ suppress-warnings.cjs
│   │   ā”œā”€ā”€ utils.d.ts
│   │   ā”œā”€ā”€ vitest.mjs
│   │   └── workers.d.ts
│   ā”œā”€ā”€ vscode-jsonrpc
│   │   ā”œā”€ā”€ License.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ browser.d.ts
│   │   ā”œā”€ā”€ browser.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ browser
│   │   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   │   ā”œā”€ā”€ main.js
│   │   │   │   ā”œā”€ā”€ ril.d.ts
│   │   │   │   └── ril.js
│   │   │   ā”œā”€ā”€ common
│   │   │   │   ā”œā”€ā”€ api.d.ts
│   │   │   │   ā”œā”€ā”€ api.js
│   │   │   │   ā”œā”€ā”€ cancellation.d.ts
│   │   │   │   ā”œā”€ā”€ cancellation.js
│   │   │   │   ā”œā”€ā”€ connection.d.ts
│   │   │   │   ā”œā”€ā”€ connection.js
│   │   │   │   ā”œā”€ā”€ disposable.d.ts
│   │   │   │   ā”œā”€ā”€ disposable.js
│   │   │   │   ā”œā”€ā”€ encoding.d.ts
│   │   │   │   ā”œā”€ā”€ encoding.js
│   │   │   │   ā”œā”€ā”€ events.d.ts
│   │   │   │   ā”œā”€ā”€ events.js
│   │   │   │   ā”œā”€ā”€ is.d.ts
│   │   │   │   ā”œā”€ā”€ is.js
│   │   │   │   ā”œā”€ā”€ linkedMap.d.ts
│   │   │   │   ā”œā”€ā”€ linkedMap.js
│   │   │   │   ā”œā”€ā”€ messageBuffer.d.ts
│   │   │   │   ā”œā”€ā”€ messageBuffer.js
│   │   │   │   ā”œā”€ā”€ messageReader.d.ts
│   │   │   │   ā”œā”€ā”€ messageReader.js
│   │   │   │   ā”œā”€ā”€ messageWriter.d.ts
│   │   │   │   ā”œā”€ā”€ messageWriter.js
│   │   │   │   ā”œā”€ā”€ messages.d.ts
│   │   │   │   ā”œā”€ā”€ messages.js
│   │   │   │   ā”œā”€ā”€ ral.d.ts
│   │   │   │   ā”œā”€ā”€ ral.js
│   │   │   │   ā”œā”€ā”€ semaphore.d.ts
│   │   │   │   ā”œā”€ā”€ semaphore.js
│   │   │   │   ā”œā”€ā”€ sharedArrayCancellation.d.ts
│   │   │   │   └── sharedArrayCancellation.js
│   │   │   └── node
│   │   │       ā”œā”€ā”€ main.d.ts
│   │   │       ā”œā”€ā”€ main.js
│   │   │       ā”œā”€ā”€ ril.d.ts
│   │   │       └── ril.js
│   │   ā”œā”€ā”€ node.cmd
│   │   ā”œā”€ā”€ node.d.ts
│   │   ā”œā”€ā”€ node.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ thirdpartynotices.txt
│   │   └── typings
│   │       └── thenable.d.ts
│   ā”œā”€ā”€ vscode-languageserver
│   │   ā”œā”€ā”€ License.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── installServerIntoExtension
│   │   ā”œā”€ā”€ browser.d.ts
│   │   ā”œā”€ā”€ browser.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ browser
│   │   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   │   └── main.js
│   │   │   ā”œā”€ā”€ common
│   │   │   │   ā”œā”€ā”€ api.d.ts
│   │   │   │   ā”œā”€ā”€ api.js
│   │   │   │   ā”œā”€ā”€ callHierarchy.d.ts
│   │   │   │   ā”œā”€ā”€ callHierarchy.js
│   │   │   │   ā”œā”€ā”€ configuration.d.ts
│   │   │   │   ā”œā”€ā”€ configuration.js
│   │   │   │   ā”œā”€ā”€ diagnostic.d.ts
│   │   │   │   ā”œā”€ā”€ diagnostic.js
│   │   │   │   ā”œā”€ā”€ fileOperations.d.ts
│   │   │   │   ā”œā”€ā”€ fileOperations.js
│   │   │   │   ā”œā”€ā”€ foldingRange.d.ts
│   │   │   │   ā”œā”€ā”€ foldingRange.js
│   │   │   │   ā”œā”€ā”€ inlayHint.d.ts
│   │   │   │   ā”œā”€ā”€ inlayHint.js
│   │   │   │   ā”œā”€ā”€ inlineCompletion.proposed.d.ts
│   │   │   │   ā”œā”€ā”€ inlineCompletion.proposed.js
│   │   │   │   ā”œā”€ā”€ inlineValue.d.ts
│   │   │   │   ā”œā”€ā”€ inlineValue.js
│   │   │   │   ā”œā”€ā”€ linkedEditingRange.d.ts
│   │   │   │   ā”œā”€ā”€ linkedEditingRange.js
│   │   │   │   ā”œā”€ā”€ moniker.d.ts
│   │   │   │   ā”œā”€ā”€ moniker.js
│   │   │   │   ā”œā”€ā”€ notebook.d.ts
│   │   │   │   ā”œā”€ā”€ notebook.js
│   │   │   │   ā”œā”€ā”€ progress.d.ts
│   │   │   │   ā”œā”€ā”€ progress.js
│   │   │   │   ā”œā”€ā”€ semanticTokens.d.ts
│   │   │   │   ā”œā”€ā”€ semanticTokens.js
│   │   │   │   ā”œā”€ā”€ server.d.ts
│   │   │   │   ā”œā”€ā”€ server.js
│   │   │   │   ā”œā”€ā”€ showDocument.d.ts
│   │   │   │   ā”œā”€ā”€ showDocument.js
│   │   │   │   ā”œā”€ā”€ textDocuments.d.ts
│   │   │   │   ā”œā”€ā”€ textDocuments.js
│   │   │   │   ā”œā”€ā”€ typeHierarchy.d.ts
│   │   │   │   ā”œā”€ā”€ typeHierarchy.js
│   │   │   │   ā”œā”€ā”€ utils
│   │   │   │   │   ā”œā”€ā”€ is.d.ts
│   │   │   │   │   ā”œā”€ā”€ is.js
│   │   │   │   │   ā”œā”€ā”€ uuid.d.ts
│   │   │   │   │   └── uuid.js
│   │   │   │   ā”œā”€ā”€ workspaceFolder.d.ts
│   │   │   │   └── workspaceFolder.js
│   │   │   └── node
│   │   │       ā”œā”€ā”€ files.d.ts
│   │   │       ā”œā”€ā”€ files.js
│   │   │       ā”œā”€ā”€ main.d.ts
│   │   │       ā”œā”€ā”€ main.js
│   │   │       ā”œā”€ā”€ resolve.d.ts
│   │   │       └── resolve.js
│   │   ā”œā”€ā”€ node.cmd
│   │   ā”œā”€ā”€ node.d.ts
│   │   ā”œā”€ā”€ node.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ thirdpartynotices.txt
│   │   └── typings
│   │       └── thenable.d.ts
│   ā”œā”€ā”€ vscode-languageserver-protocol
│   │   ā”œā”€ā”€ License.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ browser.d.ts
│   │   ā”œā”€ā”€ browser.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ browser
│   │   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   │   └── main.js
│   │   │   ā”œā”€ā”€ common
│   │   │   │   ā”œā”€ā”€ api.d.ts
│   │   │   │   ā”œā”€ā”€ api.js
│   │   │   │   ā”œā”€ā”€ connection.d.ts
│   │   │   │   ā”œā”€ā”€ connection.js
│   │   │   │   ā”œā”€ā”€ messages.d.ts
│   │   │   │   ā”œā”€ā”€ messages.js
│   │   │   │   ā”œā”€ā”€ protocol.$.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.$.js
│   │   │   │   ā”œā”€ā”€ protocol.callHierarchy.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.callHierarchy.js
│   │   │   │   ā”œā”€ā”€ protocol.colorProvider.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.colorProvider.js
│   │   │   │   ā”œā”€ā”€ protocol.configuration.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.configuration.js
│   │   │   │   ā”œā”€ā”€ protocol.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.declaration.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.declaration.js
│   │   │   │   ā”œā”€ā”€ protocol.diagnostic.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.diagnostic.js
│   │   │   │   ā”œā”€ā”€ protocol.fileOperations.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.fileOperations.js
│   │   │   │   ā”œā”€ā”€ protocol.foldingRange.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.foldingRange.js
│   │   │   │   ā”œā”€ā”€ protocol.implementation.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.implementation.js
│   │   │   │   ā”œā”€ā”€ protocol.inlayHint.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.inlayHint.js
│   │   │   │   ā”œā”€ā”€ protocol.inlineCompletion.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.inlineCompletion.js
│   │   │   │   ā”œā”€ā”€ protocol.inlineValue.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.inlineValue.js
│   │   │   │   ā”œā”€ā”€ protocol.js
│   │   │   │   ā”œā”€ā”€ protocol.linkedEditingRange.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.linkedEditingRange.js
│   │   │   │   ā”œā”€ā”€ protocol.moniker.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.moniker.js
│   │   │   │   ā”œā”€ā”€ protocol.notebook.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.notebook.js
│   │   │   │   ā”œā”€ā”€ protocol.progress.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.progress.js
│   │   │   │   ā”œā”€ā”€ protocol.selectionRange.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.selectionRange.js
│   │   │   │   ā”œā”€ā”€ protocol.semanticTokens.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.semanticTokens.js
│   │   │   │   ā”œā”€ā”€ protocol.showDocument.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.showDocument.js
│   │   │   │   ā”œā”€ā”€ protocol.typeDefinition.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.typeDefinition.js
│   │   │   │   ā”œā”€ā”€ protocol.typeHierarchy.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.typeHierarchy.js
│   │   │   │   ā”œā”€ā”€ protocol.workspaceFolder.d.ts
│   │   │   │   ā”œā”€ā”€ protocol.workspaceFolder.js
│   │   │   │   └── utils
│   │   │   │       ā”œā”€ā”€ is.d.ts
│   │   │   │       └── is.js
│   │   │   └── node
│   │   │       ā”œā”€ā”€ main.d.ts
│   │   │       └── main.js
│   │   ā”œā”€ā”€ metaModel.schema.json
│   │   ā”œā”€ā”€ node.cmd
│   │   ā”œā”€ā”€ node.d.ts
│   │   ā”œā”€ā”€ node.js
│   │   ā”œā”€ā”€ package.json
│   │   └── thirdpartynotices.txt
│   ā”œā”€ā”€ vscode-languageserver-textdocument
│   │   ā”œā”€ā”€ License.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ esm
│   │   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   │   ā”œā”€ā”€ main.js
│   │   │   │   └── package.json
│   │   │   └── umd
│   │   │       ā”œā”€ā”€ main.d.ts
│   │   │       └── main.js
│   │   ā”œā”€ā”€ package.json
│   │   └── thirdpartynotices.txt
│   ā”œā”€ā”€ vscode-languageserver-types
│   │   ā”œā”€ā”€ License.txt
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ esm
│   │   │   │   ā”œā”€ā”€ main.d.ts
│   │   │   │   ā”œā”€ā”€ main.js
│   │   │   │   └── package.json
│   │   │   └── umd
│   │   │       ā”œā”€ā”€ main.d.ts
│   │   │       └── main.js
│   │   ā”œā”€ā”€ package.json
│   │   └── thirdpartynotices.txt
│   ā”œā”€ā”€ vscode-uri
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ SECURITY.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ esm
│   │   │   │   ā”œā”€ā”€ index.mjs
│   │   │   │   └── index.mjs.map
│   │   │   └── umd
│   │   │       ā”œā”€ā”€ charCode.d.ts
│   │   │       ā”œā”€ā”€ charCode.js
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ index.js.map
│   │   │       ā”œā”€ā”€ platform.d.ts
│   │   │       ā”œā”€ā”€ platform.js
│   │   │       ā”œā”€ā”€ uri.d.ts
│   │   │       ā”œā”€ā”€ uri.js
│   │   │       ā”œā”€ā”€ utils.d.ts
│   │   │       └── utils.js
│   │   └── package.json
│   ā”œā”€ā”€ which
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── node-which
│   │   ā”œā”€ā”€ package.json
│   │   └── which.js
│   ā”œā”€ā”€ why-is-node-running
│   │   ā”œā”€ā”€ .github
│   │   │   └── FUNDING.yml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ cli.js
│   │   ā”œā”€ā”€ example.js
│   │   ā”œā”€ā”€ include.js
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ winston
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ winston
│   │   │   │   ā”œā”€ā”€ common.js
│   │   │   │   ā”œā”€ā”€ config
│   │   │   │   │   ā”œā”€ā”€ cli-config.js
│   │   │   │   │   ā”œā”€ā”€ npm-config.js
│   │   │   │   │   └── syslog-config.js
│   │   │   │   ā”œā”€ā”€ config.js
│   │   │   │   ā”œā”€ā”€ container.js
│   │   │   │   ā”œā”€ā”€ exception.js
│   │   │   │   ā”œā”€ā”€ logger.js
│   │   │   │   ā”œā”€ā”€ transports
│   │   │   │   │   ā”œā”€ā”€ console.js
│   │   │   │   │   ā”œā”€ā”€ file.js
│   │   │   │   │   ā”œā”€ā”€ http.js
│   │   │   │   │   ā”œā”€ā”€ memory.js
│   │   │   │   │   └── transport.js
│   │   │   │   └── transports.js
│   │   │   └── winston.js
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ async
│   │   │   │   ā”œā”€ā”€ CHANGELOG.md
│   │   │   │   ā”œā”€ā”€ LICENSE
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ all.js
│   │   │   │   ā”œā”€ā”€ allLimit.js
│   │   │   │   ā”œā”€ā”€ allSeries.js
│   │   │   │   ā”œā”€ā”€ any.js
│   │   │   │   ā”œā”€ā”€ anyLimit.js
│   │   │   │   ā”œā”€ā”€ anySeries.js
│   │   │   │   ā”œā”€ā”€ apply.js
│   │   │   │   ā”œā”€ā”€ applyEach.js
│   │   │   │   ā”œā”€ā”€ applyEachSeries.js
│   │   │   │   ā”œā”€ā”€ asyncify.js
│   │   │   │   ā”œā”€ā”€ auto.js
│   │   │   │   ā”œā”€ā”€ autoInject.js
│   │   │   │   ā”œā”€ā”€ bower.json
│   │   │   │   ā”œā”€ā”€ cargo.js
│   │   │   │   ā”œā”€ā”€ compose.js
│   │   │   │   ā”œā”€ā”€ concat.js
│   │   │   │   ā”œā”€ā”€ concatLimit.js
│   │   │   │   ā”œā”€ā”€ concatSeries.js
│   │   │   │   ā”œā”€ā”€ constant.js
│   │   │   │   ā”œā”€ā”€ detect.js
│   │   │   │   ā”œā”€ā”€ detectLimit.js
│   │   │   │   ā”œā”€ā”€ detectSeries.js
│   │   │   │   ā”œā”€ā”€ dir.js
│   │   │   │   ā”œā”€ā”€ dist
│   │   │   │   │   ā”œā”€ā”€ async.js
│   │   │   │   │   ā”œā”€ā”€ async.min.js
│   │   │   │   │   └── async.min.map
│   │   │   │   ā”œā”€ā”€ doDuring.js
│   │   │   │   ā”œā”€ā”€ doUntil.js
│   │   │   │   ā”œā”€ā”€ doWhilst.js
│   │   │   │   ā”œā”€ā”€ during.js
│   │   │   │   ā”œā”€ā”€ each.js
│   │   │   │   ā”œā”€ā”€ eachLimit.js
│   │   │   │   ā”œā”€ā”€ eachOf.js
│   │   │   │   ā”œā”€ā”€ eachOfLimit.js
│   │   │   │   ā”œā”€ā”€ eachOfSeries.js
│   │   │   │   ā”œā”€ā”€ eachSeries.js
│   │   │   │   ā”œā”€ā”€ ensureAsync.js
│   │   │   │   ā”œā”€ā”€ every.js
│   │   │   │   ā”œā”€ā”€ everyLimit.js
│   │   │   │   ā”œā”€ā”€ everySeries.js
│   │   │   │   ā”œā”€ā”€ filter.js
│   │   │   │   ā”œā”€ā”€ filterLimit.js
│   │   │   │   ā”œā”€ā”€ filterSeries.js
│   │   │   │   ā”œā”€ā”€ find.js
│   │   │   │   ā”œā”€ā”€ findLimit.js
│   │   │   │   ā”œā”€ā”€ findSeries.js
│   │   │   │   ā”œā”€ā”€ foldl.js
│   │   │   │   ā”œā”€ā”€ foldr.js
│   │   │   │   ā”œā”€ā”€ forEach.js
│   │   │   │   ā”œā”€ā”€ forEachLimit.js
│   │   │   │   ā”œā”€ā”€ forEachOf.js
│   │   │   │   ā”œā”€ā”€ forEachOfLimit.js
│   │   │   │   ā”œā”€ā”€ forEachOfSeries.js
│   │   │   │   ā”œā”€ā”€ forEachSeries.js
│   │   │   │   ā”œā”€ā”€ forever.js
│   │   │   │   ā”œā”€ā”€ groupBy.js
│   │   │   │   ā”œā”€ā”€ groupByLimit.js
│   │   │   │   ā”œā”€ā”€ groupBySeries.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ inject.js
│   │   │   │   ā”œā”€ā”€ internal
│   │   │   │   │   ā”œā”€ā”€ DoublyLinkedList.js
│   │   │   │   │   ā”œā”€ā”€ applyEach.js
│   │   │   │   │   ā”œā”€ā”€ breakLoop.js
│   │   │   │   │   ā”œā”€ā”€ consoleFunc.js
│   │   │   │   │   ā”œā”€ā”€ createTester.js
│   │   │   │   │   ā”œā”€ā”€ doLimit.js
│   │   │   │   │   ā”œā”€ā”€ doParallel.js
│   │   │   │   │   ā”œā”€ā”€ doParallelLimit.js
│   │   │   │   │   ā”œā”€ā”€ eachOfLimit.js
│   │   │   │   │   ā”œā”€ā”€ filter.js
│   │   │   │   │   ā”œā”€ā”€ findGetResult.js
│   │   │   │   │   ā”œā”€ā”€ getIterator.js
│   │   │   │   │   ā”œā”€ā”€ initialParams.js
│   │   │   │   │   ā”œā”€ā”€ iterator.js
│   │   │   │   │   ā”œā”€ā”€ map.js
│   │   │   │   │   ā”œā”€ā”€ notId.js
│   │   │   │   │   ā”œā”€ā”€ once.js
│   │   │   │   │   ā”œā”€ā”€ onlyOnce.js
│   │   │   │   │   ā”œā”€ā”€ parallel.js
│   │   │   │   │   ā”œā”€ā”€ queue.js
│   │   │   │   │   ā”œā”€ā”€ reject.js
│   │   │   │   │   ā”œā”€ā”€ setImmediate.js
│   │   │   │   │   ā”œā”€ā”€ slice.js
│   │   │   │   │   ā”œā”€ā”€ withoutIndex.js
│   │   │   │   │   └── wrapAsync.js
│   │   │   │   ā”œā”€ā”€ log.js
│   │   │   │   ā”œā”€ā”€ map.js
│   │   │   │   ā”œā”€ā”€ mapLimit.js
│   │   │   │   ā”œā”€ā”€ mapSeries.js
│   │   │   │   ā”œā”€ā”€ mapValues.js
│   │   │   │   ā”œā”€ā”€ mapValuesLimit.js
│   │   │   │   ā”œā”€ā”€ mapValuesSeries.js
│   │   │   │   ā”œā”€ā”€ memoize.js
│   │   │   │   ā”œā”€ā”€ nextTick.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   ā”œā”€ā”€ parallel.js
│   │   │   │   ā”œā”€ā”€ parallelLimit.js
│   │   │   │   ā”œā”€ā”€ priorityQueue.js
│   │   │   │   ā”œā”€ā”€ queue.js
│   │   │   │   ā”œā”€ā”€ race.js
│   │   │   │   ā”œā”€ā”€ reduce.js
│   │   │   │   ā”œā”€ā”€ reduceRight.js
│   │   │   │   ā”œā”€ā”€ reflect.js
│   │   │   │   ā”œā”€ā”€ reflectAll.js
│   │   │   │   ā”œā”€ā”€ reject.js
│   │   │   │   ā”œā”€ā”€ rejectLimit.js
│   │   │   │   ā”œā”€ā”€ rejectSeries.js
│   │   │   │   ā”œā”€ā”€ retry.js
│   │   │   │   ā”œā”€ā”€ retryable.js
│   │   │   │   ā”œā”€ā”€ select.js
│   │   │   │   ā”œā”€ā”€ selectLimit.js
│   │   │   │   ā”œā”€ā”€ selectSeries.js
│   │   │   │   ā”œā”€ā”€ seq.js
│   │   │   │   ā”œā”€ā”€ series.js
│   │   │   │   ā”œā”€ā”€ setImmediate.js
│   │   │   │   ā”œā”€ā”€ some.js
│   │   │   │   ā”œā”€ā”€ someLimit.js
│   │   │   │   ā”œā”€ā”€ someSeries.js
│   │   │   │   ā”œā”€ā”€ sortBy.js
│   │   │   │   ā”œā”€ā”€ timeout.js
│   │   │   │   ā”œā”€ā”€ times.js
│   │   │   │   ā”œā”€ā”€ timesLimit.js
│   │   │   │   ā”œā”€ā”€ timesSeries.js
│   │   │   │   ā”œā”€ā”€ transform.js
│   │   │   │   ā”œā”€ā”€ tryEach.js
│   │   │   │   ā”œā”€ā”€ unmemoize.js
│   │   │   │   ā”œā”€ā”€ until.js
│   │   │   │   ā”œā”€ā”€ waterfall.js
│   │   │   │   ā”œā”€ā”€ whilst.js
│   │   │   │   └── wrapSync.js
│   │   │   └── colors
│   │   │       ā”œā”€ā”€ .travis.yml
│   │   │       ā”œā”€ā”€ MIT-LICENSE.txt
│   │   │       ā”œā”€ā”€ ReadMe.md
│   │   │       ā”œā”€ā”€ examples
│   │   │       │   ā”œā”€ā”€ normal-usage.js
│   │   │       │   └── safe-string.js
│   │   │       ā”œā”€ā”€ lib
│   │   │       │   ā”œā”€ā”€ colors.js
│   │   │       │   ā”œā”€ā”€ custom
│   │   │       │   │   ā”œā”€ā”€ trap.js
│   │   │       │   │   └── zalgo.js
│   │   │       │   ā”œā”€ā”€ extendStringPrototype.js
│   │   │       │   ā”œā”€ā”€ index.js
│   │   │       │   ā”œā”€ā”€ maps
│   │   │       │   │   ā”œā”€ā”€ america.js
│   │   │       │   │   ā”œā”€ā”€ rainbow.js
│   │   │       │   │   ā”œā”€ā”€ random.js
│   │   │       │   │   └── zebra.js
│   │   │       │   ā”œā”€ā”€ styles.js
│   │   │       │   └── system
│   │   │       │       └── supports-colors.js
│   │   │       ā”œā”€ā”€ package.json
│   │   │       ā”œā”€ā”€ safe.js
│   │   │       ā”œā”€ā”€ screenshots
│   │   │       │   └── colors.png
│   │   │       ā”œā”€ā”€ tests
│   │   │       │   ā”œā”€ā”€ basic-test.js
│   │   │       │   └── safe-test.js
│   │   │       └── themes
│   │   │           └── generic-logging.js
│   │   ā”œā”€ā”€ package.json
│   │   └── test
│   │       ā”œā”€ā”€ helpers.js
│   │       └── transports
│   │           ā”œā”€ā”€ console-test.js
│   │           ā”œā”€ā”€ file-archive-test.js
│   │           ā”œā”€ā”€ file-maxfiles-test.js
│   │           ā”œā”€ā”€ file-maxsize-test.js
│   │           ā”œā”€ā”€ file-open-test.js
│   │           ā”œā”€ā”€ file-stress-test.js
│   │           ā”œā”€ā”€ file-tailrolling-test.js
│   │           ā”œā”€ā”€ file-test.js
│   │           ā”œā”€ā”€ http-test.js
│   │           ā”œā”€ā”€ memory-test.js
│   │           └── transport.js
│   ā”œā”€ā”€ word-wrap
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   └── package.json
│   ā”œā”€ā”€ workerd
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── workerd
│   │   ā”œā”€ā”€ install.js
│   │   ā”œā”€ā”€ lib
│   │   │   └── main.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ worker.mjs
│   │   └── workerd.capnp
│   ā”œā”€ā”€ wrangler
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin
│   │   │   └── wrangler.js
│   │   ā”œā”€ā”€ config-schema.json
│   │   ā”œā”€ā”€ kv-asset-handler.js
│   │   ā”œā”€ā”€ package.json
│   │   ā”œā”€ā”€ templates
│   │   │   ā”œā”€ā”€ __tests__
│   │   │   │   ā”œā”€ā”€ pages-dev-util.test.ts
│   │   │   │   ā”œā”€ā”€ tsconfig-sanity.ts
│   │   │   │   └── tsconfig.json
│   │   │   ā”œā”€ā”€ checked-fetch.js
│   │   │   ā”œā”€ā”€ facade.d.ts
│   │   │   ā”œā”€ā”€ init-tests
│   │   │   │   ā”œā”€ā”€ test-jest-new-worker.js
│   │   │   │   ā”œā”€ā”€ test-vitest-new-worker.js
│   │   │   │   └── test-vitest-new-worker.ts
│   │   │   ā”œā”€ā”€ middleware
│   │   │   │   ā”œā”€ā”€ common.ts
│   │   │   │   ā”œā”€ā”€ loader-modules.ts
│   │   │   │   ā”œā”€ā”€ loader-sw.ts
│   │   │   │   ā”œā”€ā”€ middleware-ensure-req-body-drained.ts
│   │   │   │   ā”œā”€ā”€ middleware-miniflare3-json-error.ts
│   │   │   │   ā”œā”€ā”€ middleware-patch-console-prefix.d.ts
│   │   │   │   ā”œā”€ā”€ middleware-patch-console-prefix.ts
│   │   │   │   ā”œā”€ā”€ middleware-pretty-error.ts
│   │   │   │   └── middleware-scheduled.ts
│   │   │   ā”œā”€ā”€ modules-watch-stub.js
│   │   │   ā”œā”€ā”€ new-worker-scheduled.js
│   │   │   ā”œā”€ā”€ new-worker-scheduled.ts
│   │   │   ā”œā”€ā”€ new-worker.js
│   │   │   ā”œā”€ā”€ new-worker.ts
│   │   │   ā”œā”€ā”€ no-op-worker.js
│   │   │   ā”œā”€ā”€ pages-dev-pipeline.ts
│   │   │   ā”œā”€ā”€ pages-dev-util.ts
│   │   │   ā”œā”€ā”€ pages-shim.ts
│   │   │   ā”œā”€ā”€ pages-template-plugin.ts
│   │   │   ā”œā”€ā”€ pages-template-worker.ts
│   │   │   ā”œā”€ā”€ remoteBindings
│   │   │   │   └── proxyServerWorker
│   │   │   │       ā”œā”€ā”€ index.ts
│   │   │   │       └── wrangler.jsonc
│   │   │   ā”œā”€ā”€ startDevWorker
│   │   │   │   ā”œā”€ā”€ InspectorProxyWorker.ts
│   │   │   │   └── ProxyWorker.ts
│   │   │   ā”œā”€ā”€ tsconfig-sanity.ts
│   │   │   ā”œā”€ā”€ tsconfig.init.json
│   │   │   └── tsconfig.json
│   │   └── wrangler-dist
│   │       ā”œā”€ā”€ InspectorProxyWorker.js
│   │       ā”œā”€ā”€ ProxyWorker.js
│   │       ā”œā”€ā”€ cli.d.ts
│   │       ā”œā”€ā”€ cli.js
│   │       └── metafile-cjs.json
│   ā”œā”€ā”€ wrap-ansi
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ wrap-ansi-cjs
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ node_modules
│   │   │   ā”œā”€ā”€ ansi-regex
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   ā”œā”€ā”€ ansi-styles
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   ā”œā”€ā”€ emoji-regex
│   │   │   │   ā”œā”€ā”€ LICENSE-MIT.txt
│   │   │   │   ā”œā”€ā”€ README.md
│   │   │   │   ā”œā”€ā”€ es2015
│   │   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   │   └── text.js
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── text.js
│   │   │   ā”œā”€ā”€ is-fullwidth-code-point
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   ā”œā”€ā”€ string-width
│   │   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ license
│   │   │   │   ā”œā”€ā”€ package.json
│   │   │   │   └── readme.md
│   │   │   └── strip-ansi
│   │   │       ā”œā”€ā”€ index.d.ts
│   │   │       ā”œā”€ā”€ index.js
│   │   │       ā”œā”€ā”€ license
│   │   │       ā”œā”€ā”€ package.json
│   │   │       └── readme.md
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ ws
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ browser.js
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ buffer-util.js
│   │   │   ā”œā”€ā”€ constants.js
│   │   │   ā”œā”€ā”€ event-target.js
│   │   │   ā”œā”€ā”€ extension.js
│   │   │   ā”œā”€ā”€ limiter.js
│   │   │   ā”œā”€ā”€ permessage-deflate.js
│   │   │   ā”œā”€ā”€ receiver.js
│   │   │   ā”œā”€ā”€ sender.js
│   │   │   ā”œā”€ā”€ stream.js
│   │   │   ā”œā”€ā”€ subprotocol.js
│   │   │   ā”œā”€ā”€ validation.js
│   │   │   ā”œā”€ā”€ websocket-server.js
│   │   │   └── websocket.js
│   │   ā”œā”€ā”€ package.json
│   │   └── wrapper.mjs
│   ā”œā”€ā”€ xml2js
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ bom.js
│   │   │   ā”œā”€ā”€ builder.js
│   │   │   ā”œā”€ā”€ defaults.js
│   │   │   ā”œā”€ā”€ parser.js
│   │   │   ā”œā”€ā”€ processors.js
│   │   │   └── xml2js.js
│   │   └── package.json
│   ā”œā”€ā”€ xmlbuilder
│   │   ā”œā”€ā”€ CHANGELOG.md
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ appveyor.yml
│   │   ā”œā”€ā”€ lib
│   │   │   ā”œā”€ā”€ Derivation.js
│   │   │   ā”œā”€ā”€ DocumentPosition.js
│   │   │   ā”œā”€ā”€ NodeType.js
│   │   │   ā”œā”€ā”€ OperationType.js
│   │   │   ā”œā”€ā”€ Utility.js
│   │   │   ā”œā”€ā”€ WriterState.js
│   │   │   ā”œā”€ā”€ XMLAttribute.js
│   │   │   ā”œā”€ā”€ XMLCData.js
│   │   │   ā”œā”€ā”€ XMLCharacterData.js
│   │   │   ā”œā”€ā”€ XMLComment.js
│   │   │   ā”œā”€ā”€ XMLDOMConfiguration.js
│   │   │   ā”œā”€ā”€ XMLDOMErrorHandler.js
│   │   │   ā”œā”€ā”€ XMLDOMImplementation.js
│   │   │   ā”œā”€ā”€ XMLDOMStringList.js
│   │   │   ā”œā”€ā”€ XMLDTDAttList.js
│   │   │   ā”œā”€ā”€ XMLDTDElement.js
│   │   │   ā”œā”€ā”€ XMLDTDEntity.js
│   │   │   ā”œā”€ā”€ XMLDTDNotation.js
│   │   │   ā”œā”€ā”€ XMLDeclaration.js
│   │   │   ā”œā”€ā”€ XMLDocType.js
│   │   │   ā”œā”€ā”€ XMLDocument.js
│   │   │   ā”œā”€ā”€ XMLDocumentCB.js
│   │   │   ā”œā”€ā”€ XMLDocumentFragment.js
│   │   │   ā”œā”€ā”€ XMLDummy.js
│   │   │   ā”œā”€ā”€ XMLElement.js
│   │   │   ā”œā”€ā”€ XMLNamedNodeMap.js
│   │   │   ā”œā”€ā”€ XMLNode.js
│   │   │   ā”œā”€ā”€ XMLNodeFilter.js
│   │   │   ā”œā”€ā”€ XMLNodeList.js
│   │   │   ā”œā”€ā”€ XMLProcessingInstruction.js
│   │   │   ā”œā”€ā”€ XMLRaw.js
│   │   │   ā”œā”€ā”€ XMLStreamWriter.js
│   │   │   ā”œā”€ā”€ XMLStringWriter.js
│   │   │   ā”œā”€ā”€ XMLStringifier.js
│   │   │   ā”œā”€ā”€ XMLText.js
│   │   │   ā”œā”€ā”€ XMLTypeInfo.js
│   │   │   ā”œā”€ā”€ XMLUserDataHandler.js
│   │   │   ā”œā”€ā”€ XMLWriterBase.js
│   │   │   └── index.js
│   │   ā”œā”€ā”€ package.json
│   │   └── typings
│   │       └── index.d.ts
│   ā”œā”€ā”€ yaml
│   │   ā”œā”€ā”€ LICENSE
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ bin.mjs
│   │   ā”œā”€ā”€ browser
│   │   │   ā”œā”€ā”€ dist
│   │   │   │   ā”œā”€ā”€ compose
│   │   │   │   │   ā”œā”€ā”€ compose-collection.js
│   │   │   │   │   ā”œā”€ā”€ compose-doc.js
│   │   │   │   │   ā”œā”€ā”€ compose-node.js
│   │   │   │   │   ā”œā”€ā”€ compose-scalar.js
│   │   │   │   │   ā”œā”€ā”€ composer.js
│   │   │   │   │   ā”œā”€ā”€ resolve-block-map.js
│   │   │   │   │   ā”œā”€ā”€ resolve-block-scalar.js
│   │   │   │   │   ā”œā”€ā”€ resolve-block-seq.js
│   │   │   │   │   ā”œā”€ā”€ resolve-end.js
│   │   │   │   │   ā”œā”€ā”€ resolve-flow-collection.js
│   │   │   │   │   ā”œā”€ā”€ resolve-flow-scalar.js
│   │   │   │   │   ā”œā”€ā”€ resolve-props.js
│   │   │   │   │   ā”œā”€ā”€ util-contains-newline.js
│   │   │   │   │   ā”œā”€ā”€ util-empty-scalar-position.js
│   │   │   │   │   ā”œā”€ā”€ util-flow-indent-check.js
│   │   │   │   │   └── util-map-includes.js
│   │   │   │   ā”œā”€ā”€ doc
│   │   │   │   │   ā”œā”€ā”€ Document.js
│   │   │   │   │   ā”œā”€ā”€ anchors.js
│   │   │   │   │   ā”œā”€ā”€ applyReviver.js
│   │   │   │   │   ā”œā”€ā”€ createNode.js
│   │   │   │   │   └── directives.js
│   │   │   │   ā”œā”€ā”€ errors.js
│   │   │   │   ā”œā”€ā”€ index.js
│   │   │   │   ā”œā”€ā”€ log.js
│   │   │   │   ā”œā”€ā”€ nodes
│   │   │   │   │   ā”œā”€ā”€ Alias.js
│   │   │   │   │   ā”œā”€ā”€ Collection.js
│   │   │   │   │   ā”œā”€ā”€ Node.js
│   │   │   │   │   ā”œā”€ā”€ Pair.js
│   │   │   │   │   ā”œā”€ā”€ Scalar.js
│   │   │   │   │   ā”œā”€ā”€ YAMLMap.js
│   │   │   │   │   ā”œā”€ā”€ YAMLSeq.js
│   │   │   │   │   ā”œā”€ā”€ addPairToJSMap.js
│   │   │   │   │   ā”œā”€ā”€ identity.js
│   │   │   │   │   └── toJS.js
│   │   │   │   ā”œā”€ā”€ parse
│   │   │   │   │   ā”œā”€ā”€ cst-scalar.js
│   │   │   │   │   ā”œā”€ā”€ cst-stringify.js
│   │   │   │   │   ā”œā”€ā”€ cst-visit.js
│   │   │   │   │   ā”œā”€ā”€ cst.js
│   │   │   │   │   ā”œā”€ā”€ lexer.js
│   │   │   │   │   ā”œā”€ā”€ line-counter.js
│   │   │   │   │   └── parser.js
│   │   │   │   ā”œā”€ā”€ public-api.js
│   │   │   │   ā”œā”€ā”€ schema
│   │   │   │   │   ā”œā”€ā”€ Schema.js
│   │   │   │   │   ā”œā”€ā”€ common
│   │   │   │   │   │   ā”œā”€ā”€ map.js
│   │   │   │   │   │   ā”œā”€ā”€ null.js
│   │   │   │   │   │   ā”œā”€ā”€ seq.js
│   │   │   │   │   │   └── string.js
│   │   │   │   │   ā”œā”€ā”€ core
│   │   │   │   │   │   ā”œā”€ā”€ bool.js
│   │   │   │   │   │   ā”œā”€ā”€ float.js
│   │   │   │   │   │   ā”œā”€ā”€ int.js
│   │   │   │   │   │   └── schema.js
│   │   │   │   │   ā”œā”€ā”€ json
│   │   │   │   │   │   └── schema.js
│   │   │   │   │   ā”œā”€ā”€ tags.js
│   │   │   │   │   └── yaml-1.1
│   │   │   │   │       ā”œā”€ā”€ binary.js
│   │   │   │   │       ā”œā”€ā”€ bool.js
│   │   │   │   │       ā”œā”€ā”€ float.js
│   │   │   │   │       ā”œā”€ā”€ int.js
│   │   │   │   │       ā”œā”€ā”€ merge.js
│   │   │   │   │       ā”œā”€ā”€ omap.js
│   │   │   │   │       ā”œā”€ā”€ pairs.js
│   │   │   │   │       ā”œā”€ā”€ schema.js
│   │   │   │   │       ā”œā”€ā”€ set.js
│   │   │   │   │       └── timestamp.js
│   │   │   │   ā”œā”€ā”€ stringify
│   │   │   │   │   ā”œā”€ā”€ foldFlowLines.js
│   │   │   │   │   ā”œā”€ā”€ stringify.js
│   │   │   │   │   ā”œā”€ā”€ stringifyCollection.js
│   │   │   │   │   ā”œā”€ā”€ stringifyComment.js
│   │   │   │   │   ā”œā”€ā”€ stringifyDocument.js
│   │   │   │   │   ā”œā”€ā”€ stringifyNumber.js
│   │   │   │   │   ā”œā”€ā”€ stringifyPair.js
│   │   │   │   │   └── stringifyString.js
│   │   │   │   ā”œā”€ā”€ util.js
│   │   │   │   └── visit.js
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── package.json
│   │   ā”œā”€ā”€ dist
│   │   │   ā”œā”€ā”€ cli.d.ts
│   │   │   ā”œā”€ā”€ cli.mjs
│   │   │   ā”œā”€ā”€ compose
│   │   │   │   ā”œā”€ā”€ compose-collection.d.ts
│   │   │   │   ā”œā”€ā”€ compose-collection.js
│   │   │   │   ā”œā”€ā”€ compose-doc.d.ts
│   │   │   │   ā”œā”€ā”€ compose-doc.js
│   │   │   │   ā”œā”€ā”€ compose-node.d.ts
│   │   │   │   ā”œā”€ā”€ compose-node.js
│   │   │   │   ā”œā”€ā”€ compose-scalar.d.ts
│   │   │   │   ā”œā”€ā”€ compose-scalar.js
│   │   │   │   ā”œā”€ā”€ composer.d.ts
│   │   │   │   ā”œā”€ā”€ composer.js
│   │   │   │   ā”œā”€ā”€ resolve-block-map.d.ts
│   │   │   │   ā”œā”€ā”€ resolve-block-map.js
│   │   │   │   ā”œā”€ā”€ resolve-block-scalar.d.ts
│   │   │   │   ā”œā”€ā”€ resolve-block-scalar.js
│   │   │   │   ā”œā”€ā”€ resolve-block-seq.d.ts
│   │   │   │   ā”œā”€ā”€ resolve-block-seq.js
│   │   │   │   ā”œā”€ā”€ resolve-end.d.ts
│   │   │   │   ā”œā”€ā”€ resolve-end.js
│   │   │   │   ā”œā”€ā”€ resolve-flow-collection.d.ts
│   │   │   │   ā”œā”€ā”€ resolve-flow-collection.js
│   │   │   │   ā”œā”€ā”€ resolve-flow-scalar.d.ts
│   │   │   │   ā”œā”€ā”€ resolve-flow-scalar.js
│   │   │   │   ā”œā”€ā”€ resolve-props.d.ts
│   │   │   │   ā”œā”€ā”€ resolve-props.js
│   │   │   │   ā”œā”€ā”€ util-contains-newline.d.ts
│   │   │   │   ā”œā”€ā”€ util-contains-newline.js
│   │   │   │   ā”œā”€ā”€ util-empty-scalar-position.d.ts
│   │   │   │   ā”œā”€ā”€ util-empty-scalar-position.js
│   │   │   │   ā”œā”€ā”€ util-flow-indent-check.d.ts
│   │   │   │   ā”œā”€ā”€ util-flow-indent-check.js
│   │   │   │   ā”œā”€ā”€ util-map-includes.d.ts
│   │   │   │   └── util-map-includes.js
│   │   │   ā”œā”€ā”€ doc
│   │   │   │   ā”œā”€ā”€ Document.d.ts
│   │   │   │   ā”œā”€ā”€ Document.js
│   │   │   │   ā”œā”€ā”€ anchors.d.ts
│   │   │   │   ā”œā”€ā”€ anchors.js
│   │   │   │   ā”œā”€ā”€ applyReviver.d.ts
│   │   │   │   ā”œā”€ā”€ applyReviver.js
│   │   │   │   ā”œā”€ā”€ createNode.d.ts
│   │   │   │   ā”œā”€ā”€ createNode.js
│   │   │   │   ā”œā”€ā”€ directives.d.ts
│   │   │   │   └── directives.js
│   │   │   ā”œā”€ā”€ errors.d.ts
│   │   │   ā”œā”€ā”€ errors.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ log.d.ts
│   │   │   ā”œā”€ā”€ log.js
│   │   │   ā”œā”€ā”€ nodes
│   │   │   │   ā”œā”€ā”€ Alias.d.ts
│   │   │   │   ā”œā”€ā”€ Alias.js
│   │   │   │   ā”œā”€ā”€ Collection.d.ts
│   │   │   │   ā”œā”€ā”€ Collection.js
│   │   │   │   ā”œā”€ā”€ Node.d.ts
│   │   │   │   ā”œā”€ā”€ Node.js
│   │   │   │   ā”œā”€ā”€ Pair.d.ts
│   │   │   │   ā”œā”€ā”€ Pair.js
│   │   │   │   ā”œā”€ā”€ Scalar.d.ts
│   │   │   │   ā”œā”€ā”€ Scalar.js
│   │   │   │   ā”œā”€ā”€ YAMLMap.d.ts
│   │   │   │   ā”œā”€ā”€ YAMLMap.js
│   │   │   │   ā”œā”€ā”€ YAMLSeq.d.ts
│   │   │   │   ā”œā”€ā”€ YAMLSeq.js
│   │   │   │   ā”œā”€ā”€ addPairToJSMap.d.ts
│   │   │   │   ā”œā”€ā”€ addPairToJSMap.js
│   │   │   │   ā”œā”€ā”€ identity.d.ts
│   │   │   │   ā”œā”€ā”€ identity.js
│   │   │   │   ā”œā”€ā”€ toJS.d.ts
│   │   │   │   └── toJS.js
│   │   │   ā”œā”€ā”€ options.d.ts
│   │   │   ā”œā”€ā”€ parse
│   │   │   │   ā”œā”€ā”€ cst-scalar.d.ts
│   │   │   │   ā”œā”€ā”€ cst-scalar.js
│   │   │   │   ā”œā”€ā”€ cst-stringify.d.ts
│   │   │   │   ā”œā”€ā”€ cst-stringify.js
│   │   │   │   ā”œā”€ā”€ cst-visit.d.ts
│   │   │   │   ā”œā”€ā”€ cst-visit.js
│   │   │   │   ā”œā”€ā”€ cst.d.ts
│   │   │   │   ā”œā”€ā”€ cst.js
│   │   │   │   ā”œā”€ā”€ lexer.d.ts
│   │   │   │   ā”œā”€ā”€ lexer.js
│   │   │   │   ā”œā”€ā”€ line-counter.d.ts
│   │   │   │   ā”œā”€ā”€ line-counter.js
│   │   │   │   ā”œā”€ā”€ parser.d.ts
│   │   │   │   └── parser.js
│   │   │   ā”œā”€ā”€ public-api.d.ts
│   │   │   ā”œā”€ā”€ public-api.js
│   │   │   ā”œā”€ā”€ schema
│   │   │   │   ā”œā”€ā”€ Schema.d.ts
│   │   │   │   ā”œā”€ā”€ Schema.js
│   │   │   │   ā”œā”€ā”€ common
│   │   │   │   │   ā”œā”€ā”€ map.d.ts
│   │   │   │   │   ā”œā”€ā”€ map.js
│   │   │   │   │   ā”œā”€ā”€ null.d.ts
│   │   │   │   │   ā”œā”€ā”€ null.js
│   │   │   │   │   ā”œā”€ā”€ seq.d.ts
│   │   │   │   │   ā”œā”€ā”€ seq.js
│   │   │   │   │   ā”œā”€ā”€ string.d.ts
│   │   │   │   │   └── string.js
│   │   │   │   ā”œā”€ā”€ core
│   │   │   │   │   ā”œā”€ā”€ bool.d.ts
│   │   │   │   │   ā”œā”€ā”€ bool.js
│   │   │   │   │   ā”œā”€ā”€ float.d.ts
│   │   │   │   │   ā”œā”€ā”€ float.js
│   │   │   │   │   ā”œā”€ā”€ int.d.ts
│   │   │   │   │   ā”œā”€ā”€ int.js
│   │   │   │   │   ā”œā”€ā”€ schema.d.ts
│   │   │   │   │   └── schema.js
│   │   │   │   ā”œā”€ā”€ json
│   │   │   │   │   ā”œā”€ā”€ schema.d.ts
│   │   │   │   │   └── schema.js
│   │   │   │   ā”œā”€ā”€ json-schema.d.ts
│   │   │   │   ā”œā”€ā”€ tags.d.ts
│   │   │   │   ā”œā”€ā”€ tags.js
│   │   │   │   ā”œā”€ā”€ types.d.ts
│   │   │   │   └── yaml-1.1
│   │   │   │       ā”œā”€ā”€ binary.d.ts
│   │   │   │       ā”œā”€ā”€ binary.js
│   │   │   │       ā”œā”€ā”€ bool.d.ts
│   │   │   │       ā”œā”€ā”€ bool.js
│   │   │   │       ā”œā”€ā”€ float.d.ts
│   │   │   │       ā”œā”€ā”€ float.js
│   │   │   │       ā”œā”€ā”€ int.d.ts
│   │   │   │       ā”œā”€ā”€ int.js
│   │   │   │       ā”œā”€ā”€ merge.d.ts
│   │   │   │       ā”œā”€ā”€ merge.js
│   │   │   │       ā”œā”€ā”€ omap.d.ts
│   │   │   │       ā”œā”€ā”€ omap.js
│   │   │   │       ā”œā”€ā”€ pairs.d.ts
│   │   │   │       ā”œā”€ā”€ pairs.js
│   │   │   │       ā”œā”€ā”€ schema.d.ts
│   │   │   │       ā”œā”€ā”€ schema.js
│   │   │   │       ā”œā”€ā”€ set.d.ts
│   │   │   │       ā”œā”€ā”€ set.js
│   │   │   │       ā”œā”€ā”€ timestamp.d.ts
│   │   │   │       └── timestamp.js
│   │   │   ā”œā”€ā”€ stringify
│   │   │   │   ā”œā”€ā”€ foldFlowLines.d.ts
│   │   │   │   ā”œā”€ā”€ foldFlowLines.js
│   │   │   │   ā”œā”€ā”€ stringify.d.ts
│   │   │   │   ā”œā”€ā”€ stringify.js
│   │   │   │   ā”œā”€ā”€ stringifyCollection.d.ts
│   │   │   │   ā”œā”€ā”€ stringifyCollection.js
│   │   │   │   ā”œā”€ā”€ stringifyComment.d.ts
│   │   │   │   ā”œā”€ā”€ stringifyComment.js
│   │   │   │   ā”œā”€ā”€ stringifyDocument.d.ts
│   │   │   │   ā”œā”€ā”€ stringifyDocument.js
│   │   │   │   ā”œā”€ā”€ stringifyNumber.d.ts
│   │   │   │   ā”œā”€ā”€ stringifyNumber.js
│   │   │   │   ā”œā”€ā”€ stringifyPair.d.ts
│   │   │   │   ā”œā”€ā”€ stringifyPair.js
│   │   │   │   ā”œā”€ā”€ stringifyString.d.ts
│   │   │   │   └── stringifyString.js
│   │   │   ā”œā”€ā”€ test-events.d.ts
│   │   │   ā”œā”€ā”€ test-events.js
│   │   │   ā”œā”€ā”€ util.d.ts
│   │   │   ā”œā”€ā”€ util.js
│   │   │   ā”œā”€ā”€ visit.d.ts
│   │   │   └── visit.js
│   │   ā”œā”€ā”€ package.json
│   │   └── util.js
│   ā”œā”€ā”€ yocto-queue
│   │   ā”œā”€ā”€ index.d.ts
│   │   ā”œā”€ā”€ index.js
│   │   ā”œā”€ā”€ license
│   │   ā”œā”€ā”€ package.json
│   │   └── readme.md
│   ā”œā”€ā”€ youch
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ build
│   │   │   ā”œā”€ā”€ chunk-3X66E37A.js
│   │   │   ā”œā”€ā”€ chunk-4L7RY2JA.js
│   │   │   ā”œā”€ā”€ chunk-4XB2BYKC.js
│   │   │   ā”œā”€ā”€ chunk-4YEN7HVQ.js
│   │   │   ā”œā”€ā”€ chunk-HFSXRSKS.js
│   │   │   ā”œā”€ā”€ chunk-JAN2TFI2.js
│   │   │   ā”œā”€ā”€ chunk-OSUFJZHZ.js
│   │   │   ā”œā”€ā”€ chunk-PINJDICN.js
│   │   │   ā”œā”€ā”€ chunk-PUHGL6HA.js
│   │   │   ā”œā”€ā”€ chunk-VE4LENUR.js
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   ā”œā”€ā”€ public
│   │   │   │   ā”œā”€ā”€ error_cause
│   │   │   │   │   └── style.css
│   │   │   │   ā”œā”€ā”€ error_info
│   │   │   │   │   └── style.css
│   │   │   │   ā”œā”€ā”€ error_stack
│   │   │   │   │   ā”œā”€ā”€ script.js
│   │   │   │   │   └── style.css
│   │   │   │   ā”œā”€ā”€ error_stack_source
│   │   │   │   │   └── style.css
│   │   │   │   ā”œā”€ā”€ header
│   │   │   │   │   ā”œā”€ā”€ script.js
│   │   │   │   │   └── style.css
│   │   │   │   └── layout
│   │   │   │       ā”œā”€ā”€ script.js
│   │   │   │       └── style.css
│   │   │   └── src
│   │   │       ā”œā”€ā”€ component.d.ts
│   │   │       ā”œā”€ā”€ helpers.d.ts
│   │   │       ā”œā”€ā”€ metadata.d.ts
│   │   │       ā”œā”€ā”€ public_dir.d.ts
│   │   │       ā”œā”€ā”€ templates
│   │   │       │   ā”œā”€ā”€ error_cause
│   │   │       │   │   ā”œā”€ā”€ main.d.ts
│   │   │       │   │   └── main.js
│   │   │       │   ā”œā”€ā”€ error_info
│   │   │       │   │   ā”œā”€ā”€ main.d.ts
│   │   │       │   │   └── main.js
│   │   │       │   ā”œā”€ā”€ error_metadata
│   │   │       │   │   ā”œā”€ā”€ main.d.ts
│   │   │       │   │   └── main.js
│   │   │       │   ā”œā”€ā”€ error_stack
│   │   │       │   │   ā”œā”€ā”€ main.d.ts
│   │   │       │   │   └── main.js
│   │   │       │   ā”œā”€ā”€ error_stack_source
│   │   │       │   │   ā”œā”€ā”€ main.d.ts
│   │   │       │   │   └── main.js
│   │   │       │   ā”œā”€ā”€ header
│   │   │       │   │   ā”œā”€ā”€ main.d.ts
│   │   │       │   │   └── main.js
│   │   │       │   └── layout
│   │   │       │       ā”œā”€ā”€ main.d.ts
│   │   │       │       └── main.js
│   │   │       ā”œā”€ā”€ templates.d.ts
│   │   │       ā”œā”€ā”€ types.d.ts
│   │   │       ā”œā”€ā”€ types.js
│   │   │       └── youch.d.ts
│   │   └── package.json
│   ā”œā”€ā”€ youch-core
│   │   ā”œā”€ā”€ LICENSE.md
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ build
│   │   │   ā”œā”€ā”€ index.d.ts
│   │   │   ā”œā”€ā”€ index.js
│   │   │   └── src
│   │   │       ā”œā”€ā”€ debug.d.ts
│   │   │       ā”œā”€ā”€ parser.d.ts
│   │   │       ā”œā”€ā”€ source_file.d.ts
│   │   │       ā”œā”€ā”€ types.d.ts
│   │   │       └── types.js
│   │   └── package.json
│   └── zod
│       ā”œā”€ā”€ LICENSE
│       ā”œā”€ā”€ README.md
│       ā”œā”€ā”€ index.d.ts
│       ā”œā”€ā”€ lib
│       │   ā”œā”€ā”€ ZodError.d.ts
│       │   ā”œā”€ā”€ ZodError.js
│       │   ā”œā”€ā”€ __tests__
│       │   │   ā”œā”€ā”€ Mocker.d.ts
│       │   │   └── Mocker.js
│       │   ā”œā”€ā”€ benchmarks
│       │   │   ā”œā”€ā”€ discriminatedUnion.d.ts
│       │   │   ā”œā”€ā”€ discriminatedUnion.js
│       │   │   ā”œā”€ā”€ index.d.ts
│       │   │   ā”œā”€ā”€ index.js
│       │   │   ā”œā”€ā”€ object.d.ts
│       │   │   ā”œā”€ā”€ object.js
│       │   │   ā”œā”€ā”€ primitives.d.ts
│       │   │   ā”œā”€ā”€ primitives.js
│       │   │   ā”œā”€ā”€ realworld.d.ts
│       │   │   ā”œā”€ā”€ realworld.js
│       │   │   ā”œā”€ā”€ string.d.ts
│       │   │   ā”œā”€ā”€ string.js
│       │   │   ā”œā”€ā”€ union.d.ts
│       │   │   └── union.js
│       │   ā”œā”€ā”€ errors.d.ts
│       │   ā”œā”€ā”€ errors.js
│       │   ā”œā”€ā”€ external.d.ts
│       │   ā”œā”€ā”€ external.js
│       │   ā”œā”€ā”€ helpers
│       │   │   ā”œā”€ā”€ enumUtil.d.ts
│       │   │   ā”œā”€ā”€ enumUtil.js
│       │   │   ā”œā”€ā”€ errorUtil.d.ts
│       │   │   ā”œā”€ā”€ errorUtil.js
│       │   │   ā”œā”€ā”€ parseUtil.d.ts
│       │   │   ā”œā”€ā”€ parseUtil.js
│       │   │   ā”œā”€ā”€ partialUtil.d.ts
│       │   │   ā”œā”€ā”€ partialUtil.js
│       │   │   ā”œā”€ā”€ typeAliases.d.ts
│       │   │   ā”œā”€ā”€ typeAliases.js
│       │   │   ā”œā”€ā”€ util.d.ts
│       │   │   └── util.js
│       │   ā”œā”€ā”€ index.d.ts
│       │   ā”œā”€ā”€ index.js
│       │   ā”œā”€ā”€ index.mjs
│       │   ā”œā”€ā”€ index.umd.js
│       │   ā”œā”€ā”€ locales
│       │   │   ā”œā”€ā”€ en.d.ts
│       │   │   └── en.js
│       │   ā”œā”€ā”€ types.d.ts
│       │   └── types.js
│       └── package.json
ā”œā”€ā”€ package-lock.json
ā”œā”€ā”€ package.json
ā”œā”€ā”€ public
│   ā”œā”€ā”€ img
│   │   ā”œā”€ā”€ .gitkeep
│   │   ā”œā”€ā”€ favicon.ico
│   │   ā”œā”€ā”€ logo.png
│   │   └── logo.svg
│   └── resume.docx
ā”œā”€ā”€ scribe.config.json.backup
ā”œā”€ā”€ scripts
│   └── fetch-community-data.js
ā”œā”€ā”€ sibyllinesoft.github.io.xml
ā”œā”€ā”€ src
│   ā”œā”€ā”€ 404.md
│   ā”œā”€ā”€ _data
│   │   ā”œā”€ā”€ authorRedirects.json
│   │   ā”œā”€ā”€ builtwith
│   │   │   ā”œā”€ā”€ -1R2-Wp5Q9.json
│   │   │   ā”œā”€ā”€ -53UFXoAUo.json
│   │   │   ā”œā”€ā”€ -ElNhyTDFi.json
│   │   │   ā”œā”€ā”€ -GrGUCOmgL.json
│   │   │   ā”œā”€ā”€ -JCVxh5uRY.json
│   │   │   ā”œā”€ā”€ -MJbR1dNrV.json
│   │   │   ā”œā”€ā”€ -NDh8VTFXj.json
│   │   │   ā”œā”€ā”€ -NaVpMNoaG.json
│   │   │   ā”œā”€ā”€ -_kUhKy8B2.json
│   │   │   ā”œā”€ā”€ -hcPTedUko.json
│   │   │   ā”œā”€ā”€ -snbSeCN3v.json
│   │   │   ā”œā”€ā”€ -uKsKvrMUG.json
│   │   │   ā”œā”€ā”€ -wxQn1yrDF.json
│   │   │   ā”œā”€ā”€ -yEypSbCjw.json
│   │   │   ā”œā”€ā”€ -zdEen-FX0.json
│   │   │   ā”œā”€ā”€ 096FWdbCaW.json
│   │   │   ā”œā”€ā”€ 09qbYz1afz.json
│   │   │   ā”œā”€ā”€ 0CWRkeHUjL.json
│   │   │   ā”œā”€ā”€ 0EWPaY4mbA.json
│   │   │   ā”œā”€ā”€ 0FgV3CGtHR.json
│   │   │   ā”œā”€ā”€ 0Ij2A9Dwjg.json
│   │   │   ā”œā”€ā”€ 0KbJ0qAeUg.json
│   │   │   ā”œā”€ā”€ 0LFLQ1rLA4.json
│   │   │   ā”œā”€ā”€ 0LnOHV0rNB.json
│   │   │   ā”œā”€ā”€ 0TE4eyDNrY.json
│   │   │   ā”œā”€ā”€ 0UPM7OE6N0.json
│   │   │   ā”œā”€ā”€ 0erRdy-GfX.json
│   │   │   ā”œā”€ā”€ 0gpqQBVisN.json
│   │   │   ā”œā”€ā”€ 0ouUWCLZck.json
│   │   │   ā”œā”€ā”€ 0r9jKY0Fxi.json
│   │   │   ā”œā”€ā”€ 0rkAZIdohR.json
│   │   │   ā”œā”€ā”€ 0tvO1znA7q.json
│   │   │   ā”œā”€ā”€ 0vsykn-rqM.json
│   │   │   ā”œā”€ā”€ 0wS7uN_Jcf.json
│   │   │   ā”œā”€ā”€ 0wVWQu-N-e.json
│   │   │   ā”œā”€ā”€ 13M-oD_Di6.json
│   │   │   ā”œā”€ā”€ 13fAyCg_cw.json
│   │   │   ā”œā”€ā”€ 13jmHZ9c2L.json
│   │   │   ā”œā”€ā”€ 18vmv6kq-f.json
│   │   │   ā”œā”€ā”€ 19_cwG8Wef.json
│   │   │   ā”œā”€ā”€ 1BEeuxdZR7.json
│   │   │   ā”œā”€ā”€ 1GP8TkFQaa.json
│   │   │   ā”œā”€ā”€ 1GikzzlBcO.json
│   │   │   ā”œā”€ā”€ 1JRXNak4aG.json
│   │   │   ā”œā”€ā”€ 1KTyEJhCmP.json
│   │   │   ā”œā”€ā”€ 1LW47vDP5I.json
│   │   │   ā”œā”€ā”€ 1QLFIC3n0M.json
│   │   │   ā”œā”€ā”€ 1R7axkHzvZ.json
│   │   │   ā”œā”€ā”€ 1S2-1tebqt.json
│   │   │   ā”œā”€ā”€ 1UC0BuNxtL.json
│   │   │   ā”œā”€ā”€ 1ZZtn6uHQq.json
│   │   │   ā”œā”€ā”€ 1bUawmcIrj.json
│   │   │   ā”œā”€ā”€ 1dr508UEB6.json
│   │   │   ā”œā”€ā”€ 1gLzR-tQk2.json
│   │   │   ā”œā”€ā”€ 1i3CNR48Oz.json
│   │   │   ā”œā”€ā”€ 1kxkYcn8xu.json
│   │   │   ā”œā”€ā”€ 1pzGn-ETIe.json
│   │   │   ā”œā”€ā”€ 1tmhMLRYh3.json
│   │   │   ā”œā”€ā”€ 1vCQNwHx3B.json
│   │   │   ā”œā”€ā”€ 1yjzDsLaxU.json
│   │   │   ā”œā”€ā”€ 1zZq1q8S7P.json
│   │   │   ā”œā”€ā”€ 21ZPcw59qI.json
│   │   │   ā”œā”€ā”€ 25gMFpKis-.json
│   │   │   ā”œā”€ā”€ 26dUFBqAOC.json
│   │   │   ā”œā”€ā”€ 2Bc46t7Hpk.json
│   │   │   ā”œā”€ā”€ 2CNtY9qk4d.json
│   │   │   ā”œā”€ā”€ 2GxfHegBEV.json
│   │   │   ā”œā”€ā”€ 2LnFRwokSj.json
│   │   │   ā”œā”€ā”€ 2PYxMViUO-.json
│   │   │   ā”œā”€ā”€ 2Scf-UEHCg.json
│   │   │   ā”œā”€ā”€ 2Sq1660bTs.json
│   │   │   ā”œā”€ā”€ 2ZUJSv8pSt.json
│   │   │   ā”œā”€ā”€ 2bfsnUGCKD.json
│   │   │   ā”œā”€ā”€ 2bu2iOjosq.json
│   │   │   ā”œā”€ā”€ 2daqVSfmyt.json
│   │   │   ā”œā”€ā”€ 2h4NRZ9N6W.json
│   │   │   ā”œā”€ā”€ 2m2fV4vsAO.json
│   │   │   ā”œā”€ā”€ 2onSKl_TeQ.json
│   │   │   ā”œā”€ā”€ 2rZbm8Jcei.json
│   │   │   ā”œā”€ā”€ 2sE7HSrPZS.json
│   │   │   ā”œā”€ā”€ 2sGjn_tvdx.json
│   │   │   ā”œā”€ā”€ 3379i5azUO.json
│   │   │   ā”œā”€ā”€ 3393jaLsSR.json
│   │   │   ā”œā”€ā”€ 34LBvPBaV0.json
│   │   │   ā”œā”€ā”€ 378pZ02Rw9.json
│   │   │   ā”œā”€ā”€ 3DaMqAixdu.json
│   │   │   ā”œā”€ā”€ 3Ep16jQ6Ey.json
│   │   │   ā”œā”€ā”€ 3H0lZQ4I1l.json
│   │   │   ā”œā”€ā”€ 3HK5D78cQi.json
│   │   │   ā”œā”€ā”€ 3IDnU-_1RL.json
│   │   │   ā”œā”€ā”€ 3JsNIqhh0v.json
│   │   │   ā”œā”€ā”€ 3KtYeCkCCV.json
│   │   │   ā”œā”€ā”€ 3PzGmNP9_g.json
│   │   │   ā”œā”€ā”€ 3S3P02fYwA.json
│   │   │   ā”œā”€ā”€ 3UarN6Tbw6.json
│   │   │   ā”œā”€ā”€ 3WQ-j5Cc7E.json
│   │   │   ā”œā”€ā”€ 3eGKFvfGN1.json
│   │   │   ā”œā”€ā”€ 3fArlCDJ3A.json
│   │   │   ā”œā”€ā”€ 3mr5NFWQwf.json
│   │   │   ā”œā”€ā”€ 3nZ-dgMA33.json
│   │   │   ā”œā”€ā”€ 3q_NYEQkUK.json
│   │   │   ā”œā”€ā”€ 3rqEMz1pVE.json
│   │   │   ā”œā”€ā”€ 4285nk-SMh.json
│   │   │   ā”œā”€ā”€ 4AZrIEOTj8.json
│   │   │   ā”œā”€ā”€ 4KEluyiXkm.json
│   │   │   ā”œā”€ā”€ 4KRf0wsHNG.json
│   │   │   ā”œā”€ā”€ 4QeRsVC2ul.json
│   │   │   ā”œā”€ā”€ 4V3uULYLKL.json
│   │   │   ā”œā”€ā”€ 4_7mDBoivw.json
│   │   │   ā”œā”€ā”€ 4aXnfmlhkF.json
│   │   │   ā”œā”€ā”€ 4d__6qT0mM.json
│   │   │   ā”œā”€ā”€ 4eOVSmBKpG.json
│   │   │   ā”œā”€ā”€ 4eTst-jur3.json
│   │   │   ā”œā”€ā”€ 4iB0EkXRNQ.json
│   │   │   ā”œā”€ā”€ 4jkPmdKBFZ.json
│   │   │   ā”œā”€ā”€ 4p-K9Saow-.json
│   │   │   ā”œā”€ā”€ 4seQh-zD_A.json
│   │   │   ā”œā”€ā”€ 4u4Hyi713W.json
│   │   │   ā”œā”€ā”€ 4vGkEtErO_.json
│   │   │   ā”œā”€ā”€ 50Qv1M8szh.json
│   │   │   ā”œā”€ā”€ 55UgO9PEnA.json
│   │   │   ā”œā”€ā”€ 59HIUBwScJ.json
│   │   │   ā”œā”€ā”€ 5AceUb4oEl.json
│   │   │   ā”œā”€ā”€ 5Bp34Da_CX.json
│   │   │   ā”œā”€ā”€ 5Fh7niXPml.json
│   │   │   ā”œā”€ā”€ 5Ho5KbUONR.json
│   │   │   ā”œā”€ā”€ 5KiXsk1kaw.json
│   │   │   ā”œā”€ā”€ 5RFHu8aSnc.json
│   │   │   ā”œā”€ā”€ 5RpM_8AnD5.json
│   │   │   ā”œā”€ā”€ 5SM4TtLNHy.json
│   │   │   ā”œā”€ā”€ 5T6MRa_2qX.json
│   │   │   ā”œā”€ā”€ 5VoJRbxDrO.json
│   │   │   ā”œā”€ā”€ 5YjGeegtue.json
│   │   │   ā”œā”€ā”€ 5b2IJdw-gQ.json
│   │   │   ā”œā”€ā”€ 5bb6fnJ2iW.json
│   │   │   ā”œā”€ā”€ 5ePEzD3Zdu.json
│   │   │   ā”œā”€ā”€ 5kn-u9RVv_.json
│   │   │   ā”œā”€ā”€ 5q-BsrNHOv.json
│   │   │   ā”œā”€ā”€ 5qS7wLloDM.json
│   │   │   ā”œā”€ā”€ 5roHY2L8wI.json
│   │   │   ā”œā”€ā”€ 5rwAv5R3Rw.json
│   │   │   ā”œā”€ā”€ 5sEegpaf66.json
│   │   │   ā”œā”€ā”€ 5u_4vgYyWh.json
│   │   │   ā”œā”€ā”€ 5uynD6Wh0k.json
│   │   │   ā”œā”€ā”€ 5vhzfDrWEZ.json
│   │   │   ā”œā”€ā”€ 5wq1ZdHmeQ.json
│   │   │   ā”œā”€ā”€ 62op4uXWXo.json
│   │   │   ā”œā”€ā”€ 67jO2cTD7f.json
│   │   │   ā”œā”€ā”€ 6AlWns5Z5D.json
│   │   │   ā”œā”€ā”€ 6AmjepZY9a.json
│   │   │   ā”œā”€ā”€ 6C-_VF5xl1.json
│   │   │   ā”œā”€ā”€ 6NRkQ1oCd6.json
│   │   │   ā”œā”€ā”€ 6QKZXTPq9q.json
│   │   │   ā”œā”€ā”€ 6T1JIv8rIP.json
│   │   │   ā”œā”€ā”€ 6UrkDOGbtb.json
│   │   │   ā”œā”€ā”€ 6X9vbdXrY5.json
│   │   │   ā”œā”€ā”€ 6_prQGPNnK.json
│   │   │   ā”œā”€ā”€ 6dhG8bKiyv.json
│   │   │   ā”œā”€ā”€ 6k9SZ5gwhC.json
│   │   │   ā”œā”€ā”€ 6lGE5FFPE4.json
│   │   │   ā”œā”€ā”€ 6pRzt62QBX.json
│   │   │   ā”œā”€ā”€ 6tIigUBnBM.json
│   │   │   ā”œā”€ā”€ 6y1gFp_JRQ.json
│   │   │   ā”œā”€ā”€ 71_y-uAUv9.json
│   │   │   ā”œā”€ā”€ 75Qw4slr1i.json
│   │   │   ā”œā”€ā”€ 79O_r7SR_H.json
│   │   │   ā”œā”€ā”€ 7DI9dhWmOx.json
│   │   │   ā”œā”€ā”€ 7EpGn89i8_.json
│   │   │   ā”œā”€ā”€ 7HqsvJ6DKD.json
│   │   │   ā”œā”€ā”€ 7KyrVb8w1v.json
│   │   │   ā”œā”€ā”€ 7OkjAw-vDB.json
│   │   │   ā”œā”€ā”€ 7RK2H9_eYS.json
│   │   │   ā”œā”€ā”€ 7Wjn_jYlkL.json
│   │   │   ā”œā”€ā”€ 7YUIwBOPv4.json
│   │   │   ā”œā”€ā”€ 7_virjLAhs.json
│   │   │   ā”œā”€ā”€ 7fkXGic5aP.json
│   │   │   ā”œā”€ā”€ 7fuy4GBWJE.json
│   │   │   ā”œā”€ā”€ 7g0-m-sJAf.json
│   │   │   ā”œā”€ā”€ 7pgK4pDlmx.json
│   │   │   ā”œā”€ā”€ 7yla3wWA8R.json
│   │   │   ā”œā”€ā”€ 83Q4-BCb7h.json
│   │   │   ā”œā”€ā”€ 83ylDESa_L.json
│   │   │   ā”œā”€ā”€ 8B7og9GuYZ.json
│   │   │   ā”œā”€ā”€ 8KhdY2euoK.json
│   │   │   ā”œā”€ā”€ 8ND0-tea8U.json
│   │   │   ā”œā”€ā”€ 8SDeJMFiMI.json
│   │   │   ā”œā”€ā”€ 8UZ0jkiNZm.json
│   │   │   ā”œā”€ā”€ 8UfedehJE9.json
│   │   │   ā”œā”€ā”€ 8XJJKnw8sF.json
│   │   │   ā”œā”€ā”€ 8Xj6PqcPam.json
│   │   │   ā”œā”€ā”€ 8ZcOmOuYX7.json
│   │   │   ā”œā”€ā”€ 8aNaqN-uBQ.json
│   │   │   ā”œā”€ā”€ 8bHO9o7Ce2.json
│   │   │   ā”œā”€ā”€ 8dunrHKRAt.json
│   │   │   ā”œā”€ā”€ 8ggirG5lso.json
│   │   │   ā”œā”€ā”€ 8gh4kXi9WT.json
│   │   │   ā”œā”€ā”€ 8i52FVqhBD.json
│   │   │   ā”œā”€ā”€ 8iC_rva2jp.json
│   │   │   ā”œā”€ā”€ 8mzbBdehS0.json
│   │   │   ā”œā”€ā”€ 8o0My83ngG.json
│   │   │   ā”œā”€ā”€ 8pizDMvKYF.json
│   │   │   ā”œā”€ā”€ 8qmml8X86R.json
│   │   │   ā”œā”€ā”€ 8r8tvPMZR5.json
│   │   │   ā”œā”€ā”€ 8rFuf7y-FH.json
│   │   │   ā”œā”€ā”€ 8tWnzlZ_Ga.json
│   │   │   ā”œā”€ā”€ 92BwhXiVR1.json
│   │   │   ā”œā”€ā”€ 98ouQU0YGy.json
│   │   │   ā”œā”€ā”€ 99S5H0clEP.json
│   │   │   ā”œā”€ā”€ 9IEeAYiN2r.json
│   │   │   ā”œā”€ā”€ 9KEAgIpCYp.json
│   │   │   ā”œā”€ā”€ 9LEDbf2zMm.json
│   │   │   ā”œā”€ā”€ 9UzZuS93Yv.json
│   │   │   ā”œā”€ā”€ 9VCkmXkhmQ.json
│   │   │   ā”œā”€ā”€ 9XF794fKpC.json
│   │   │   ā”œā”€ā”€ 9_g3BvzDG1.json
│   │   │   ā”œā”€ā”€ 9a9SBB7NMi.json
│   │   │   ā”œā”€ā”€ 9dSArvHZgz.json
│   │   │   ā”œā”€ā”€ 9dfVroyhkI.json
│   │   │   ā”œā”€ā”€ 9dyg97WzSj.json
│   │   │   ā”œā”€ā”€ 9jkBOMzhsu.json
│   │   │   ā”œā”€ā”€ 9tigQLTEE3.json
│   │   │   ā”œā”€ā”€ 9vFILxYjF0.json
│   │   │   ā”œā”€ā”€ 9weMhq6hGy.json
│   │   │   ā”œā”€ā”€ 9zGeMLgUaQ.json
│   │   │   ā”œā”€ā”€ 9zU3-SsJkz.json
│   │   │   ā”œā”€ā”€ A1n3moMIHX.json
│   │   │   ā”œā”€ā”€ A2VghCZUpH.json
│   │   │   ā”œā”€ā”€ A46-vkkau4.json
│   │   │   ā”œā”€ā”€ A9PTqWY-Ow.json
│   │   │   ā”œā”€ā”€ ACjnVSJCG7.json
│   │   │   ā”œā”€ā”€ AG_pQ2qfy_.json
│   │   │   ā”œā”€ā”€ AGnioduB5j.json
│   │   │   ā”œā”€ā”€ AISl84UTtC.json
│   │   │   ā”œā”€ā”€ APmfDyOlR9.json
│   │   │   ā”œā”€ā”€ AV2KuGTfmL.json
│   │   │   ā”œā”€ā”€ AVlQjLWR34.json
│   │   │   ā”œā”€ā”€ AbNyJsnlMV.json
│   │   │   ā”œā”€ā”€ AfgvYt0UGZ.json
│   │   │   ā”œā”€ā”€ Aj6eijieP2.json
│   │   │   ā”œā”€ā”€ AjIObblcQw.json
│   │   │   ā”œā”€ā”€ Ajj9qZF654.json
│   │   │   ā”œā”€ā”€ Awg8yFe9uS.json
│   │   │   ā”œā”€ā”€ Axz9xFR77v.json
│   │   │   ā”œā”€ā”€ B0Asf57vnr.json
│   │   │   ā”œā”€ā”€ B6lKKzrD1G.json
│   │   │   ā”œā”€ā”€ BCU3uHFRpK.json
│   │   │   ā”œā”€ā”€ BDAlqWW3xW.json
│   │   │   ā”œā”€ā”€ BI9ziHlF9h.json
│   │   │   ā”œā”€ā”€ BJ8zC7WZDi.json
│   │   │   ā”œā”€ā”€ BK52kP8EiM.json
│   │   │   ā”œā”€ā”€ BLH46WCXWb.json
│   │   │   ā”œā”€ā”€ BMfxL_9MyL.json
│   │   │   ā”œā”€ā”€ BNLdNYNgR2.json
│   │   │   ā”œā”€ā”€ BTPDLxbPqN.json
│   │   │   ā”œā”€ā”€ BVJLiZL1WK.json
│   │   │   ā”œā”€ā”€ BXTIrlY73z.json
│   │   │   ā”œā”€ā”€ BfuLVGxCv6.json
│   │   │   ā”œā”€ā”€ BhIPjwt0ff.json
│   │   │   ā”œā”€ā”€ BiOnBGIfgg.json
│   │   │   ā”œā”€ā”€ Bi_moW9q4e.json
│   │   │   ā”œā”€ā”€ BptbDLTpHy.json
│   │   │   ā”œā”€ā”€ BqPEnsCkd1.json
│   │   │   ā”œā”€ā”€ Br46TrtRxH.json
│   │   │   ā”œā”€ā”€ BsnPOUFwsg.json
│   │   │   ā”œā”€ā”€ BvSQmZAwO7.json
│   │   │   ā”œā”€ā”€ C-uuHswR48.json
│   │   │   ā”œā”€ā”€ C0S0jCcFCd.json
│   │   │   ā”œā”€ā”€ C0WtCQPyHm.json
│   │   │   ā”œā”€ā”€ C76-z_ADd5.json
│   │   │   ā”œā”€ā”€ CC3z9bdLuf.json
│   │   │   ā”œā”€ā”€ CO7VkQmXZS.json
│   │   │   ā”œā”€ā”€ COjfO19l2A.json
│   │   │   ā”œā”€ā”€ CQCFD0ZslI.json
│   │   │   ā”œā”€ā”€ CRIKyx2oXv.json
│   │   │   ā”œā”€ā”€ CXXj2QsCsB.json
│   │   │   ā”œā”€ā”€ CdLvEOa13o.json
│   │   │   ā”œā”€ā”€ ChjYLSfP0V.json
│   │   │   ā”œā”€ā”€ Cm5qm0hECq.json
│   │   │   ā”œā”€ā”€ CmkxBLad_x.json
│   │   │   ā”œā”€ā”€ CqMi1lcVuD.json
│   │   │   ā”œā”€ā”€ Cur_hRMa9B.json
│   │   │   ā”œā”€ā”€ CwNrc2SZ4G.json
│   │   │   ā”œā”€ā”€ Cysmv30Xla.json
│   │   │   ā”œā”€ā”€ D0tphWA3ig.json
│   │   │   ā”œā”€ā”€ D3c5yf8KvU.json
│   │   │   ā”œā”€ā”€ DBn8cSFLJE.json
│   │   │   ā”œā”€ā”€ DDCJ0Er1Ck.json
│   │   │   ā”œā”€ā”€ DH9uRUeznD.json
│   │   │   ā”œā”€ā”€ DIQG_6HNwB.json
│   │   │   ā”œā”€ā”€ DIrZ317U18.json
│   │   │   ā”œā”€ā”€ DJZtrCOegj.json
│   │   │   ā”œā”€ā”€ DJe_0f4BvJ.json
│   │   │   ā”œā”€ā”€ DLl3ThRpNd.json
│   │   │   ā”œā”€ā”€ DZaPKW6WBI.json
│   │   │   ā”œā”€ā”€ DZhBvcajj1.json
│   │   │   ā”œā”€ā”€ DZo5NHnY_s.json
│   │   │   ā”œā”€ā”€ DcI4tPF2nI.json
│   │   │   ā”œā”€ā”€ DfebfzGdie.json
│   │   │   ā”œā”€ā”€ Dgy2syDq-s.json
│   │   │   ā”œā”€ā”€ Dgzv2qI2Ql.json
│   │   │   ā”œā”€ā”€ Dl_vlVoANt.json
│   │   │   ā”œā”€ā”€ Do8WNEhzs_.json
│   │   │   ā”œā”€ā”€ DvghmGvuIg.json
│   │   │   ā”œā”€ā”€ E1YagrcmFi.json
│   │   │   ā”œā”€ā”€ E2eCay5NXp.json
│   │   │   ā”œā”€ā”€ E2xqpyY9fk.json
│   │   │   ā”œā”€ā”€ E6654JxGaF.json
│   │   │   ā”œā”€ā”€ E6CQwNSlEi.json
│   │   │   ā”œā”€ā”€ E6LcPUj6IP.json
│   │   │   ā”œā”€ā”€ E7HR2uXkOS.json
│   │   │   ā”œā”€ā”€ ECIPS3EbQN.json
│   │   │   ā”œā”€ā”€ EE0Dfd51c1.json
│   │   │   ā”œā”€ā”€ ELrV-mRXC1.json
│   │   │   ā”œā”€ā”€ EQXHVprlfb.json
│   │   │   ā”œā”€ā”€ EVYG58h2GO.json
│   │   │   ā”œā”€ā”€ EVvSe8xEx0.json
│   │   │   ā”œā”€ā”€ EdZChaNera.json
│   │   │   ā”œā”€ā”€ EdxAPWrOwU.json
│   │   │   ā”œā”€ā”€ Eg9WXuA2tI.json
│   │   │   ā”œā”€ā”€ EiyyLoCTAe.json
│   │   │   ā”œā”€ā”€ Eo0BktKZx-.json
│   │   │   ā”œā”€ā”€ EpOQvfBL8m.json
│   │   │   ā”œā”€ā”€ EqwtTlk3yo.json
│   │   │   ā”œā”€ā”€ EzZrv9EfZB.json
│   │   │   ā”œā”€ā”€ F3SXOVpoXb.json
│   │   │   ā”œā”€ā”€ F5mhK5C87G.json
│   │   │   ā”œā”€ā”€ F8GEIPM1CT.json
│   │   │   ā”œā”€ā”€ FA-q34CCIg.json
│   │   │   ā”œā”€ā”€ FFW_xLH4Yu.json
│   │   │   ā”œā”€ā”€ FHYlAvHyKt.json
│   │   │   ā”œā”€ā”€ FKat9RSE8T.json
│   │   │   ā”œā”€ā”€ FM7I1nGKco.json
│   │   │   ā”œā”€ā”€ FO8y8oEhEo.json
│   │   │   ā”œā”€ā”€ FQWZ-McpOY.json
│   │   │   ā”œā”€ā”€ Fab9496fHS.json
│   │   │   ā”œā”€ā”€ FawmNwuVvk.json
│   │   │   ā”œā”€ā”€ FjGlapRUrD.json
│   │   │   ā”œā”€ā”€ FlF1hGRXLy.json
│   │   │   ā”œā”€ā”€ Fxg5X3ozWB.json
│   │   │   ā”œā”€ā”€ FyGT3sZjf5.json
│   │   │   ā”œā”€ā”€ FyxRtnf-tD.json
│   │   │   ā”œā”€ā”€ G2bgcbhjj9.json
│   │   │   ā”œā”€ā”€ G5rv7C_Dg9.json
│   │   │   ā”œā”€ā”€ G9g3Lt-h-y.json
│   │   │   ā”œā”€ā”€ GLIuLc2aHj.json
│   │   │   ā”œā”€ā”€ GLJjLd5q_M.json
│   │   │   ā”œā”€ā”€ GLv-XcNAW6.json
│   │   │   ā”œā”€ā”€ GN1uzUEuV7.json
│   │   │   ā”œā”€ā”€ GaE-MlPBHD.json
│   │   │   ā”œā”€ā”€ GcuFOHyDGj.json
│   │   │   ā”œā”€ā”€ GdXetenMER.json
│   │   │   ā”œā”€ā”€ GhPhiyhISq.json
│   │   │   ā”œā”€ā”€ GjLIMy9acL.json
│   │   │   ā”œā”€ā”€ GuMg9ozCV_.json
│   │   │   ā”œā”€ā”€ GuY-su6EmL.json
│   │   │   ā”œā”€ā”€ Gwl4sYcC7e.json
│   │   │   ā”œā”€ā”€ H4xjaajWza.json
│   │   │   ā”œā”€ā”€ H5r_1WQhq2.json
│   │   │   ā”œā”€ā”€ H8Uv4F7pkT.json
│   │   │   ā”œā”€ā”€ HGJsshQVpe.json
│   │   │   ā”œā”€ā”€ HGdZLIph7z.json
│   │   │   ā”œā”€ā”€ HKSivOsQzI.json
│   │   │   ā”œā”€ā”€ HTVnFG3ulF.json
│   │   │   ā”œā”€ā”€ HUYIqoZawu.json
│   │   │   ā”œā”€ā”€ HUvv8aUgTB.json
│   │   │   ā”œā”€ā”€ HW5ij-yylC.json
│   │   │   ā”œā”€ā”€ HW70ao3tcA.json
│   │   │   ā”œā”€ā”€ HdKBneLUfN.json
│   │   │   ā”œā”€ā”€ HjivvcfHPR.json
│   │   │   ā”œā”€ā”€ HkYV1EpzEP.json
│   │   │   ā”œā”€ā”€ Hpgu5iakIn.json
│   │   │   ā”œā”€ā”€ HtEWPnseeO.json
│   │   │   ā”œā”€ā”€ I4QuhKUuuN.json
│   │   │   ā”œā”€ā”€ I4zOs4ZOBx.json
│   │   │   ā”œā”€ā”€ I5Egt6pfLM.json
│   │   │   ā”œā”€ā”€ I5NLf0w_w4.json
│   │   │   ā”œā”€ā”€ I68BquAlZ4.json
│   │   │   ā”œā”€ā”€ I8O4Kfb8VS.json
│   │   │   ā”œā”€ā”€ I8gQ51thL2.json
│   │   │   ā”œā”€ā”€ IC62HPxeIV.json
│   │   │   ā”œā”€ā”€ ICFNffPzBG.json
│   │   │   ā”œā”€ā”€ II8FO7R-mS.json
│   │   │   ā”œā”€ā”€ IOiQpOZ5Fl.json
│   │   │   ā”œā”€ā”€ IP0rMzrXj0.json
│   │   │   ā”œā”€ā”€ IQEYo0JgKC.json
│   │   │   ā”œā”€ā”€ IZSom_mWYt.json
│   │   │   ā”œā”€ā”€ IdS-6hDDla.json
│   │   │   ā”œā”€ā”€ IeMhY806Ul.json
│   │   │   ā”œā”€ā”€ IgywWFQAL7.json
│   │   │   ā”œā”€ā”€ Ihsz_nnuFT.json
│   │   │   ā”œā”€ā”€ IkcvsNr-LO.json
│   │   │   ā”œā”€ā”€ IljcVg-w4b.json
│   │   │   ā”œā”€ā”€ IpCw5QKP3z.json
│   │   │   ā”œā”€ā”€ It6CuRj2Y6.json
│   │   │   ā”œā”€ā”€ IuR7wdtYyr.json
│   │   │   ā”œā”€ā”€ IvVepfr1rg.json
│   │   │   ā”œā”€ā”€ Iw3fDmhuHU.json
│   │   │   ā”œā”€ā”€ J2v0fYasYx.json
│   │   │   ā”œā”€ā”€ J4NrDJ9PLD.json
│   │   │   ā”œā”€ā”€ J4qPs3rt3Z.json
│   │   │   ā”œā”€ā”€ J6LIMoVY-s.json
│   │   │   ā”œā”€ā”€ JClHmxgnEM.json
│   │   │   ā”œā”€ā”€ JIjWPsP9ZS.json
│   │   │   ā”œā”€ā”€ JMcPkXB7fl.json
│   │   │   ā”œā”€ā”€ JO1_awDXC3.json
│   │   │   ā”œā”€ā”€ JThUuaya_7.json
│   │   │   ā”œā”€ā”€ JWuG0I4cXK.json
│   │   │   ā”œā”€ā”€ JXQC3HYDzv.json
│   │   │   ā”œā”€ā”€ JYJaJ-o4uz.json
│   │   │   ā”œā”€ā”€ J__WfO-tl_.json
│   │   │   ā”œā”€ā”€ JaXpP8y4vt.json
│   │   │   ā”œā”€ā”€ JkMl0acN7d.json
│   │   │   ā”œā”€ā”€ JlWdV3luAB.json
│   │   │   ā”œā”€ā”€ JqimhSNaZM.json
│   │   │   ā”œā”€ā”€ JqqHdeYnmr.json
│   │   │   ā”œā”€ā”€ JsDDIKGDhC.json
│   │   │   ā”œā”€ā”€ JsUq1Ovdl4.json
│   │   │   ā”œā”€ā”€ JxrKnlSWq2.json
│   │   │   ā”œā”€ā”€ K2MQddkQXE.json
│   │   │   ā”œā”€ā”€ K3Rnvq7Lc7.json
│   │   │   ā”œā”€ā”€ K8O34hreBA.json
│   │   │   ā”œā”€ā”€ KBo98OsXho.json
│   │   │   ā”œā”€ā”€ KKfwxURVBL.json
│   │   │   ā”œā”€ā”€ KNTfCzNw2o.json
│   │   │   ā”œā”€ā”€ KQZG8qsOYY.json
│   │   │   ā”œā”€ā”€ KQo9_tCorK.json
│   │   │   ā”œā”€ā”€ KiV8oDPjrX.json
│   │   │   ā”œā”€ā”€ KwoFDY9KpF.json
│   │   │   ā”œā”€ā”€ L90qUAtMjR.json
│   │   │   ā”œā”€ā”€ L9CAqew7sY.json
│   │   │   ā”œā”€ā”€ LChfoEt4cb.json
│   │   │   ā”œā”€ā”€ LGOFgA9txe.json
│   │   │   ā”œā”€ā”€ LH01PdMtl-.json
│   │   │   ā”œā”€ā”€ LIKPwnvEGV.json
│   │   │   ā”œā”€ā”€ LQ8pbLHdQj.json
│   │   │   ā”œā”€ā”€ LS8ALFR0pa.json
│   │   │   ā”œā”€ā”€ LSFpzIlZR_.json
│   │   │   ā”œā”€ā”€ LU9gzPoi0o.json
│   │   │   ā”œā”€ā”€ LUdUppOci6.json
│   │   │   ā”œā”€ā”€ LUjKFsSjCy.json
│   │   │   ā”œā”€ā”€ LVbYJ412aL.json
│   │   │   ā”œā”€ā”€ LaU34ktbfn.json
│   │   │   ā”œā”€ā”€ LeT4Rt8fXy.json
│   │   │   ā”œā”€ā”€ LmbURB_8Wh.json
│   │   │   ā”œā”€ā”€ LoCCHj-IDJ.json
│   │   │   ā”œā”€ā”€ Lofjy9_v-z.json
│   │   │   ā”œā”€ā”€ LpjEhCzW0x.json
│   │   │   ā”œā”€ā”€ LxFcQNrFgD.json
│   │   │   ā”œā”€ā”€ LzOJypjQxB.json
│   │   │   ā”œā”€ā”€ M1Y1Za2QZj.json
│   │   │   ā”œā”€ā”€ M6gJe-jb_S.json
│   │   │   ā”œā”€ā”€ MA6C93KsQy.json
│   │   │   ā”œā”€ā”€ MArtsfX2hZ.json
│   │   │   ā”œā”€ā”€ MCLjCPhEVg.json
│   │   │   ā”œā”€ā”€ MDWpUGadpF.json
│   │   │   ā”œā”€ā”€ MGaX3dB_NH.json
│   │   │   ā”œā”€ā”€ MIns-RUYHE.json
│   │   │   ā”œā”€ā”€ MMCJFYxWxC.json
│   │   │   ā”œā”€ā”€ MPUGLVRwwU.json
│   │   │   ā”œā”€ā”€ MWQMMOyhSS.json
│   │   │   ā”œā”€ā”€ MXUhM_MbMA.json
│   │   │   ā”œā”€ā”€ MXVl0Dr4tS.json
│   │   │   ā”œā”€ā”€ Mo7AhLHHbY.json
│   │   │   ā”œā”€ā”€ Mxt3b2OvTC.json
│   │   │   ā”œā”€ā”€ MzU4-h4-vp.json
│   │   │   ā”œā”€ā”€ N0T314HR_G.json
│   │   │   ā”œā”€ā”€ NCLpeNDQL7.json
│   │   │   ā”œā”€ā”€ NHf8nNXk33.json
│   │   │   ā”œā”€ā”€ NPz2U0NzEA.json
│   │   │   ā”œā”€ā”€ NQlsyQLNN6.json
│   │   │   ā”œā”€ā”€ NT0KDDQA4v.json
│   │   │   ā”œā”€ā”€ NVsxCJiMJy.json
│   │   │   ā”œā”€ā”€ Nc4Eaz_z4i.json
│   │   │   ā”œā”€ā”€ NeLi-C9ouA.json
│   │   │   ā”œā”€ā”€ Nf8spDRmqY.json
│   │   │   ā”œā”€ā”€ NkBIvWCX3b.json
│   │   │   ā”œā”€ā”€ NnCeg4yiT3.json
│   │   │   ā”œā”€ā”€ NndXBdDUKB.json
│   │   │   ā”œā”€ā”€ NpGd2ibi2i.json
│   │   │   ā”œā”€ā”€ NpmouwI95_.json
│   │   │   ā”œā”€ā”€ NrBdNlqp7H.json
│   │   │   ā”œā”€ā”€ NxDzISgY3l.json
│   │   │   ā”œā”€ā”€ NylyfbeNZ6.json
│   │   │   ā”œā”€ā”€ O-CiJbYgKL.json
│   │   │   ā”œā”€ā”€ O1xyRW_pzi.json
│   │   │   ā”œā”€ā”€ O3kqSeOKFb.json
│   │   │   ā”œā”€ā”€ O7BkII3Wjq.json
│   │   │   ā”œā”€ā”€ OOGEYjgLgW.json
│   │   │   ā”œā”€ā”€ OQd_ZwINSp.json
│   │   │   ā”œā”€ā”€ O_06i1R6sA.json
│   │   │   ā”œā”€ā”€ Obj18sU5MP.json
│   │   │   ā”œā”€ā”€ OkfaarPt1t.json
│   │   │   ā”œā”€ā”€ OmNDB-bobn.json
│   │   │   ā”œā”€ā”€ Onq2XKsODS.json
│   │   │   ā”œā”€ā”€ Oo7QgBP5-u.json
│   │   │   ā”œā”€ā”€ OohRYQlPh8.json
│   │   │   ā”œā”€ā”€ OrcCpvHvaJ.json
│   │   │   ā”œā”€ā”€ OtdpryhIWk.json
│   │   │   ā”œā”€ā”€ P0NA0IGcAz.json
│   │   │   ā”œā”€ā”€ P0p4jIxuQH.json
│   │   │   ā”œā”€ā”€ P1sFsaK4M9.json
│   │   │   ā”œā”€ā”€ P2JA_gfICX.json
│   │   │   ā”œā”€ā”€ P3pToCsKJh.json
│   │   │   ā”œā”€ā”€ PCC6wfMTnE.json
│   │   │   ā”œā”€ā”€ PH73cN4nmy.json
│   │   │   ā”œā”€ā”€ PI1qbvOjVt.json
│   │   │   ā”œā”€ā”€ PIFu8J4xdN.json
│   │   │   ā”œā”€ā”€ PRp7cuiDTb.json
│   │   │   ā”œā”€ā”€ PThNLTA0nJ.json
│   │   │   ā”œā”€ā”€ PUsjyiJhM5.json
│   │   │   ā”œā”€ā”€ PVV7IAZxEx.json
│   │   │   ā”œā”€ā”€ PWFDtBncD0.json
│   │   │   ā”œā”€ā”€ PWsaRwri7D.json
│   │   │   ā”œā”€ā”€ PWsytgMybl.json
│   │   │   ā”œā”€ā”€ PbEmVCjt-9.json
│   │   │   ā”œā”€ā”€ PhcVD8FFCo.json
│   │   │   ā”œā”€ā”€ Pi2NMJsP-Z.json
│   │   │   ā”œā”€ā”€ Pi9_34mnwS.json
│   │   │   ā”œā”€ā”€ Pnb865Vw28.json
│   │   │   ā”œā”€ā”€ Pty7H3TiP8.json
│   │   │   ā”œā”€ā”€ PwIt7am4Ak.json
│   │   │   ā”œā”€ā”€ PwOsqNhrCw.json
│   │   │   ā”œā”€ā”€ PypdQqPOXG.json
│   │   │   ā”œā”€ā”€ Q-Xku_vQSn.json
│   │   │   ā”œā”€ā”€ Q-skbWhvtz.json
│   │   │   ā”œā”€ā”€ Q3cHjNtRSi.json
│   │   │   ā”œā”€ā”€ Q9HLTxNJx1.json
│   │   │   ā”œā”€ā”€ QCaFxcArEd.json
│   │   │   ā”œā”€ā”€ QFYycXpHeC.json
│   │   │   ā”œā”€ā”€ QJMuyg1_6N.json
│   │   │   ā”œā”€ā”€ QNyLUyppAM.json
│   │   │   ā”œā”€ā”€ QOa8hRV-K1.json
│   │   │   ā”œā”€ā”€ QR77hVJd8t.json
│   │   │   ā”œā”€ā”€ QV88Stof71.json
│   │   │   ā”œā”€ā”€ QVrK00Koak.json
│   │   │   ā”œā”€ā”€ QgVgijCSxI.json
│   │   │   ā”œā”€ā”€ QgqyeKT3T6.json
│   │   │   ā”œā”€ā”€ QhuV_q4Era.json
│   │   │   ā”œā”€ā”€ Qj48sizvds.json
│   │   │   ā”œā”€ā”€ QreJdyArcL.json
│   │   │   ā”œā”€ā”€ R6E4cnY89U.json
│   │   │   ā”œā”€ā”€ R8vCye4sip.json
│   │   │   ā”œā”€ā”€ RA07QQ4d4n.json
│   │   │   ā”œā”€ā”€ RIRM16I2H1.json
│   │   │   ā”œā”€ā”€ RP3cAT4Apv.json
│   │   │   ā”œā”€ā”€ RPr873L9hh.json
│   │   │   ā”œā”€ā”€ RROjr6KoXZ.json
│   │   │   ā”œā”€ā”€ RSnLFfJhVT.json
│   │   │   ā”œā”€ā”€ RTofNwG6Gd.json
│   │   │   ā”œā”€ā”€ RYqMd9Ak-Y.json
│   │   │   ā”œā”€ā”€ RYyJnZgb2D.json
│   │   │   ā”œā”€ā”€ RdzANACoy9.json
│   │   │   ā”œā”€ā”€ RfbigOALH_.json
│   │   │   ā”œā”€ā”€ Rfm63xRt0n.json
│   │   │   ā”œā”€ā”€ RhPrZHFqVn.json
│   │   │   ā”œā”€ā”€ RmF1Yf7p9W.json
│   │   │   ā”œā”€ā”€ RpcVscODcO.json
│   │   │   ā”œā”€ā”€ Rqi_0JohG6.json
│   │   │   ā”œā”€ā”€ RrhdBGRzFS.json
│   │   │   ā”œā”€ā”€ S-MKt9LCbj.json
│   │   │   ā”œā”€ā”€ S3FixdkeNV.json
│   │   │   ā”œā”€ā”€ S5HwD0udH6.json
│   │   │   ā”œā”€ā”€ S7BkKWMx-y.json
│   │   │   ā”œā”€ā”€ SBSFwwOuKo.json
│   │   │   ā”œā”€ā”€ SGbAj8p8Fz.json
│   │   │   ā”œā”€ā”€ SGtnleMxWq.json
│   │   │   ā”œā”€ā”€ SHlPMT6UP0.json
│   │   │   ā”œā”€ā”€ SMnb7N3o5U.json
│   │   │   ā”œā”€ā”€ SPH71Pw821.json
│   │   │   ā”œā”€ā”€ SSpV9HSXBX.json
│   │   │   ā”œā”€ā”€ STNCBNuhJW.json
│   │   │   ā”œā”€ā”€ STPDMCgDV-.json
│   │   │   ā”œā”€ā”€ STUEfHknQq.json
│   │   │   ā”œā”€ā”€ SfEXWWtYVp.json
│   │   │   ā”œā”€ā”€ SlQcMnraL2.json
│   │   │   ā”œā”€ā”€ SmXGsDQtZQ.json
│   │   │   ā”œā”€ā”€ SnTXZs4dRe.json
│   │   │   ā”œā”€ā”€ Sp-jjITsNe.json
│   │   │   ā”œā”€ā”€ Srucq8iaWl.json
│   │   │   ā”œā”€ā”€ SvsIdfbU1b.json
│   │   │   ā”œā”€ā”€ SzpT5TFOsU.json
│   │   │   ā”œā”€ā”€ T-GpgilbVQ.json
│   │   │   ā”œā”€ā”€ T10dQTT-b5.json
│   │   │   ā”œā”€ā”€ T1l_7B2T1Q.json
│   │   │   ā”œā”€ā”€ T2YxGLEYgh.json
│   │   │   ā”œā”€ā”€ T38IbSRunC.json
│   │   │   ā”œā”€ā”€ T8lK-Kvwbe.json
│   │   │   ā”œā”€ā”€ TCOC_so5BY.json
│   │   │   ā”œā”€ā”€ TDACmTnSwz.json
│   │   │   ā”œā”€ā”€ TI7W3TF87M.json
│   │   │   ā”œā”€ā”€ TMDb8XPmeB.json
│   │   │   ā”œā”€ā”€ TM_kJpKdeV.json
│   │   │   ā”œā”€ā”€ TPRGHBoOui.json
│   │   │   ā”œā”€ā”€ TPhltN-5hv.json
│   │   │   ā”œā”€ā”€ TPkDiMCOSM.json
│   │   │   ā”œā”€ā”€ TTJNt15DVJ.json
│   │   │   ā”œā”€ā”€ TUUcL6m783.json
│   │   │   ā”œā”€ā”€ TUc6d4yQP_.json
│   │   │   ā”œā”€ā”€ TUsVJeIOuh.json
│   │   │   ā”œā”€ā”€ TWbpR6XmAZ.json
│   │   │   ā”œā”€ā”€ TXN0EiMkZ9.json
│   │   │   ā”œā”€ā”€ T_B7AOs1bq.json
│   │   │   ā”œā”€ā”€ Tc1QH0muE-.json
│   │   │   ā”œā”€ā”€ TilgT0XquZ.json
│   │   │   ā”œā”€ā”€ Tn8TGryy4v.json
│   │   │   ā”œā”€ā”€ TnNiiAsoNd.json
│   │   │   ā”œā”€ā”€ Ttndbnw5mD.json
│   │   │   ā”œā”€ā”€ TwBa_10Mdp.json
│   │   │   ā”œā”€ā”€ U0_an6aS42.json
│   │   │   ā”œā”€ā”€ U0zBX5oT5R.json
│   │   │   ā”œā”€ā”€ U4DDyIM3uU.json
│   │   │   ā”œā”€ā”€ U5RNEuGMRR.json
│   │   │   ā”œā”€ā”€ UAwfVhhaN0.json
│   │   │   ā”œā”€ā”€ UFOD6czw97.json
│   │   │   ā”œā”€ā”€ UMSmm5UkNS.json
│   │   │   ā”œā”€ā”€ UNftNP3P_7.json
│   │   │   ā”œā”€ā”€ UOLYKURA9t.json
│   │   │   ā”œā”€ā”€ UPBbghq73j.json
│   │   │   ā”œā”€ā”€ UQVOutuDqD.json
│   │   │   ā”œā”€ā”€ UWTN4AAwXe.json
│   │   │   ā”œā”€ā”€ UXfrIDY6Uy.json
│   │   │   ā”œā”€ā”€ UYlC3Jdye0.json
│   │   │   ā”œā”€ā”€ UbEcm0rxzd.json
│   │   │   ā”œā”€ā”€ Ubmau7iVJL.json
│   │   │   ā”œā”€ā”€ UdjLMAwPeJ.json
│   │   │   ā”œā”€ā”€ UeW4Dzugx0.json
│   │   │   ā”œā”€ā”€ UiLF3qpgY6.json
│   │   │   ā”œā”€ā”€ UkybK6bwAu.json
│   │   │   ā”œā”€ā”€ Ul-ZqHEurk.json
│   │   │   ā”œā”€ā”€ UmAajT9K5E.json
│   │   │   ā”œā”€ā”€ UsVpARxoYj.json
│   │   │   ā”œā”€ā”€ Uum8gVd-hO.json
│   │   │   ā”œā”€ā”€ UxcZosyGSi.json
│   │   │   ā”œā”€ā”€ UyDfI71Non.json
│   │   │   ā”œā”€ā”€ V0-QbQqpZu.json
│   │   │   ā”œā”€ā”€ V0BjdhF3sg.json
│   │   │   ā”œā”€ā”€ V1bOEfGHDB.json
│   │   │   ā”œā”€ā”€ V3pVpJkslZ.json
│   │   │   ā”œā”€ā”€ V8LGe0pApf.json
│   │   │   ā”œā”€ā”€ V8c2PvuD71.json
│   │   │   ā”œā”€ā”€ V8eX1ONrtM.json
│   │   │   ā”œā”€ā”€ V8p-HBnmEc.json
│   │   │   ā”œā”€ā”€ V9MGt5fonv.json
│   │   │   ā”œā”€ā”€ VBKQR2-m7Y.json
│   │   │   ā”œā”€ā”€ VCZlUviFYK.json
│   │   │   ā”œā”€ā”€ VJDEfXaX9V.json
│   │   │   ā”œā”€ā”€ VOA1dBpI96.json
│   │   │   ā”œā”€ā”€ VTBQykWfBd.json
│   │   │   ā”œā”€ā”€ VVu_o3FJLK.json
│   │   │   ā”œā”€ā”€ VWpotx3mMM.json
│   │   │   ā”œā”€ā”€ VhwTUXkcyB.json
│   │   │   ā”œā”€ā”€ Vkcgue2wFp.json
│   │   │   ā”œā”€ā”€ VmwhnamnEq.json
│   │   │   ā”œā”€ā”€ VmzDvMy_eJ.json
│   │   │   ā”œā”€ā”€ VvavEIcjxB.json
│   │   │   ā”œā”€ā”€ W038EgGk-i.json
│   │   │   ā”œā”€ā”€ W4YcJEJxtT.json
│   │   │   ā”œā”€ā”€ W4iQ1Xb5Bi.json
│   │   │   ā”œā”€ā”€ WA5DYURkmN.json
│   │   │   ā”œā”€ā”€ WAYJnDm0O1.json
│   │   │   ā”œā”€ā”€ WAmsiuglNw.json
│   │   │   ā”œā”€ā”€ WBxyPfMqUK.json
│   │   │   ā”œā”€ā”€ WNsPBDAZhR.json
│   │   │   ā”œā”€ā”€ WTxBZk7j4m.json
│   │   │   ā”œā”€ā”€ WYbCy6RrVL.json
│   │   │   ā”œā”€ā”€ WYjoUOWKN9.json
│   │   │   ā”œā”€ā”€ WakGkOeNXQ.json
│   │   │   ā”œā”€ā”€ Wbmb4wN03Q.json
│   │   │   ā”œā”€ā”€ WetiFbaDxO.json
│   │   │   ā”œā”€ā”€ Wj7W98HioX.json
│   │   │   ā”œā”€ā”€ WqmH1KzhRD.json
│   │   │   ā”œā”€ā”€ WwHEH_Z7J9.json
│   │   │   ā”œā”€ā”€ WxXE7EyoPr.json
│   │   │   ā”œā”€ā”€ X-RAPzr_WU.json
│   │   │   ā”œā”€ā”€ X0BXj1P9Gt.json
│   │   │   ā”œā”€ā”€ X7XFU9A-O0.json
│   │   │   ā”œā”€ā”€ X9Rz4Rr6x3.json
│   │   │   ā”œā”€ā”€ XDh2l3qYGg.json
│   │   │   ā”œā”€ā”€ XIMtKlPslH.json
│   │   │   ā”œā”€ā”€ XIf4x5hqOd.json
│   │   │   ā”œā”€ā”€ XQ3zjhFpSv.json
│   │   │   ā”œā”€ā”€ XXU1RyEYM9.json
│   │   │   ā”œā”€ā”€ XZRDPmQGN4.json
│   │   │   ā”œā”€ā”€ XaE5wvC7cn.json
│   │   │   ā”œā”€ā”€ Xax-UGSvpm.json
│   │   │   ā”œā”€ā”€ Xeed8QorLE.json
│   │   │   ā”œā”€ā”€ XkeoG_vu5r.json
│   │   │   ā”œā”€ā”€ Xmva2hcRxQ.json
│   │   │   ā”œā”€ā”€ XozGGxMUn2.json
│   │   │   ā”œā”€ā”€ XujW4D1xRS.json
│   │   │   ā”œā”€ā”€ Xuwgs_cwdh.json
│   │   │   ā”œā”€ā”€ XvEaXKu6um.json
│   │   │   ā”œā”€ā”€ Y-4kEgmwZk.json
│   │   │   ā”œā”€ā”€ Y-m8HZJJLW.json
│   │   │   ā”œā”€ā”€ Y6Ff75bwzV.json
│   │   │   ā”œā”€ā”€ YB3EmouqDX.json
│   │   │   ā”œā”€ā”€ YDjsTBgHXn.json
│   │   │   ā”œā”€ā”€ YHceX6yffP.json
│   │   │   ā”œā”€ā”€ YK8YrHng8K.json
│   │   │   ā”œā”€ā”€ YKRHgW3dOP.json
│   │   │   ā”œā”€ā”€ YLIPxMbxYA.json
│   │   │   ā”œā”€ā”€ YLaKFutT4y.json
│   │   │   ā”œā”€ā”€ YMUQECZiAk.json
│   │   │   ā”œā”€ā”€ YNIUR2THeW.json
│   │   │   ā”œā”€ā”€ YO7tYQuntO.json
│   │   │   ā”œā”€ā”€ YT8Vvq-qtV.json
│   │   │   ā”œā”€ā”€ YTf6sN1LmS.json
│   │   │   ā”œā”€ā”€ YTsKGGkKFV.json
│   │   │   ā”œā”€ā”€ YVuTjWLLyb.json
│   │   │   ā”œā”€ā”€ YYLO54Ir8n.json
│   │   │   ā”œā”€ā”€ YaNt92ZGd5.json
│   │   │   ā”œā”€ā”€ Ycnc6nxeSR.json
│   │   │   ā”œā”€ā”€ YeaQT3Yv2M.json
│   │   │   ā”œā”€ā”€ YgEJhklUYA.json
│   │   │   ā”œā”€ā”€ YgMutekNSJ.json
│   │   │   ā”œā”€ā”€ Yif0zjPIT7.json
│   │   │   ā”œā”€ā”€ YkCZZW3zrZ.json
│   │   │   ā”œā”€ā”€ YkvTo7zFq-.json
│   │   │   ā”œā”€ā”€ YnJsgUv_BG.json
│   │   │   ā”œā”€ā”€ YrI5z7ScXF.json
│   │   │   ā”œā”€ā”€ YuFqWlItw7.json
│   │   │   ā”œā”€ā”€ Z4-kOviFMl.json
│   │   │   ā”œā”€ā”€ Z9n-0YF1Gr.json
│   │   │   ā”œā”€ā”€ ZD77XpY6-q.json
│   │   │   ā”œā”€ā”€ ZE7JO9Yw1t.json
│   │   │   ā”œā”€ā”€ ZG7hJCW-9C.json
│   │   │   ā”œā”€ā”€ ZKkWZzlVdI.json
│   │   │   ā”œā”€ā”€ ZQliTJRbZz.json
│   │   │   ā”œā”€ā”€ ZWPwwmRYrM.json
│   │   │   ā”œā”€ā”€ ZYRe4-AsPk.json
│   │   │   ā”œā”€ā”€ ZZ4F70e6DN.json
│   │   │   ā”œā”€ā”€ ZfH4IMasOR.json
│   │   │   ā”œā”€ā”€ ZhfIMb09Ym.json
│   │   │   ā”œā”€ā”€ ZjRCbWLVbS.json
│   │   │   ā”œā”€ā”€ ZotcNn4uUo.json
│   │   │   ā”œā”€ā”€ ZqRFLyqfv5.json
│   │   │   ā”œā”€ā”€ ZsdlnHTokm.json
│   │   │   ā”œā”€ā”€ ZwO3zG8eJQ.json
│   │   │   ā”œā”€ā”€ Zw_AhIh_iy.json
│   │   │   ā”œā”€ā”€ Zz7jSZBPXh.json
│   │   │   ā”œā”€ā”€ _-7vgnh1zr.json
│   │   │   ā”œā”€ā”€ _3P9RBHSmN.json
│   │   │   ā”œā”€ā”€ _5VCA0Thsn.json
│   │   │   ā”œā”€ā”€ _6e4H643ta.json
│   │   │   ā”œā”€ā”€ _E9RGUmYG5.json
│   │   │   ā”œā”€ā”€ _FdijEcXOu.json
│   │   │   ā”œā”€ā”€ _JMZ2Yfgjr.json
│   │   │   ā”œā”€ā”€ _ODOyDo-Jk.json
│   │   │   ā”œā”€ā”€ _QdRIYPaeL.json
│   │   │   ā”œā”€ā”€ _Rtq3u9w-u.json
│   │   │   ā”œā”€ā”€ _TFC63iocr.json
│   │   │   ā”œā”€ā”€ _Uw0jNSHcm.json
│   │   │   ā”œā”€ā”€ _V3DVBnVFj.json
│   │   │   ā”œā”€ā”€ _VWYZ4LfJH.json
│   │   │   ā”œā”€ā”€ _X1poS-CRk.json
│   │   │   ā”œā”€ā”€ _Z2xFYBkMz.json
│   │   │   ā”œā”€ā”€ __eastford-news.json
│   │   │   ā”œā”€ā”€ _cTrvIT2tq.json
│   │   │   ā”œā”€ā”€ _cy0Rv7nsQ.json
│   │   │   ā”œā”€ā”€ _eXWoEaVLX.json
│   │   │   ā”œā”€ā”€ _ifkZzYcik.json
│   │   │   ā”œā”€ā”€ _q7igA4U7F.json
│   │   │   ā”œā”€ā”€ _qwHG2kUzw.json
│   │   │   ā”œā”€ā”€ _zwjGgFEpv.json
│   │   │   ā”œā”€ā”€ a--ci1ESvS.json
│   │   │   ā”œā”€ā”€ a0sAn8pIiY.json
│   │   │   ā”œā”€ā”€ a1O2n9hI35.json
│   │   │   ā”œā”€ā”€ a2Jq8vdtlC.json
│   │   │   ā”œā”€ā”€ a8vJqWY6Qa.json
│   │   │   ā”œā”€ā”€ a90bXtJ4Lu.json
│   │   │   ā”œā”€ā”€ aA57zu22wH.json
│   │   │   ā”œā”€ā”€ aB9cCxv4h_.json
│   │   │   ā”œā”€ā”€ aGwyuxEscF.json
│   │   │   ā”œā”€ā”€ aSmNPb3gck.json
│   │   │   ā”œā”€ā”€ aVOx5Krqio.json
│   │   │   ā”œā”€ā”€ aXE7XXyWBO.json
│   │   │   ā”œā”€ā”€ aZH_8tEVtd.json
│   │   │   ā”œā”€ā”€ aZStGvoQte.json
│   │   │   ā”œā”€ā”€ aa9AOfTi6O.json
│   │   │   ā”œā”€ā”€ al1sCKiZBD.json
│   │   │   ā”œā”€ā”€ aoEMiO2kRh.json
│   │   │   ā”œā”€ā”€ azcPVVli_j.json
│   │   │   ā”œā”€ā”€ b-CGg0oNDE.json
│   │   │   ā”œā”€ā”€ b-j6BsTOGA.json
│   │   │   ā”œā”€ā”€ b138b0swx_.json
│   │   │   ā”œā”€ā”€ b66p07D94B.json
│   │   │   ā”œā”€ā”€ b86VnGfOJO.json
│   │   │   ā”œā”€ā”€ bGaNPEPYvj.json
│   │   │   ā”œā”€ā”€ bS5QyOmc6k.json
│   │   │   ā”œā”€ā”€ bgr0nqGizY.json
│   │   │   ā”œā”€ā”€ bmjkv_K5vb.json
│   │   │   ā”œā”€ā”€ bml0Ge_TW4.json
│   │   │   ā”œā”€ā”€ bofIMgL4rR.json
│   │   │   ā”œā”€ā”€ bpCfs5mVbk.json
│   │   │   ā”œā”€ā”€ bpfPbmnmZk.json
│   │   │   ā”œā”€ā”€ bxLEK7-_Qk.json
│   │   │   ā”œā”€ā”€ bydkHxZXfn.json
│   │   │   ā”œā”€ā”€ c0pc-e43Wk.json
│   │   │   ā”œā”€ā”€ c2j2KyZzfk.json
│   │   │   ā”œā”€ā”€ c3wIiUcvrc.json
│   │   │   ā”œā”€ā”€ c46l6xXIxW.json
│   │   │   ā”œā”€ā”€ c9-IaymktV.json
│   │   │   ā”œā”€ā”€ c9yXO5I3xE.json
│   │   │   ā”œā”€ā”€ cFGNpfDe-u.json
│   │   │   ā”œā”€ā”€ cKLx1S_xMz.json
│   │   │   ā”œā”€ā”€ cQZuN8Ha0X.json
│   │   │   ā”œā”€ā”€ cRcJ4DyuMa.json
│   │   │   ā”œā”€ā”€ cSgvircfee.json
│   │   │   ā”œā”€ā”€ cSkASyDy2w.json
│   │   │   ā”œā”€ā”€ cUqSQ5ZDmx.json
│   │   │   ā”œā”€ā”€ cYP0DKLPU0.json
│   │   │   ā”œā”€ā”€ cZ-ILOKiJ8.json
│   │   │   ā”œā”€ā”€ caEzlDzP6G.json
│   │   │   ā”œā”€ā”€ cgiKImBqG0.json
│   │   │   ā”œā”€ā”€ chfZgNzRWU.json
│   │   │   ā”œā”€ā”€ ciPptRUm9A.json
│   │   │   ā”œā”€ā”€ ckXQJz3A2b.json
│   │   │   ā”œā”€ā”€ cm9TfQ6P3E.json
│   │   │   ā”œā”€ā”€ cmyo_EAV28.json
│   │   │   ā”œā”€ā”€ cnKVCtFe5k.json
│   │   │   ā”œā”€ā”€ cp0_pjMubo.json
│   │   │   ā”œā”€ā”€ ctI3CZ-NOo.json
│   │   │   ā”œā”€ā”€ ctdfLu4hCM.json
│   │   │   ā”œā”€ā”€ cx2VUipb4e.json
│   │   │   ā”œā”€ā”€ dBVhmIzvca.json
│   │   │   ā”œā”€ā”€ dLN_2kDPpB.json
│   │   │   ā”œā”€ā”€ dLTfdUiVKU.json
│   │   │   ā”œā”€ā”€ dNG39bl0yl.json
│   │   │   ā”œā”€ā”€ dNsttCjeCD.json
│   │   │   ā”œā”€ā”€ dW-xO2BMMw.json
│   │   │   ā”œā”€ā”€ dXvYQirvYL.json
│   │   │   ā”œā”€ā”€ dZuLtOodNE.json
│   │   │   ā”œā”€ā”€ dcGs7jUFR8.json
│   │   │   ā”œā”€ā”€ dfzL6RBeAE.json
│   │   │   ā”œā”€ā”€ dgz11nrjob.json
│   │   │   ā”œā”€ā”€ dhzWIhQ7Mc.json
│   │   │   ā”œā”€ā”€ djDjLqvMxG.json
│   │   │   ā”œā”€ā”€ dl1eP6czOL.json
│   │   │   ā”œā”€ā”€ dlif8-XeDb.json
│   │   │   ā”œā”€ā”€ dltKwajsF6.json
│   │   │   ā”œā”€ā”€ dmsRl_wdGo.json
│   │   │   ā”œā”€ā”€ dp3uf4iY4y.json
│   │   │   ā”œā”€ā”€ dqhnj4BZpu.json
│   │   │   ā”œā”€ā”€ dr4lsqGm9e.json
│   │   │   ā”œā”€ā”€ dsEggmYhOb.json
│   │   │   ā”œā”€ā”€ duANGdkSeC.json
│   │   │   ā”œā”€ā”€ dyBQ7NzKb5.json
│   │   │   ā”œā”€ā”€ eBHMqdXu3J.json
│   │   │   ā”œā”€ā”€ eE8SpPG1ra.json
│   │   │   ā”œā”€ā”€ eFVyUF5djE.json
│   │   │   ā”œā”€ā”€ eIH8U-j0R_.json
│   │   │   ā”œā”€ā”€ eK9DKGtNUW.json
│   │   │   ā”œā”€ā”€ eN3zQEywth.json
│   │   │   ā”œā”€ā”€ eQP2CBMwZa.json
│   │   │   ā”œā”€ā”€ eS03b3rggs.json
│   │   │   ā”œā”€ā”€ eV4wGgG9EV.json
│   │   │   ā”œā”€ā”€ eXHjjzPXO7.json
│   │   │   ā”œā”€ā”€ eZEmXYp2Io.json
│   │   │   ā”œā”€ā”€ eabY9dqS3V.json
│   │   │   ā”œā”€ā”€ echC88e0JV.json
│   │   │   ā”œā”€ā”€ ed8JY8iMbG.json
│   │   │   ā”œā”€ā”€ efSpWbGOkV.json
│   │   │   ā”œā”€ā”€ ega9xPSgPJ.json
│   │   │   ā”œā”€ā”€ elPI7a4SqK.json
│   │   │   ā”œā”€ā”€ emSmyhyZJN.json
│   │   │   ā”œā”€ā”€ enZpMlpeem.json
│   │   │   ā”œā”€ā”€ ermd0_MVVu.json
│   │   │   ā”œā”€ā”€ evuBPr2JG8.json
│   │   │   ā”œā”€ā”€ ezR40dOYLE.json
│   │   │   ā”œā”€ā”€ f2v9NTW1s2.json
│   │   │   ā”œā”€ā”€ f4S_ugJI3e.json
│   │   │   ā”œā”€ā”€ f5-d10SoL7.json
│   │   │   ā”œā”€ā”€ f5YQPz8ej3.json
│   │   │   ā”œā”€ā”€ f5wTQ5Itx7.json
│   │   │   ā”œā”€ā”€ f7MLtp7UWr.json
│   │   │   ā”œā”€ā”€ fAQ3lotq0X.json
│   │   │   ā”œā”€ā”€ fAo5_skwtx.json
│   │   │   ā”œā”€ā”€ fD4ZBG--8M.json
│   │   │   ā”œā”€ā”€ fFlEI64MO2.json
│   │   │   ā”œā”€ā”€ fJItAVtU7D.json
│   │   │   ā”œā”€ā”€ fMzpGyzvtC.json
│   │   │   ā”œā”€ā”€ fVfZV8xgAN.json
│   │   │   ā”œā”€ā”€ fW7Ujs2a7c.json
│   │   │   ā”œā”€ā”€ faUrpdGuTB.json
│   │   │   ā”œā”€ā”€ fc741KtNZ9.json
│   │   │   ā”œā”€ā”€ fdrV9lvhB8.json
│   │   │   ā”œā”€ā”€ fgTMx6bt79.json
│   │   │   ā”œā”€ā”€ fm25kIlH11.json
│   │   │   ā”œā”€ā”€ fpYx7haCU5.json
│   │   │   ā”œā”€ā”€ fpfYkpT_sz.json
│   │   │   ā”œā”€ā”€ fsJXzXB1ZK.json
│   │   │   ā”œā”€ā”€ ft8l2SHGwi.json
│   │   │   ā”œā”€ā”€ g70jg5JsRi.json
│   │   │   ā”œā”€ā”€ g8diKsl_5Z.json
│   │   │   ā”œā”€ā”€ gBjChmOT7K.json
│   │   │   ā”œā”€ā”€ gGaJ08xTUX.json
│   │   │   ā”œā”€ā”€ gKQRmeoSbr.json
│   │   │   ā”œā”€ā”€ gLgdvA6F3X.json
│   │   │   ā”œā”€ā”€ gMtZ_OaEhS.json
│   │   │   ā”œā”€ā”€ gWCyRbjduY.json
│   │   │   ā”œā”€ā”€ gcqpRBkKoP.json
│   │   │   ā”œā”€ā”€ gemPBo-EBJ.json
│   │   │   ā”œā”€ā”€ gqxHrcFHmS.json
│   │   │   ā”œā”€ā”€ grQRTyZ57H.json
│   │   │   ā”œā”€ā”€ gzcbqcRIKn.json
│   │   │   ā”œā”€ā”€ h-OFmayih4.json
│   │   │   ā”œā”€ā”€ h0liilZCVF.json
│   │   │   ā”œā”€ā”€ hFuQpmcaCI.json
│   │   │   ā”œā”€ā”€ hRPAzxKe3d.json
│   │   │   ā”œā”€ā”€ hTZyQcW4aG.json
│   │   │   ā”œā”€ā”€ hVi5hXkW-W.json
│   │   │   ā”œā”€ā”€ hXIDvP0mna.json
│   │   │   ā”œā”€ā”€ hYlpxSIr-8.json
│   │   │   ā”œā”€ā”€ ha6H3OmpqF.json
│   │   │   ā”œā”€ā”€ heAWGEA2Pp.json
│   │   │   ā”œā”€ā”€ hgn8InSqcu.json
│   │   │   ā”œā”€ā”€ hhutkgsmtI.json
│   │   │   ā”œā”€ā”€ hlaRneHRsd.json
│   │   │   ā”œā”€ā”€ hqCLtzVRb6.json
│   │   │   ā”œā”€ā”€ hreUHnZ9Fv.json
│   │   │   ā”œā”€ā”€ hsnnsPDaAv.json
│   │   │   ā”œā”€ā”€ i108fp2N7H.json
│   │   │   ā”œā”€ā”€ i3D5LYPf7y.json
│   │   │   ā”œā”€ā”€ i89RbQhPz4.json
│   │   │   ā”œā”€ā”€ i9ehzqgV4a.json
│   │   │   ā”œā”€ā”€ iB3nKOkrUW.json
│   │   │   ā”œā”€ā”€ iIek2NbYjG.json
│   │   │   ā”œā”€ā”€ iLiV3We1_2.json
│   │   │   ā”œā”€ā”€ iMxZ8-GViJ.json
│   │   │   ā”œā”€ā”€ iNSPkyfp30.json
│   │   │   ā”œā”€ā”€ iRMo9PVPwT.json
│   │   │   ā”œā”€ā”€ iTF75S_FmQ.json
│   │   │   ā”œā”€ā”€ iTVBEuT0n3.json
│   │   │   ā”œā”€ā”€ iU8uJ4an55.json
│   │   │   ā”œā”€ā”€ iUM4y-hNMj.json
│   │   │   ā”œā”€ā”€ iYOYeGUEYF.json
│   │   │   ā”œā”€ā”€ ib1q9Epo3P.json
│   │   │   ā”œā”€ā”€ icDKzWykD3.json
│   │   │   ā”œā”€ā”€ ih4HMCL5Qe.json
│   │   │   ā”œā”€ā”€ ijTDK_FmiP.json
│   │   │   ā”œā”€ā”€ ipmk5INstJ.json
│   │   │   ā”œā”€ā”€ ittLMPqrba.json
│   │   │   ā”œā”€ā”€ ivCY-5V_M5.json
│   │   │   ā”œā”€ā”€ j19ZWQA2hh.json
│   │   │   ā”œā”€ā”€ j8mFxi_Kmc.json
│   │   │   ā”œā”€ā”€ jEoh5ZOrNM.json
│   │   │   ā”œā”€ā”€ jEyWGCbWlM.json
│   │   │   ā”œā”€ā”€ jHPwGVUhqz.json
│   │   │   ā”œā”€ā”€ jJHXwX5H70.json
│   │   │   ā”œā”€ā”€ jMOPbZAoYs.json
│   │   │   ā”œā”€ā”€ jPFQ2iX5re.json
│   │   │   ā”œā”€ā”€ jSLi6g8c5j.json
│   │   │   ā”œā”€ā”€ jgQhxRd_GH.json
│   │   │   ā”œā”€ā”€ jmQL5MqQFS.json
│   │   │   ā”œā”€ā”€ joUmdHTzne.json
│   │   │   ā”œā”€ā”€ jzYZ8xfs-4.json
│   │   │   ā”œā”€ā”€ k1pNMd2TPK.json
│   │   │   ā”œā”€ā”€ k2lQcwP1IK.json
│   │   │   ā”œā”€ā”€ k7OrhBNSP0.json
│   │   │   ā”œā”€ā”€ kH2L_rQFGU.json
│   │   │   ā”œā”€ā”€ kPV31cHBDJ.json
│   │   │   ā”œā”€ā”€ kQUFI52aNC.json
│   │   │   ā”œā”€ā”€ kREpAZKYW4.json
│   │   │   ā”œā”€ā”€ kWJ6lYvaAg.json
│   │   │   ā”œā”€ā”€ k_KP0LBLDm.json
│   │   │   ā”œā”€ā”€ kiZr3-6Sbf.json
│   │   │   ā”œā”€ā”€ kp9TUfPdXf.json
│   │   │   ā”œā”€ā”€ ksqdTADwFO.json
│   │   │   ā”œā”€ā”€ kuDrXYCATx.json
│   │   │   ā”œā”€ā”€ kudiQV7rnG.json
│   │   │   ā”œā”€ā”€ kvsjE6XoKx.json
│   │   │   ā”œā”€ā”€ kwNLRQpQWQ.json
│   │   │   ā”œā”€ā”€ kyhz-E4eUo.json
│   │   │   ā”œā”€ā”€ l2naSNqRht.json
│   │   │   ā”œā”€ā”€ l4MfrRBWIE.json
│   │   │   ā”œā”€ā”€ l7RBe7xXbI.json
│   │   │   ā”œā”€ā”€ l7V2oltyiz.json
│   │   │   ā”œā”€ā”€ l7d3ZfZQV5.json
│   │   │   ā”œā”€ā”€ lTb7Zs_Pfc.json
│   │   │   ā”œā”€ā”€ lZrS0fIOru.json
│   │   │   ā”œā”€ā”€ lbKc2Kd27s.json
│   │   │   ā”œā”€ā”€ lcT-KZoT03.json
│   │   │   ā”œā”€ā”€ ldliBCiWfX.json
│   │   │   ā”œā”€ā”€ le1z8v1zdr.json
│   │   │   ā”œā”€ā”€ lffjOi3Y06.json
│   │   │   ā”œā”€ā”€ lfkRXkgsZq.json
│   │   │   ā”œā”€ā”€ lkB3fZaLBs.json
│   │   │   ā”œā”€ā”€ loYec0ixJ0.json
│   │   │   ā”œā”€ā”€ lpaIjC2-Yu.json
│   │   │   ā”œā”€ā”€ lrpOsOUeq3.json
│   │   │   ā”œā”€ā”€ lw_h3LJPp9.json
│   │   │   ā”œā”€ā”€ lxugh8CChx.json
│   │   │   ā”œā”€ā”€ lyRIJPKbWW.json
│   │   │   ā”œā”€ā”€ m-8_LPlJ06.json
│   │   │   ā”œā”€ā”€ m-g06kKG4_.json
│   │   │   ā”œā”€ā”€ m6HyIsAQ7Y.json
│   │   │   ā”œā”€ā”€ m7kO0d-i-f.json
│   │   │   ā”œā”€ā”€ m9e3rgnoaI.json
│   │   │   ā”œā”€ā”€ mDoJEbiSui.json
│   │   │   ā”œā”€ā”€ mDyWAW5B83.json
│   │   │   ā”œā”€ā”€ mEkKbUkIS9.json
│   │   │   ā”œā”€ā”€ mFKKIiLXMz.json
│   │   │   ā”œā”€ā”€ mSKmShZh_6.json
│   │   │   ā”œā”€ā”€ mSUDtTBUdY.json
│   │   │   ā”œā”€ā”€ mTVdgWr9Nz.json
│   │   │   ā”œā”€ā”€ mWHZ-DpKVp.json
│   │   │   ā”œā”€ā”€ mhbBz_HAMv.json
│   │   │   ā”œā”€ā”€ mrGfihmY5_.json
│   │   │   ā”œā”€ā”€ mtWsH1Ud5s.json
│   │   │   ā”œā”€ā”€ mw01ry1TvV.json
│   │   │   ā”œā”€ā”€ mwbJTw0JiK.json
│   │   │   ā”œā”€ā”€ myx_Z9D0KC.json
│   │   │   ā”œā”€ā”€ n-n1d5vucf.json
│   │   │   ā”œā”€ā”€ n1tJ50IcBo.json
│   │   │   ā”œā”€ā”€ n4dhI0QLXM.json
│   │   │   ā”œā”€ā”€ n8iIWq5AvU.json
│   │   │   ā”œā”€ā”€ nDeUO0rizX.json
│   │   │   ā”œā”€ā”€ nMKjpiB6AL.json
│   │   │   ā”œā”€ā”€ nPBstLzoci.json
│   │   │   ā”œā”€ā”€ nR6t3IBhqt.json
│   │   │   ā”œā”€ā”€ nWQR9rI1zw.json
│   │   │   ā”œā”€ā”€ nXYGi7sQkQ.json
│   │   │   ā”œā”€ā”€ nXz6bByCc0.json
│   │   │   ā”œā”€ā”€ nfPXGdSM3l.json
│   │   │   ā”œā”€ā”€ njPriuOak0.json
│   │   │   ā”œā”€ā”€ nkPQWeHZ2N.json
│   │   │   ā”œā”€ā”€ nlFDPk34t2.json
│   │   │   ā”œā”€ā”€ noKjUOs305.json
│   │   │   ā”œā”€ā”€ nxA3Hp6zaX.json
│   │   │   ā”œā”€ā”€ nxdVhaz82X.json
│   │   │   ā”œā”€ā”€ o2IPr7e3N7.json
│   │   │   ā”œā”€ā”€ o2tyjbgtXc.json
│   │   │   ā”œā”€ā”€ o53SwP_s0x.json
│   │   │   ā”œā”€ā”€ o7tgkX_1P_.json
│   │   │   ā”œā”€ā”€ o9VNhIAlzR.json
│   │   │   ā”œā”€ā”€ oCzH4NBGT1.json
│   │   │   ā”œā”€ā”€ oN8CM-dedu.json
│   │   │   ā”œā”€ā”€ oQC1h6z362.json
│   │   │   ā”œā”€ā”€ oSN7ncZWoM.json
│   │   │   ā”œā”€ā”€ oTYhbkj1jl.json
│   │   │   ā”œā”€ā”€ oVrFiUoEWg.json
│   │   │   ā”œā”€ā”€ og9qSgicnO.json
│   │   │   ā”œā”€ā”€ okJDEacjj5.json
│   │   │   ā”œā”€ā”€ orH3MhGZXI.json
│   │   │   ā”œā”€ā”€ osaXe963HX.json
│   │   │   ā”œā”€ā”€ oxdNQxkG3K.json
│   │   │   ā”œā”€ā”€ p1yR8Ps2B5.json
│   │   │   ā”œā”€ā”€ p3U-vry9x-.json
│   │   │   ā”œā”€ā”€ p8FPJ8_iFZ.json
│   │   │   ā”œā”€ā”€ p8qua2_ohV.json
│   │   │   ā”œā”€ā”€ pB9S-BsiR0.json
│   │   │   ā”œā”€ā”€ pHEorXKDkh.json
│   │   │   ā”œā”€ā”€ pHVbJLuO4U.json
│   │   │   ā”œā”€ā”€ pUriVoF-DY.json
│   │   │   ā”œā”€ā”€ pad0anWcA6.json
│   │   │   ā”œā”€ā”€ pct8pXKrVM.json
│   │   │   ā”œā”€ā”€ pg-gXKLjMp.json
│   │   │   ā”œā”€ā”€ ph8zA8bo-5.json
│   │   │   ā”œā”€ā”€ phoM3DQJkr.json
│   │   │   ā”œā”€ā”€ pkY5YC99Zv.json
│   │   │   ā”œā”€ā”€ pqkCxzmGq-.json
│   │   │   ā”œā”€ā”€ pr3L0Ut2Ud.json
│   │   │   ā”œā”€ā”€ pvNjRETfzX.json
│   │   │   ā”œā”€ā”€ pvqSDfWmbO.json
│   │   │   ā”œā”€ā”€ pxD7MmyB33.json
│   │   │   ā”œā”€ā”€ q-y7wR0dS1.json
│   │   │   ā”œā”€ā”€ q7BmF1EsHc.json
│   │   │   ā”œā”€ā”€ q8YaGTOD_k.json
│   │   │   ā”œā”€ā”€ qDp7E-DSlG.json
│   │   │   ā”œā”€ā”€ qF40bJeJCy.json
│   │   │   ā”œā”€ā”€ qIAHecLT14.json
│   │   │   ā”œā”€ā”€ qeOK3z61I2.json
│   │   │   ā”œā”€ā”€ qgoBqBTz5-.json
│   │   │   ā”œā”€ā”€ qjyEqb-Kba.json
│   │   │   ā”œā”€ā”€ qnuwDPVmYw.json
│   │   │   ā”œā”€ā”€ qpcO3vZKBA.json
│   │   │   ā”œā”€ā”€ qy2-VlmXgR.json
│   │   │   ā”œā”€ā”€ r1c-ZGfvja.json
│   │   │   ā”œā”€ā”€ r3oa8xYo25.json
│   │   │   ā”œā”€ā”€ r4VRVtKp2_.json
│   │   │   ā”œā”€ā”€ rB4WFBYvpW.json
│   │   │   ā”œā”€ā”€ rK1AcgKOEf.json
│   │   │   ā”œā”€ā”€ rM7pZ6pPNv.json
│   │   │   ā”œā”€ā”€ rMsXeWuNU8.json
│   │   │   ā”œā”€ā”€ rOqei16xAw.json
│   │   │   ā”œā”€ā”€ rPpKiVtMky.json
│   │   │   ā”œā”€ā”€ rTHbawWCCs.json
│   │   │   ā”œā”€ā”€ rY6LCWgchp.json
│   │   │   ā”œā”€ā”€ raIIJBXnbw.json
│   │   │   ā”œā”€ā”€ rf_wDcoLtC.json
│   │   │   ā”œā”€ā”€ ri51F-9ls8.json
│   │   │   ā”œā”€ā”€ rilcfUQ9sV.json
│   │   │   ā”œā”€ā”€ rpkf6RrR5H.json
│   │   │   ā”œā”€ā”€ rq5CnXEHNv.json
│   │   │   ā”œā”€ā”€ rr0y4DmC-u.json
│   │   │   ā”œā”€ā”€ rsFtiWnt5a.json
│   │   │   ā”œā”€ā”€ rt3nS2Qjdz.json
│   │   │   ā”œā”€ā”€ ru6tfPCacM.json
│   │   │   ā”œā”€ā”€ rxR4N6Du4E.json
│   │   │   ā”œā”€ā”€ rx_1Xwh6Ye.json
│   │   │   ā”œā”€ā”€ ry3TgGQMZ1.json
│   │   │   ā”œā”€ā”€ s0AFOWLcio.json
│   │   │   ā”œā”€ā”€ s9Ev6QNxXg.json
│   │   │   ā”œā”€ā”€ sDPG1eXx6l.json
│   │   │   ā”œā”€ā”€ sJuY_Ynh-R.json
│   │   │   ā”œā”€ā”€ sLRbf9SbuN.json
│   │   │   ā”œā”€ā”€ sP-hZjIeL4.json
│   │   │   ā”œā”€ā”€ sQt7G2zjY5.json
│   │   │   ā”œā”€ā”€ sRAbeLEQRO.json
│   │   │   ā”œā”€ā”€ sYUsFIvz3x.json
│   │   │   ā”œā”€ā”€ sdU7khL8GM.json
│   │   │   ā”œā”€ā”€ sfjFAnWxqU.json
│   │   │   ā”œā”€ā”€ siLZ7TDCS_.json
│   │   │   ā”œā”€ā”€ skq7AbBmQe.json
│   │   │   ā”œā”€ā”€ snSn42ru_-.json
│   │   │   ā”œā”€ā”€ spH2XNN03v.json
│   │   │   ā”œā”€ā”€ swtzzfPU9m.json
│   │   │   ā”œā”€ā”€ t0yekpY2D0.json
│   │   │   ā”œā”€ā”€ t1FngmKly-.json
│   │   │   ā”œā”€ā”€ t5azPH8JfI.json
│   │   │   ā”œā”€ā”€ t9-3Q4bUte.json
│   │   │   ā”œā”€ā”€ tE1sgXFgyg.json
│   │   │   ā”œā”€ā”€ tEpXGEYj5J.json
│   │   │   ā”œā”€ā”€ tHVsPhLC9g.json
│   │   │   ā”œā”€ā”€ tMOGuSAF2_.json
│   │   │   ā”œā”€ā”€ tNqF9L78Pf.json
│   │   │   ā”œā”€ā”€ tSEbEWvU7x.json
│   │   │   ā”œā”€ā”€ tTIbTelVWI.json
│   │   │   ā”œā”€ā”€ tTJbq7YVbT.json
│   │   │   ā”œā”€ā”€ tVoSjY1Ra7.json
│   │   │   ā”œā”€ā”€ tWHIbzQ0RF.json
│   │   │   ā”œā”€ā”€ t_VT-KDbxC.json
│   │   │   ā”œā”€ā”€ tf2e3acRuw.json
│   │   │   ā”œā”€ā”€ tiRD_s3NY6.json
│   │   │   ā”œā”€ā”€ tlswpUxVB8.json
│   │   │   ā”œā”€ā”€ tnPKs1PVy8.json
│   │   │   ā”œā”€ā”€ tpAXw2bBSQ.json
│   │   │   ā”œā”€ā”€ tpxpTCuexy.json
│   │   │   ā”œā”€ā”€ tuI3cNtmR2.json
│   │   │   ā”œā”€ā”€ tvRXu06H6D.json
│   │   │   ā”œā”€ā”€ tvpO71sNgi.json
│   │   │   ā”œā”€ā”€ tzTKYP4mfz.json
│   │   │   ā”œā”€ā”€ u5N9G901F7.json
│   │   │   ā”œā”€ā”€ uA8cikHBnd.json
│   │   │   ā”œā”€ā”€ uAZPzHv3dc.json
│   │   │   ā”œā”€ā”€ uEQKOzC4kR.json
│   │   │   ā”œā”€ā”€ uNliKWw9c_.json
│   │   │   ā”œā”€ā”€ uRXEN7Dz9g.json
│   │   │   ā”œā”€ā”€ u_dd3eln7F.json
│   │   │   ā”œā”€ā”€ ubIxibEirC.json
│   │   │   ā”œā”€ā”€ udClOENC0i.json
│   │   │   ā”œā”€ā”€ ufKL51653J.json
│   │   │   ā”œā”€ā”€ ufRmXM9ZYL.json
│   │   │   ā”œā”€ā”€ ugNERpVWJM.json
│   │   │   ā”œā”€ā”€ ujjyv_bdHy.json
│   │   │   ā”œā”€ā”€ uwqJBIb_8y.json
│   │   │   ā”œā”€ā”€ uzZ3h1VBB_.json
│   │   │   ā”œā”€ā”€ uzZSa4bpnB.json
│   │   │   ā”œā”€ā”€ v0_13ywbTh.json
│   │   │   ā”œā”€ā”€ v0_y4yhveT.json
│   │   │   ā”œā”€ā”€ vDlTSuwXTR.json
│   │   │   ā”œā”€ā”€ vF6UUyl0py.json
│   │   │   ā”œā”€ā”€ vKYBjdXaJx.json
│   │   │   ā”œā”€ā”€ vLS37BN6gQ.json
│   │   │   ā”œā”€ā”€ vRrNYWwVYB.json
│   │   │   ā”œā”€ā”€ vUW-W3t6Dy.json
│   │   │   ā”œā”€ā”€ vWljN8by4A.json
│   │   │   ā”œā”€ā”€ veWLr-6Dvt.json
│   │   │   ā”œā”€ā”€ vj66w1rFY5.json
│   │   │   ā”œā”€ā”€ vkpaGwVdRR.json
│   │   │   ā”œā”€ā”€ vpS6uhQTrP.json
│   │   │   ā”œā”€ā”€ vxwCtogs59.json
│   │   │   ā”œā”€ā”€ w1ehyGNGDg.json
│   │   │   ā”œā”€ā”€ w2LLhKCTyG.json
│   │   │   ā”œā”€ā”€ w389OT-i1T.json
│   │   │   ā”œā”€ā”€ w6ACv3lFjx.json
│   │   │   ā”œā”€ā”€ w781AOMvVz.json
│   │   │   ā”œā”€ā”€ w7GbhmpGuQ.json
│   │   │   ā”œā”€ā”€ w7vqR2fhAf.json
│   │   │   ā”œā”€ā”€ wLC73f-etX.json
│   │   │   ā”œā”€ā”€ wP8zHpF18i.json
│   │   │   ā”œā”€ā”€ wPnwEm_SJF.json
│   │   │   ā”œā”€ā”€ wRHM3-owZz.json
│   │   │   ā”œā”€ā”€ wRU2wnpGBc.json
│   │   │   ā”œā”€ā”€ wY_RL7JqsD.json
│   │   │   ā”œā”€ā”€ wgqPJKOXVR.json
│   │   │   ā”œā”€ā”€ whaygvQnb_.json
│   │   │   ā”œā”€ā”€ wivvO5MTJ_.json
│   │   │   ā”œā”€ā”€ wrWtO6ekAB.json
│   │   │   ā”œā”€ā”€ wsdTIvHqQ7.json
│   │   │   ā”œā”€ā”€ ww222CRi28.json
│   │   │   ā”œā”€ā”€ x04KqRbIzQ.json
│   │   │   ā”œā”€ā”€ x1parjObbp.json
│   │   │   ā”œā”€ā”€ x8Hwj_joZQ.json
│   │   │   ā”œā”€ā”€ x9CRFgU7Xb.json
│   │   │   ā”œā”€ā”€ xAGv-kl76q.json
│   │   │   ā”œā”€ā”€ xC2FpHY4MA.json
│   │   │   ā”œā”€ā”€ xCedEVKGUU.json
│   │   │   ā”œā”€ā”€ xFXMIQxdvb.json
│   │   │   ā”œā”€ā”€ xNKqv5GY6u.json
│   │   │   ā”œā”€ā”€ xNtxbJKgkO.json
│   │   │   ā”œā”€ā”€ xQ5KwfFL2r.json
│   │   │   ā”œā”€ā”€ xQFORuU0HS.json
│   │   │   ā”œā”€ā”€ xRY91aY4ZG.json
│   │   │   ā”œā”€ā”€ xY5Q6Zluex.json
│   │   │   ā”œā”€ā”€ xaiN7L7YXP.json
│   │   │   ā”œā”€ā”€ xjehhz7GuM.json
│   │   │   ā”œā”€ā”€ xmvZj97axd.json
│   │   │   ā”œā”€ā”€ xqnPAb1K-W.json
│   │   │   ā”œā”€ā”€ xsbB8i05ZH.json
│   │   │   ā”œā”€ā”€ xuOESYDEkU.json
│   │   │   ā”œā”€ā”€ xwLuQZl_m9.json
│   │   │   ā”œā”€ā”€ xx_5uzHDz4.json
│   │   │   ā”œā”€ā”€ xxsIAxkqgk.json
│   │   │   ā”œā”€ā”€ y2lqjDjyfj.json
│   │   │   ā”œā”€ā”€ y5Ls3c4zdR.json
│   │   │   ā”œā”€ā”€ yBziO3pm0Z.json
│   │   │   ā”œā”€ā”€ yCoNOdUoHq.json
│   │   │   ā”œā”€ā”€ yHiwNN6RJX.json
│   │   │   ā”œā”€ā”€ yR-VYP9sTt.json
│   │   │   ā”œā”€ā”€ yRabY34bvs.json
│   │   │   ā”œā”€ā”€ yRn3dWnl9R.json
│   │   │   ā”œā”€ā”€ ySeeLnXd7d.json
│   │   │   ā”œā”€ā”€ yUumAFdmuo.json
│   │   │   ā”œā”€ā”€ yXfSw36YmA.json
│   │   │   ā”œā”€ā”€ yaBpbrgKQu.json
│   │   │   ā”œā”€ā”€ ye26HraDxv.json
│   │   │   ā”œā”€ā”€ yiMED5Aq-u.json
│   │   │   ā”œā”€ā”€ yj84Ue2yMP.json
│   │   │   ā”œā”€ā”€ ykHlp09SZD.json
│   │   │   ā”œā”€ā”€ ymcPsyWsQH.json
│   │   │   ā”œā”€ā”€ ytmGv56dS1.json
│   │   │   ā”œā”€ā”€ yvh9k-_eNC.json
│   │   │   ā”œā”€ā”€ yvuZiiG37b.json
│   │   │   ā”œā”€ā”€ yxNJVKWgWF.json
│   │   │   ā”œā”€ā”€ yxa3i2BWUU.json
│   │   │   ā”œā”€ā”€ yzLC6obm_l.json
│   │   │   ā”œā”€ā”€ z0mbDCnHP-.json
│   │   │   ā”œā”€ā”€ z1jOzK9yBO.json
│   │   │   ā”œā”€ā”€ z32ZMw7Asl.json
│   │   │   ā”œā”€ā”€ z6xRAEBWWq.json
│   │   │   ā”œā”€ā”€ z7wWovi6Xj.json
│   │   │   ā”œā”€ā”€ zD_oG1ciUn.json
│   │   │   ā”œā”€ā”€ zF8s6fWy7d.json
│   │   │   ā”œā”€ā”€ zKsZPbDIxv.json
│   │   │   ā”œā”€ā”€ zS-fwm-ULT.json
│   │   │   ā”œā”€ā”€ zSGwGUrdch.json
│   │   │   ā”œā”€ā”€ zVBzLTxQBW.json
│   │   │   ā”œā”€ā”€ zXFt1Ku_kD.json
│   │   │   ā”œā”€ā”€ zdEVYrYPDX.json
│   │   │   ā”œā”€ā”€ ziFKR5b0qR.json
│   │   │   ā”œā”€ā”€ zmw_BaRSG3.json
│   │   │   ā”œā”€ā”€ znYFtGDeFW.json
│   │   │   └── zpc3ZDygk6.json
│   │   ā”œā”€ā”€ config.js
│   │   └── templatetypes.json
│   ā”œā”€ā”€ _eleventy
│   │   ā”œā”€ā”€ collections.js
│   │   ā”œā”€ā”€ filters.js
│   │   └── passthrough.js
│   ā”œā”€ā”€ _includes
│   │   ā”œā”€ā”€ 11tybundle.njk
│   │   ā”œā”€ā”€ community-contributed.njk
│   │   ā”œā”€ā”€ components
│   │   │   ā”œā”€ā”€ active-background.js
│   │   │   ā”œā”€ā”€ announcement.css
│   │   │   ā”œā”€ā”€ article-card.njk
│   │   │   ā”œā”€ā”€ avatars.css
│   │   │   ā”œā”€ā”€ breadcrumb.css
│   │   │   ā”œā”€ā”€ business-network.css
│   │   │   ā”œā”€ā”€ button.html
│   │   │   ā”œā”€ā”€ callout.css
│   │   │   ā”œā”€ā”€ code-more.css
│   │   │   ā”œā”€ā”€ code.css
│   │   │   ā”œā”€ā”€ codetitle.css
│   │   │   ā”œā”€ā”€ details-force-state.js
│   │   │   ā”œā”€ā”€ direct-links.css
│   │   │   ā”œā”€ā”€ disabled-form.js
│   │   │   ā”œā”€ā”€ docs-toc.njk
│   │   │   ā”œā”€ā”€ editor.css
│   │   │   ā”œā”€ā”€ embeds.css
│   │   │   ā”œā”€ā”€ external-links.css
│   │   │   ā”œā”€ā”€ facepile.css
│   │   │   ā”œā”€ā”€ flex-luthor
│   │   │   │   ā”œā”€ā”€ flex-luthor-separators.css
│   │   │   │   └── flex-luthor.css
│   │   │   ā”œā”€ā”€ fonts.css
│   │   │   ā”œā”€ā”€ forms.css
│   │   │   ā”œā”€ā”€ grid-layout.css
│   │   │   ā”œā”€ā”€ header.css
│   │   │   ā”œā”€ā”€ html-fetch.js
│   │   │   ā”œā”€ā”€ inline-code.css
│   │   │   ā”œā”€ā”€ layout.css
│   │   │   ā”œā”€ā”€ lists.css
│   │   │   ā”œā”€ā”€ minilink.css
│   │   │   ā”œā”€ā”€ navigation.css
│   │   │   ā”œā”€ā”€ opengraph-card.css
│   │   │   ā”œā”€ā”€ page-search.css
│   │   │   ā”œā”€ā”€ page-sites.css
│   │   │   ā”œā”€ā”€ page-supporters.css
│   │   │   ā”œā”€ā”€ popover.css
│   │   │   ā”œā”€ā”€ possum-home.css
│   │   │   ā”œā”€ā”€ possum.css
│   │   │   ā”œā”€ā”€ prism-theme.css
│   │   │   ā”œā”€ā”€ quicktips.css
│   │   │   ā”œā”€ā”€ search.js
│   │   │   ā”œā”€ā”€ seven-minute-tabs.css
│   │   │   ā”œā”€ā”€ site-entry.css
│   │   │   ā”œā”€ā”€ styleguide.css
│   │   │   ā”œā”€ā”€ subhed.css
│   │   │   ā”œā”€ā”€ supporters.css
│   │   │   ā”œā”€ā”€ tables.css
│   │   │   ā”œā”€ā”€ testimonials.css
│   │   │   ā”œā”€ā”€ throbber.css
│   │   │   ā”œā”€ā”€ throbber.js
│   │   │   ā”œā”€ā”€ toc.css
│   │   │   └── truncate.css
│   │   ā”œā”€ā”€ datasources.md
│   │   ā”œā”€ā”€ edit-on-github.njk
│   │   ā”œā”€ā”€ footer-nav.njk
│   │   ā”œā”€ā”€ header.njk
│   │   ā”œā”€ā”€ image-usage.njk
│   │   ā”œā”€ā”€ index.css
│   │   ā”œā”€ā”€ layouts
│   │   │   ā”œā”€ā”€ article.njk
│   │   │   ā”œā”€ā”€ base.njk
│   │   │   ā”œā”€ā”€ blog.md
│   │   │   ā”œā”€ā”€ docs.njk
│   │   │   ā”œā”€ā”€ langs.njk
│   │   │   ā”œā”€ā”€ main.njk
│   │   │   ā”œā”€ā”€ quicktips.njk
│   │   │   └── simple.njk
│   │   ā”œā”€ā”€ mascots.njk
│   │   ā”œā”€ā”€ site-card.njk
│   │   ā”œā”€ā”€ site.njk
│   │   ā”œā”€ā”€ snippets
│   │   │   ā”œā”€ā”€ assets
│   │   │   │   └── addfiles.njk
│   │   │   ā”œā”€ā”€ collections
│   │   │   │   ā”œā”€ā”€ all.njk
│   │   │   │   ā”œā”€ā”€ aria.njk
│   │   │   │   ā”œā”€ā”€ blog.njk
│   │   │   │   ā”œā”€ā”€ dashes.njk
│   │   │   │   ā”œā”€ā”€ eleventyimport.njk
│   │   │   │   ā”œā”€ā”€ items.njk
│   │   │   │   └── sort.njk
│   │   │   ā”œā”€ā”€ config
│   │   │   │   ā”œā”€ā”€ config-data.njk
│   │   │   │   ā”œā”€ā”€ config-htmlengine.njk
│   │   │   │   ā”œā”€ā”€ config-includes.njk
│   │   │   │   ā”œā”€ā”€ config-input.njk
│   │   │   │   ā”œā”€ā”€ config-layouts.njk
│   │   │   │   ā”œā”€ā”€ config-mdengine.njk
│   │   │   │   ā”œā”€ā”€ config-output.njk
│   │   │   │   ā”œā”€ā”€ config-pathprefix.njk
│   │   │   │   ā”œā”€ā”€ config-shape-callback-export.njk
│   │   │   │   └── config-templatelangs.njk
│   │   │   ā”œā”€ā”€ configDefinition.njk
│   │   │   ā”œā”€ā”€ configDefinitionEager.njk
│   │   │   ā”œā”€ā”€ esmCjsTabs.njk
│   │   │   ā”œā”€ā”€ frontmatter
│   │   │   │   ā”œā”€ā”€ default.njk
│   │   │   │   ā”œā”€ā”€ excerpts.njk
│   │   │   │   ā”œā”€ā”€ excerptsloc.njk
│   │   │   │   ā”œā”€ā”€ options.njk
│   │   │   │   └── toml.njk
│   │   │   ā”œā”€ā”€ image
│   │   │   │   ā”œā”€ā”€ intro-html.njk
│   │   │   │   ā”œā”€ā”€ intro.njk
│   │   │   │   └── templates.njk
│   │   │   ā”œā”€ā”€ layout-chaining
│   │   │   │   └── mainlayout.njk
│   │   │   ā”œā”€ā”€ layouts
│   │   │   │   ā”œā”€ā”€ intro.njk
│   │   │   │   ā”œā”€ā”€ mylayout.njk
│   │   │   │   └── output.njk
│   │   │   ā”œā”€ā”€ pagination
│   │   │   │   ā”œā”€ā”€ alias-size.njk
│   │   │   │   ā”œā”€ā”€ alias.njk
│   │   │   │   ā”œā”€ā”€ collection.njk
│   │   │   │   ā”œā”€ā”€ nav
│   │   │   │   │   ā”œā”€ā”€ combined.cjs
│   │   │   │   │   ā”œā”€ā”€ combined.js
│   │   │   │   │   ā”œā”€ā”€ combined.njk
│   │   │   │   │   ā”œā”€ā”€ firstlast.cjs
│   │   │   │   │   ā”œā”€ā”€ firstlast.js
│   │   │   │   │   ā”œā”€ā”€ firstlast.njk
│   │   │   │   │   ā”œā”€ā”€ nextprev.cjs
│   │   │   │   │   ā”œā”€ā”€ nextprev.js
│   │   │   │   │   ā”œā”€ā”€ nextprev.njk
│   │   │   │   │   ā”œā”€ā”€ starter.cjs
│   │   │   │   │   ā”œā”€ā”€ starter.js
│   │   │   │   │   ā”œā”€ā”€ starter.liquid
│   │   │   │   │   └── starter.njk
│   │   │   │   ā”œā”€ā”€ nav-array.njk
│   │   │   │   ā”œā”€ā”€ object-lit.njk
│   │   │   │   ā”œā”€ā”€ original.njk
│   │   │   │   ā”œā”€ā”€ paged-array.cjs
│   │   │   │   ā”œā”€ā”€ paged-array.js
│   │   │   │   ā”œā”€ā”€ paged-array.njk
│   │   │   │   ā”œā”€ā”€ paging-datafile.njk
│   │   │   │   └── paging-object.njk
│   │   │   ā”œā”€ā”€ plugins
│   │   │   │   ā”œā”€ā”€ base-add.njk
│   │   │   │   ā”œā”€ā”€ base-install-options.njk
│   │   │   │   ā”œā”€ā”€ base-install.njk
│   │   │   │   ā”œā”€ā”€ base-transform.njk
│   │   │   │   ā”œā”€ā”€ highlight-diff.njk
│   │   │   │   ā”œā”€ā”€ highlight.njk
│   │   │   │   ā”œā”€ā”€ htmlbaseurl-override.njk
│   │   │   │   ā”œā”€ā”€ htmlbaseurl.njk
│   │   │   │   ā”œā”€ā”€ i18n-install-options.njk
│   │   │   │   ā”œā”€ā”€ i18n-install.njk
│   │   │   │   ā”œā”€ā”€ i18nalternate.njk
│   │   │   │   ā”œā”€ā”€ i18nexample.njk
│   │   │   │   ā”œā”€ā”€ i18nlocaleurl-arg.njk
│   │   │   │   ā”œā”€ā”€ i18nlocaleurl.njk
│   │   │   │   ā”œā”€ā”€ idattr-opts.njk
│   │   │   │   ā”œā”€ā”€ idattr.njk
│   │   │   │   ā”œā”€ā”€ inputpath-options.njk
│   │   │   │   ā”œā”€ā”€ inputpath.njk
│   │   │   │   ā”œā”€ā”€ render.njk
│   │   │   │   ā”œā”€ā”€ rendercontent.njk
│   │   │   │   ā”œā”€ā”€ renderdata.njk
│   │   │   │   ā”œā”€ā”€ renderfile.njk
│   │   │   │   ā”œā”€ā”€ renderfiledata.njk
│   │   │   │   ā”œā”€ā”€ renderfileoverride.njk
│   │   │   │   ā”œā”€ā”€ renderinstall-advanced.njk
│   │   │   │   └── renderinstall.njk
│   │   │   ā”œā”€ā”€ programmatic
│   │   │   │   ā”œā”€ā”€ chdirs.njk
│   │   │   │   ā”œā”€ā”€ fullopts.njk
│   │   │   │   ā”œā”€ā”€ json-out-data.njk
│   │   │   │   ā”œā”€ā”€ json-out.njk
│   │   │   │   ā”œā”€ā”€ ndjson-out.njk
│   │   │   │   └── node-script.njk
│   │   │   ā”œā”€ā”€ shortcodes
│   │   │   │   ā”œā”€ā”€ intro.njk
│   │   │   │   └── paired.njk
│   │   │   └── webc
│   │   │       └── render.njk
│   │   ā”œā”€ā”€ social-callout.njk
│   │   ā”œā”€ā”€ star-on-github.njk
│   │   ā”œā”€ā”€ styles
│   │   ā”œā”€ā”€ supporter-benefits.njk
│   │   ā”œā”€ā”€ supporters.njk
│   │   ā”œā”€ā”€ syntax-chooser-tablist.11ty.js
│   │   └── webc-attribute-guide.njk
│   ā”œā”€ā”€ about.md
│   ā”œā”€ā”€ articles
│   │   ā”œā”€ā”€ 2025-08-17-process-intelligence-automation-bottleneck.md
│   │   ā”œā”€ā”€ 2025-08-21-llms-as-programming-language-runtimes.md
│   │   ā”œā”€ā”€ bar.md
│   │   └── foo.md
│   ā”œā”€ā”€ articles.njk
│   ā”œā”€ā”€ components
│   │   ā”œā”€ā”€ README.md
│   │   ā”œā”€ā”€ card-container.html
│   │   ā”œā”€ā”€ cta-section.html
│   │   ā”œā”€ā”€ discovery-option.html
│   │   ā”œā”€ā”€ expandable-service-card.html
│   │   ā”œā”€ā”€ hero-section.html
│   │   ā”œā”€ā”€ icon-component.html
│   │   ā”œā”€ā”€ loading-spinner.html
│   │   ā”œā”€ā”€ modal-template.html
│   │   ā”œā”€ā”€ service-card.html
│   │   └── services-grid.html
│   ā”œā”€ā”€ domains.md
│   ā”œā”€ā”€ favicon.ico
│   ā”œā”€ā”€ img
│   │   ā”œā”€ā”€ default-avatar.png
│   │   ā”œā”€ā”€ github.svg
│   │   ā”œā”€ā”€ logo.png
│   │   ā”œā”€ā”€ logo.svg
│   │   ā”œā”€ā”€ logos
│   │   │   ā”œā”€ā”€ markdown.svg
│   │   │   ā”œā”€ā”€ sass.svg
│   │   │   └── webc.png
│   │   ā”œā”€ā”€ mascots
│   │   │   ā”œā”€ā”€ cat.jpg
│   │   │   ā”œā”€ā”€ david.svg
│   │   │   ā”œā”€ā”€ geri.png
│   │   │   ā”œā”€ā”€ lynn-fisher.png
│   │   │   ā”œā”€ā”€ phineas-ben-facemask--v46-edited_FINAL-1.webp
│   │   │   ā”œā”€ā”€ phineas.png
│   │   │   └── possum.jpg
│   │   ā”œā”€ā”€ optimized
│   │   │   ā”œā”€ā”€ article-llm-programming-runtime.webp
│   │   │   ā”œā”€ā”€ article-process-intelligence.webp
│   │   │   ā”œā”€ā”€ domain-drone.webp
│   │   │   ā”œā”€ā”€ domain-industrial.webp
│   │   │   ā”œā”€ā”€ domain-lab-medical.webp
│   │   │   ā”œā”€ā”€ domain-library.webp
│   │   │   ā”œā”€ā”€ domain-startup-workspace.webp
│   │   │   ā”œā”€ā”€ modal-analytics-dashboard.webp
│   │   │   ā”œā”€ā”€ modal-building-architecture.webp
│   │   │   ā”œā”€ā”€ modal-computer-code.webp
│   │   │   ā”œā”€ā”€ modal-data-visualization.webp
│   │   │   ā”œā”€ā”€ modal-office-meeting.webp
│   │   │   ā”œā”€ā”€ modal-team-meeting.webp
│   │   │   ā”œā”€ā”€ product-agentzoo.webp
│   │   │   ā”œā”€ā”€ product-bookworm.webp
│   │   │   ā”œā”€ā”€ product-darwin.webp
│   │   │   ā”œā”€ā”€ product-ideoscope.webp
│   │   │   ā”œā”€ā”€ product-mimir.webp
│   │   │   ā”œā”€ā”€ product-mindlink.webp
│   │   │   ā”œā”€ā”€ product-rave.webp
│   │   │   ā”œā”€ā”€ product-scramblebench.webp
│   │   │   ā”œā”€ā”€ research-bem.webp
│   │   │   ā”œā”€ā”€ research-lethe.webp
│   │   │   └── research-matrix.webp
│   │   ā”œā”€ā”€ orgs
│   │   │   ā”œā”€ā”€ cern.png
│   │   │   ā”œā”€ā”€ css-tricks.png
│   │   │   ā”œā”€ā”€ google.svg
│   │   │   └── netlify.png
│   │   ā”œā”€ā”€ photo.png
│   │   ā”œā”€ā”€ plugins
│   │   │   └── image
│   │   │       ā”œā”€ā”€ 6dfd7ac6-300.jpeg
│   │   │       └── 6dfd7ac6-300.webp
│   │   ā”œā”€ā”€ svg
│   │   │   └── galaxy.svg
│   │   └── twitter.svg
│   ā”œā”€ā”€ index.md
│   ā”œā”€ā”€ js
│   │   ā”œā”€ā”€ animations.js
│   │   ā”œā”€ā”€ modals.js
│   │   ā”œā”€ā”€ neural-network.js
│   │   ā”œā”€ā”€ secure-contact.js
│   │   ā”œā”€ā”€ toc-scrollspy.js
│   │   └── ui-interactions.js
│   ā”œā”€ā”€ opensearch.xml
│   ā”œā”€ā”€ products.md
│   ā”œā”€ā”€ redirects.njk
│   ā”œā”€ā”€ research.md
│   └── styles
│       ā”œā”€ā”€ animations.css
│       ā”œā”€ā”€ cards.css
│       ā”œā”€ā”€ forms.css
│       ā”œā”€ā”€ hero.css
│       ā”œā”€ā”€ toc.css
│       └── utilities.css
ā”œā”€ā”€ state.json
ā”œā”€ā”€ test-email-obfuscation.html
ā”œā”€ā”€ test-output
│   ā”œā”€ā”€ .nojekyll
│   ā”œā”€ā”€ CNAME
│   └── src
│       ā”œā”€ā”€ img
│       │   ā”œā”€ā”€ default-avatar.png
│       │   ā”œā”€ā”€ github.svg
│       │   ā”œā”€ā”€ logo.png
│       │   ā”œā”€ā”€ logo.svg
│       │   ā”œā”€ā”€ logos
│       │   │   ā”œā”€ā”€ markdown.svg
│       │   │   ā”œā”€ā”€ sass.svg
│       │   │   └── webc.png
│       │   ā”œā”€ā”€ mascots
│       │   │   ā”œā”€ā”€ cat.jpg
│       │   │   ā”œā”€ā”€ david.svg
│       │   │   ā”œā”€ā”€ geri.png
│       │   │   ā”œā”€ā”€ lynn-fisher.png
│       │   │   ā”œā”€ā”€ phineas-ben-facemask--v46-edited_FINAL-1.webp
│       │   │   ā”œā”€ā”€ phineas.png
│       │   │   └── possum.jpg
│       │   ā”œā”€ā”€ optimized
│       │   │   ā”œā”€ā”€ article-llm-programming-runtime.webp
│       │   │   ā”œā”€ā”€ article-process-intelligence.webp
│       │   │   ā”œā”€ā”€ domain-drone.webp
│       │   │   ā”œā”€ā”€ domain-industrial.webp
│       │   │   ā”œā”€ā”€ domain-lab-medical.webp
│       │   │   ā”œā”€ā”€ domain-library.webp
│       │   │   ā”œā”€ā”€ domain-startup-workspace.webp
│       │   │   ā”œā”€ā”€ modal-analytics-dashboard.webp
│       │   │   ā”œā”€ā”€ modal-building-architecture.webp
│       │   │   ā”œā”€ā”€ modal-computer-code.webp
│       │   │   ā”œā”€ā”€ modal-data-visualization.webp
│       │   │   ā”œā”€ā”€ modal-office-meeting.webp
│       │   │   ā”œā”€ā”€ modal-team-meeting.webp
│       │   │   ā”œā”€ā”€ product-agentzoo.webp
│       │   │   ā”œā”€ā”€ product-bookworm.webp
│       │   │   ā”œā”€ā”€ product-darwin.webp
│       │   │   ā”œā”€ā”€ product-ideoscope.webp
│       │   │   ā”œā”€ā”€ product-mimir.webp
│       │   │   ā”œā”€ā”€ product-mindlink.webp
│       │   │   ā”œā”€ā”€ product-rave.webp
│       │   │   ā”œā”€ā”€ product-scramblebench.webp
│       │   │   ā”œā”€ā”€ research-bem.webp
│       │   │   ā”œā”€ā”€ research-lethe.webp
│       │   │   └── research-matrix.webp
│       │   ā”œā”€ā”€ orgs
│       │   │   ā”œā”€ā”€ cern.png
│       │   │   ā”œā”€ā”€ css-tricks.png
│       │   │   ā”œā”€ā”€ google.svg
│       │   │   └── netlify.png
│       │   ā”œā”€ā”€ photo.png
│       │   ā”œā”€ā”€ plugins
│       │   │   └── image
│       │   │       ā”œā”€ā”€ 6dfd7ac6-300.jpeg
│       │   │       └── 6dfd7ac6-300.webp
│       │   └── twitter.svg
│       ā”œā”€ā”€ js
│       │   ā”œā”€ā”€ animations.js
│       │   ā”œā”€ā”€ modals.js
│       │   ā”œā”€ā”€ neural-network.js
│       │   ā”œā”€ā”€ secure-contact.js
│       │   └── ui-interactions.js
│       └── styles
│           ā”œā”€ā”€ animations.css
│           ā”œā”€ā”€ cards.css
│           ā”œā”€ā”€ forms.css
│           ā”œā”€ā”€ hero.css
│           └── utilities.css
ā”œā”€ā”€ test_adaptive.xml
ā”œā”€ā”€ test_enhanced.xml
ā”œā”€ā”€ test_fast.xml
ā”œā”€ā”€ test_minimal.xml
ā”œā”€ā”€ test_output.xml
ā”œā”€ā”€ test_output_fastpath.xml
ā”œā”€ā”€ tests
│   ā”œā”€ā”€ fetch-community-data.test.js
│   └── filters.test.js
ā”œā”€ā”€ vercel.json
ā”œā”€ā”€ verify-cloudflare-setup.cjs
└── vitest.config.js

2866 directories, 28547 files

Table of contents (1519)

Skipped items

.eleventyignore (134 B)

src/_data/builtwith/
src/_data/community/
src/_data/plugins/
src/_data/starters/
src/_data/demos/
src/docs/
src/blog/
*.webc
README.md

.env.example (349 B)

# Cloudflare Configuration
CLOUDFLARE_API_TOKEN=your_cloudflare_api_token_here

# Namecheap Configuration  
NAMECHEAP_API_USER=your_namecheap_username_here
NAMECHEAP_API_KEY=your_namecheap_api_key_here
NAMECHEAP_IP_ADDRESS=your_whitelisted_ip_here

# Domain Configuration
PRIMARY_DOMAIN=sibylline.dev
EMAIL_FORWARD_TO=your-personal-email@example.com

.github/workflows/build-and-deploy.yml (1.0 KiB)

name: Build and Deploy Eleventy Site

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
    - name: Checkout
      uses: actions/checkout@v4
      
    - name: Setup Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '20'
        cache: 'npm'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Build site
      run: npm run build
      
    - name: Setup Pages
      uses: actions/configure-pages@v4
      
    - name: Upload artifact
      uses: actions/upload-pages-artifact@v3
      with:
        path: './_site'

  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    if: github.ref == 'refs/heads/main'
    
    steps:
    - name: Deploy to GitHub Pages
      id: deployment
      uses: actions/deploy-pages@v4

.github/workflows/ci.yml (2.7 KiB)

name: CI/CD Pipeline

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    
    strategy:
      matrix:
        node-version: [20.x]
    
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
      
    - name: Setup Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Run linter
      run: npm run lint
      
    - name: Run tests
      run: npm run test:coverage
      
    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v4
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        fail_ci_if_error: false
        
  build:
    needs: test
    runs-on: ubuntu-latest
    
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
      
    - name: Setup Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '20.x'
        cache: 'npm'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Fetch community data
      run: npm run get-new-data
      
    - name: Build site
      run: npm run build-production
      
    - name: Check for broken links
      run: npm run check-links
      continue-on-error: true
      
    - name: Upload build artifacts
      uses: actions/upload-artifact@v4
      with:
        name: site-build
        path: _site/
        retention-days: 7

  security:
    runs-on: ubuntu-latest
    
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
      
    - name: Setup Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '20.x'
        cache: 'npm'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Run security audit
      run: npm audit --audit-level high
      continue-on-error: true
      
    - name: Check for outdated dependencies
      run: npm outdated
      continue-on-error: true

  deploy:
    needs: [test, build]
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
    
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
      
    - name: Setup Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '20.x'
        cache: 'npm'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Fetch community data
      run: npm run get-new-data
      
    - name: Build site
      run: npm run build-production
      
    - name: Deploy to GitHub Pages
      uses: peaceiris/actions-gh-pages@v4
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./_site
        cname: sibyllinesoft.github.io

.github/workflows/deploy.yml (1.0 KiB)

name: Deploy to GitHub Pages

on:
  push:
    branches: [ main ]

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20.x'
          cache: 'npm'
          
      - name: Install dependencies
        run: npm ci
        
      - name: Build site
        run: npm run build
        
      - name: Setup Pages
        uses: actions/configure-pages@v5
        
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: ./_site
          
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

.gitignore (716 B)

# Dependencies
node_modules/
npm-debug.log*

# Build output
_site/

# Eleventy cache
.cache/

# Environment variables
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Logs
logs/
*.log# Environment files with API keys
.env
.env.local
.env.production

# API tokens and secrets
*token*
*key*
*secret*

# Cloudflare config
cloudflare-config.json
namecheap-config.json

# Development and temporary files
*.png
*.jpg
*.jpeg
*.gif
!src/img/**/*.png
!src/img/**/*.jpg
!src/img/**/*.jpeg
!src/img/**/*.gif
!src/img/**/*.webp
*.sh
test-results/
*reference*.md
*guide*.md
screenshot*.png

.serena/
.claude/
coverage/
repomix-output.xml

.nojekyll (0 B)


.scribeignore (87 B)

# Add patterns to ignore here, one per line
# Example:
# *.log
# tmp/
src/img/
*.backup

CNAME (13 B)

sibylline.dev

LICENSE (1.0 KiB)

MIT License

Copyright (c) 2019 Zach Leatherman

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

README.md (3.4 KiB)

Sibylline Software šŸ”®

  • https://sibyllinesoft.github.io/

The official website for Sibylline Software, built with the Eleventy static site generator. This project is based on the official 11ty.dev theme and architecture.

Project Goal

This website serves as the digital presence for Sibylline Software, showcasing our innovative AI-powered products and services. Built with Eleventy, it demonstrates modern static site generation principles while maintaining excellent performance and developer experience.

Architecture Overview

The site follows Eleventy's recommended structure with some custom enhancements:

Key Directories

  • src/ - Source files for the website
  • _includes/ - Reusable templates, layouts, and components
  • _data/ - Global data files and configuration
  • articles/ - Blog posts and articles (Markdown files)
  • components/ - Reusable UI components
  • styles/ - CSS styling files
  • img/ - Static images and assets
  • _site/ - Generated output (auto-created during build)
  • eleventy.config.js - Main Eleventy configuration

Core Logic Location

  • Filters: Date formatting, array manipulation (in eleventy.config.js)
  • Collections: Article grouping and filtering (in eleventy.config.js)
  • Passthrough Copy: Static asset handling (CSS, JS, images)

Running Locally

# Install dependencies
npm install

# Fetch latest community data from 11ty ecosystem
npm run get-new-data

# Start development server
npm start
# Alternative: npx @11ty/eleventy --serve

Browse to http://localhost:8091/ (configured port, will bump if taken).

Available Scripts

Development Scripts

  • npm start - Start development server with live reload (port 8091)
  • npm run start-production - Start server with production environment variables

Build Scripts

  • npm run build - Build the site for development
  • npm run build-production - Full production build with data refresh and search indexing

Data Management Scripts

  • npm run get-new-data - Fetch latest community projects from 11ty/11ty-community
  • Removes existing ./src/_data/builtwith/ directory
  • Downloads fresh community data using degit
  • Required for showcasing community projects

Quality Assurance Scripts

  • npm run format - Format code using Prettier
  • npm run check-links - Validate internal links in generated site
  • npm run create-search-index - Generate search index using Pagefind

Content Management

Adding New Articles

  1. Create a new Markdown file in src/articles/
  2. Use this frontmatter template:
---
title: "Your Article Title"
date: 2024-01-15
published: true
excerpt: "Brief description for listings"
---
  1. Articles with published: false won't appear in public listings but are available at /articles/allArticles/

Adding Components

  1. Create HTML files in src/components/
  2. Components are automatically available at /components/[component-name]/
  3. Follow the existing naming convention (kebab-case)

Technology Stack

  • Static Site Generator: Eleventy 4.0 (alpha)
  • Template Engine: Nunjucks for layouts, Markdown for content
  • Styling: Custom CSS with component-based architecture
  • Search: Pagefind for client-side search
  • Hosting: GitHub Pages with custom domain
  • Package Manager: npm with Node.js 20+

backup/.eleventy.js (572 B)

module.exports = function(eleventyConfig) {
  // Copy static assets
  eleventyConfig.addPassthroughCopy("src/assets");
  eleventyConfig.addPassthroughCopy("src/css");
  eleventyConfig.addPassthroughCopy("src/js");
  
  // Watch for changes in CSS and JS files
  eleventyConfig.addWatchTarget("src/css/");
  eleventyConfig.addWatchTarget("src/js/");
  
  // Set directories
  return {
    dir: {
      input: "src",
      output: "_site",
      includes: "_includes",
      layouts: "_layouts"
    },
    htmlTemplateEngine: "njk",
    markdownTemplateEngine: "njk"
  };
};

backup/package.json (678 B)

{
  "name": "sibyllinesoft.github.io",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "eleventy",
    "serve": "eleventy --serve",
    "clean": "rm -rf _site",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/sibyllinesoft/sibyllinesoft.github.io.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/sibyllinesoft/sibyllinesoft.github.io/issues"
  },
  "homepage": "https://github.com/sibyllinesoft/sibyllinesoft.github.io#readme",
  "devDependencies": {
    "@11ty/eleventy": "^3.1.2"
  }
}

backup/src/_data/site.js (215 B)

module.exports = {
  title: "Sibylline Software",
  description: "Welcome to Sibylline Software - Your digital solutions partner",
  url: "https://sibyllinesoft.github.io",
  currentYear: new Date().getFullYear()
};

backup/src/_layouts/base.njk (873 B)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{% if title %}{{ title }} - {% endif %}{{ site.title }}</title>
    <meta name="description" content="{{ description or site.description }}">
    <link rel="stylesheet" href="/css/style.css">
</head>
<body>
    <header>
        <nav>
            <h1><a href="/">{{ site.title }}</a></h1>
            <ul>
                <li><a href="/">Home</a></li>
                <li><a href="/about/">About</a></li>
            </ul>
        </nav>
    </header>
    
    <main>
        {{ content | safe }}
    </main>
    
    <footer>
        <p>&copy; {{ site.currentYear }} {{ site.title }}. Built with <a href="https://www.11ty.dev/">Eleventy</a>.</p>
    </footer>
    
    <script src="/js/main.js"></script>
</body>
</html>

backup/src/about.md (396 B)


layout: base.njk title: "About" description: "Learn more about Sibylline Software"


About Sibylline Software

This is your about page. You can customize this content to tell visitors about yourself or your company.

What We Do

Add information about your services, mission, or background here.

Contact

You can reach us at: your-email@example.com

backup/src/css/style.css (1.9 KiB)

/* Reset and base styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #fff;
}

/* Header and Navigation */
header {
    background: #2c3e50;
    color: white;
    padding: 1rem 0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

nav {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

nav h1 a {
    color: white;
    text-decoration: none;
    font-size: 1.5rem;
}

nav ul {
    list-style: none;
    display: flex;
    gap: 2rem;
}

nav a {
    color: white;
    text-decoration: none;
    transition: color 0.3s ease;
}

nav a:hover {
    color: #3498db;
}

/* Main content */
main {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
    min-height: calc(100vh - 200px);
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
    margin-bottom: 1rem;
    color: #2c3e50;
}

h1 {
    font-size: 2.5rem;
    margin-bottom: 1.5rem;
}

h2 {
    font-size: 2rem;
    margin-top: 2rem;
}

h3 {
    font-size: 1.5rem;
    margin-top: 1.5rem;
}

p {
    margin-bottom: 1rem;
}

a {
    color: #3498db;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* Lists */
ul, ol {
    margin-bottom: 1rem;
    padding-left: 2rem;
}

li {
    margin-bottom: 0.5rem;
}

/* Footer */
footer {
    background: #34495e;
    color: white;
    text-align: center;
    padding: 2rem;
    margin-top: 4rem;
}

footer a {
    color: #3498db;
}

/* Responsive design */
@media (max-width: 768px) {
    nav {
        flex-direction: column;
        gap: 1rem;
    }
    
    nav ul {
        gap: 1rem;
    }
    
    main {
        padding: 1rem;
    }
    
    h1 {
        font-size: 2rem;
    }
}

backup/src/index.md (556 B)


layout: base.njk title: "Home" description: "Welcome to Sibylline Software"


Welcome to Sibylline Software

This is the home page of your new Eleventy site!

Getting Started

You can edit this content in src/index.md. The layout is defined in src/_layouts/base.njk.

Features

  • Built with Eleventy static site generator
  • Optimized for GitHub Pages
  • Responsive design
  • Easy to customize

Next Steps

  1. Customize your site content
  2. Update the styling in src/css/style.css
  3. Add more pages and posts
  4. Deploy to GitHub Pages

backup/src/js/main.js (732 B)

// Basic JavaScript for your site
document.addEventListener('DOMContentLoaded', function() {
    console.log('Sibylline Software site loaded successfully!');
    
    // Add any interactive features here
    // For example, smooth scrolling for anchor links
    const links = document.querySelectorAll('a[href^="#"]');
    links.forEach(link => {
        link.addEventListener('click', function(e) {
            e.preventDefault();
            const targetId = this.getAttribute('href');
            const targetElement = document.querySelector(targetId);
            if (targetElement) {
                targetElement.scrollIntoView({
                    behavior: 'smooth'
                });
            }
        });
    });
});

cloudflare-email-setup.cjs (11.8 KiB)

#!/usr/bin/env node

/**
 * Cloudflare Email Routing Setup Script
 * Automates the setup of email forwarding for sibylline.dev
 */

const https = require('https');
const readline = require('readline');

class CloudflareEmailSetup {
    constructor() {
        this.apiToken = process.env.CLOUDFLARE_API_TOKEN;
        this.domain = 'sibylline.dev';
        this.baseUrl = 'https://api.cloudflare.com/client/v4';
        this.zoneId = null;
    }

    async makeRequest(method, endpoint, data = null) {
        return new Promise((resolve, reject) => {
            const url = new URL(this.baseUrl + endpoint);
            const options = {
                method,
                headers: {
                    'Authorization': `Bearer ${this.apiToken}`,
                    'Content-Type': 'application/json'
                }
            };

            const req = https.request(url, options, (res) => {
                let body = '';
                res.on('data', chunk => body += chunk);
                res.on('end', () => {
                    try {
                        const response = JSON.parse(body);
                        if (response.success) {
                            resolve(response.result);
                        } else {
                            reject(new Error(`API Error: ${response.errors?.map(e => e.message).join(', ') || 'Unknown error'}`));
                        }
                    } catch (err) {
                        reject(new Error(`Parse Error: ${err.message}`));
                    }
                });
            });

            req.on('error', reject);

            if (data) {
                req.write(JSON.stringify(data));
            }

            req.end();
        });
    }

    async findZoneId() {
        console.log(`šŸ” Looking for zone: ${this.domain}`);
        try {
            const zones = await this.makeRequest('GET', '/zones');
            console.log(`Found ${zones.length} zones total`);
            
            if (zones.length > 0) {
                console.log('Available zones:', zones.map(z => `${z.name} (${z.status})`));
            }
            
            const zone = zones.find(z => z.name === this.domain);
            
            if (!zone) {
                // If we can't find it in the general list, try searching by name
                console.log(`šŸ” Zone not found in list, trying direct search...`);
                try {
                    const searchZones = await this.makeRequest('GET', `/zones?name=${this.domain}`);
                    if (searchZones.length > 0) {
                        const foundZone = searchZones[0];
                        this.zoneId = foundZone.id;
                        console.log(`āœ… Found zone via search: ${this.domain} (${this.zoneId})`);
                        return this.zoneId;
                    }
                } catch (searchError) {
                    console.log('Direct search also failed:', searchError.message);
                }
                
                throw new Error(`Domain ${this.domain} not found in your Cloudflare account. Please check API token permissions.`);
            }
            
            this.zoneId = zone.id;
            console.log(`āœ… Found zone: ${this.domain} (${this.zoneId})`);
            return this.zoneId;
        } catch (error) {
            console.error('āŒ Error finding zone:', error.message);
            throw error;
        }
    }

    async checkEmailRouting() {
        console.log('\nšŸ“§ Checking Email Routing status...');
        try {
            const routing = await this.makeRequest('GET', `/zones/${this.zoneId}/email/routing`);
            console.log(`Email Routing status: ${routing.enabled ? 'āœ… Enabled' : 'āŒ Disabled'}`);
            console.log(`Email Routing name: ${routing.name || 'Not set'}`);
            return routing;
        } catch (error) {
            console.log('ā„¹ļø  Email Routing not yet configured');
            return null;
        }
    }

    async enableEmailRouting() {
        console.log('\nšŸš€ Enabling Email Routing...');
        try {
            const result = await this.makeRequest('POST', `/zones/${this.zoneId}/email/routing/enable`, {
                enabled: true
            });
            console.log('āœ… Email Routing enabled successfully!');
            return result;
        } catch (error) {
            console.error('āŒ Error enabling Email Routing:', error.message);
            throw error;
        }
    }

    async listDestinations() {
        console.log('\nšŸ“¬ Checking existing destination addresses...');
        try {
            const destinations = await this.makeRequest('GET', `/zones/${this.zoneId}/email/routing/addresses`);
            if (destinations.length > 0) {
                console.log('Existing destinations:');
                destinations.forEach(dest => {
                    console.log(`  - ${dest.email} (${dest.verified ? 'āœ… verified' : 'āŒ unverified'})`);
                });
            } else {
                console.log('No destination addresses configured yet.');
            }
            return destinations;
        } catch (error) {
            console.error('āŒ Error listing destinations:', error.message);
            return [];
        }
    }

    async addDestination(email) {
        console.log(`\nšŸ“§ Adding destination: ${email}`);
        try {
            const result = await this.makeRequest('POST', `/zones/${this.zoneId}/email/routing/addresses`, {
                email: email
            });
            console.log(`āœ… Destination added! Verification email sent to ${email}`);
            console.log('šŸ”” Please check your email and click the verification link');
            return result;
        } catch (error) {
            if (error.message.includes('already exists')) {
                console.log(`ā„¹ļø  Destination ${email} already exists`);
                return null;
            }
            console.error('āŒ Error adding destination:', error.message);
            throw error;
        }
    }

    async listRules() {
        console.log('\nšŸ“‹ Checking existing forwarding rules...');
        try {
            const rules = await this.makeRequest('GET', `/zones/${this.zoneId}/email/routing/rules`);
            if (rules.length > 0) {
                console.log('Existing rules:');
                rules.forEach(rule => {
                    console.log(`  - ${rule.name}: ${rule.matchers[0]?.field}="${rule.matchers[0]?.value}" → ${rule.actions[0]?.value.join(', ')}`);
                });
            } else {
                console.log('No forwarding rules configured yet.');
            }
            return rules;
        } catch (error) {
            console.error('āŒ Error listing rules:', error.message);
            return [];
        }
    }

    async createForwardingRule(fromEmail, toEmail, name) {
        console.log(`\nšŸ”„ Creating forwarding rule: ${fromEmail} → ${toEmail}`);
        try {
            const result = await this.makeRequest('POST', `/zones/${this.zoneId}/email/routing/rules`, {
                name: name,
                enabled: true,
                matchers: [{
                    type: "literal",
                    field: "to",
                    value: fromEmail
                }],
                actions: [{
                    type: "forward",
                    value: [toEmail]
                }]
            });
            console.log(`āœ… Forwarding rule created: ${fromEmail} → ${toEmail}`);
            return result;
        } catch (error) {
            console.error('āŒ Error creating forwarding rule:', error.message);
            throw error;
        }
    }

    async setupComplete() {
        console.log('\nšŸŽ‰ Email Routing setup complete!');
        console.log('\nšŸ“‹ Summary:');
        console.log(`Domain: ${this.domain}`);
        console.log('Email addresses configured:');
        console.log('  - contact@sibylline.dev');
        console.log('  - hello@sibylline.dev');
        console.log('\nāš ļø  Important:');
        console.log('1. Check your destination email for verification messages');
        console.log('2. Click all verification links to activate forwarding');
        console.log('3. Test by sending emails to contact@sibylline.dev');
        console.log('4. Your website contact forms will work once verification is complete');
    }

    async run() {
        console.log('šŸš€ Cloudflare Email Routing Setup');
        console.log('==================================\n');

        if (!this.apiToken) {
            console.error('āŒ CLOUDFLARE_API_TOKEN environment variable not set');
            console.log('\nPlease set your API token:');
            console.log('export CLOUDFLARE_API_TOKEN="your_token_here"');
            console.log('\nOr create one at: https://dash.cloudflare.com/profile/api-tokens');
            process.exit(1);
        }

        try {
            // Step 1: Find the zone
            await this.findZoneId();

            // Step 2: Check email routing status
            const routingStatus = await this.checkEmailRouting();

            // Step 3: Enable email routing if not enabled
            if (!routingStatus || !routingStatus.enabled) {
                await this.enableEmailRouting();
            }

            // Step 4: Check existing destinations
            const destinations = await this.listDestinations();

            // Step 5: Get destination email from user
            const rl = readline.createInterface({
                input: process.stdin,
                output: process.stdout
            });

            const destinationEmail = await new Promise(resolve => {
                rl.question('\nšŸ“§ Enter your personal email address (where emails should be forwarded): ', resolve);
            });

            rl.close();

            // Step 6: Add destination if not exists
            const existingDest = destinations.find(d => d.email === destinationEmail);
            if (!existingDest) {
                await this.addDestination(destinationEmail);
            } else {
                console.log(`ā„¹ļø  Destination ${destinationEmail} already configured (${existingDest.verified ? 'verified' : 'unverified'})`);
            }

            // Wait for user to verify if needed
            if (!existingDest || !existingDest.verified) {
                await new Promise(resolve => {
                    const rl2 = readline.createInterface({
                        input: process.stdin,
                        output: process.stdout
                    });
                    rl2.question('\nā³ Please verify your email address first, then press Enter to continue...', () => {
                        rl2.close();
                        resolve();
                    });
                });
            }

            // Step 7: Check existing rules
            const rules = await this.listRules();

            // Step 8: Create forwarding rules
            const emailAddresses = [
                { from: 'contact@sibylline.dev', name: 'Contact Form Forwarding' },
                { from: 'hello@sibylline.dev', name: 'Hello Forwarding' }
            ];

            for (const email of emailAddresses) {
                const existingRule = rules.find(r => 
                    r.matchers[0]?.value === email.from
                );

                if (!existingRule) {
                    await this.createForwardingRule(email.from, destinationEmail, email.name);
                } else {
                    console.log(`ā„¹ļø  Rule for ${email.from} already exists`);
                }
            }

            // Step 9: Setup complete
            await this.setupComplete();

        } catch (error) {
            console.error('\nāŒ Setup failed:', error.message);
            process.exit(1);
        }
    }
}

// Run the setup if this script is executed directly
if (require.main === module) {
    const setup = new CloudflareEmailSetup();
    setup.run();
}

module.exports = CloudflareEmailSetup;

config/activity.js (1.7 KiB)

import "dotenv/config";
import EleventyFetch from "@11ty/eleventy-fetch";
import { ActivityFeed } from "@11ty/eleventy-activity-feed";

export default async function () {
	let feed = new ActivityFeed();

	// feed.importer.setVerbose(true);

	feed.setCacheDuration("12h"); // note that cache is persisted on CI server

	// The Eleventy Activity Feed
	feed.addSource("youtubeUser", "YouTube", "UCskGTioqrMBcw8pd14_334A"); // Eleventy
	feed.addSource("atom", "Blog", "https://www.11ty.dev/blog/feed.xml");
	feed.addSource(
		"atom",
		"Quick Tips",
		"https://www.11ty.dev/docs/quicktips/feed.xml"
	);
	feed.addSource("fediverse", "Mastodon", "@eleventy@fosstodon.org");
	feed.addSource("fediverse", "Mastodon", "@11ty@neighborhood.11ty.dev");
	feed.addSource("bluesky", "Bluesky", "@11ty.dev");

	if (process.env.NODE_ENV === "production") {
		// Warning: at time of writing Eleventy has 51 repos, beware if this grows beyond the max of 100
		const PER_PAGE = 100; // max: 100
		let githubOrgRepos = await EleventyFetch(
			`https://api.github.com/orgs/11ty/repos?per_page=${PER_PAGE}`,
			{
				type: "json",
				duration: "12h",
				directory: ".cache/eleventy-fetch/",
				fetchOptions: {
					headers: {
						Authorization: `bearer ${process.env.GITHUB_READ_TOKEN}`,
					},
				},
			}
		);

		for (let repository of githubOrgRepos) {
			if (repository.visibility === "public") {
				feed.addSource(
					"atom",
					`GitHub Releases [${repository.full_name}]`,
					`https://github.com/${repository.full_name}/releases.atom`
				);
			}
		}
	} else {
		// only use core for local dev
		feed.addSource(
			"atom",
			`GitHub Releases [11ty/eleventy]`,
			`https://github.com/11ty/eleventy/releases.atom`
		);
	}

	return feed;
}

config/addedin.js (2.5 KiB)

import semver from "semver";
import versions from "../src/_data/versions.js";

// Warning: using 2.0.0 excludes 2.0.0-beta.x, 2.0.0-alpha.x releases
const MINIMUM_VERSION_SHOWN = "1.99999.0";

const COERCE = {
	// should have `v` prefix
	"v2.0.0-canary.": "v2.0.0", // 2.0.0-beta.1 => 2.0.0 is handled automatically (see Note 1 below)
};

function isCoreRelease(version) {
	// For version text that starts with a number (plugins don’t do this)
	return ("" + version).match(/^v{0,1}[0-9]/);
}

function isPreRelease(version) {
	return version.includes("-");
}

function isPreReleaseOf(version, releasedVersion) {
	if (!isPreRelease(version)) {
		return false;
	}

	let stableVersion = version.split("-")[0];
	// `version` needs a `v` prefix for this comparison
	return stableVersion === releasedVersion;
}

// coerce -canary to -beta or if stable version is released, strips -canary and -beta
function coerceVersion(version) {
	const newestPublishedVersion = versions
		.filter((v) => v.tag !== "LATEST")
		.shift();
	if (!isCoreRelease(version)) {
		return version;
	}

	let versionText = version;

	if (!versionText.startsWith("v")) {
		versionText = `v${versionText}`;
	}

	// Change all -canary.X to .beta.1
	for (let coerceKey in COERCE) {
		if (versionText.startsWith(coerceKey)) {
			let newVersion = COERCE[coerceKey];
			versionText = newVersion;
		}
	}

	if (isPreReleaseOf(versionText, newestPublishedVersion.tag)) {
		// Note 1: Strip -canary.1 or -beta.1 suffixes after 2.0.0 is shipped
		versionText = versionText.split("-")[0];
	} else if (
		isPreRelease(versionText) &&
		semver.lt(versionText, newestPublishedVersion.tag)
	) {
		// v2.0.0-beta.1 and the newest version is v2.0.1
		versionText = versionText.split("-")[0];
	}

	return versionText;
}

function addedIn(version, tag, extraClass) {
	let beforeText = "Added in ";
	if (isCoreRelease(version)) {
		// Show no content for super old version notes
		if (semver.lt(version, MINIMUM_VERSION_SHOWN)) {
			return "";
		}
		const newestPublishedVersion = versions
			.filter((v) => v.tag !== "LATEST")
			.shift();
		if (
			isPreRelease(version) &&
			semver.gt(version, newestPublishedVersion.tag)
		) {
			beforeText = "Pre-release only: ";
		}
	}

	tag = tag || "span";

	return `<${tag} data-pagefind-ignore eleventy:id-ignore class="minilink minilink-addedin${
		extraClass ? ` ${extraClass}` : ""
	}" data-uncoerced-version="${version}">${beforeText}${coerceVersion.call(
		this,
		version
	)}</${tag}>`;
}

function greaterThan(first, second) {
	return semver.gt(first, second);
}

export { addedIn, coerceVersion, greaterThan };

config/cleanAuthorName.js (180 B)

// Strip out leading @ from usernames
export default function cleanAuthorName(name) {
	name = name || "";

	if (name.startsWith("@")) {
		return name.substr(1);
	}
	return name;
}

config/feedPlugin.js (1.6 KiB)

import { feedPlugin } from "@11ty/eleventy-plugin-rss";

export default function(eleventyConfig) {
	eleventyConfig.addCollection("docsFeed", function (collection) {
		return collection.getFilteredByGlob("src/docs/**/*.md").filter(entry => {
			// remove permalink: false templates
			return !!entry.url;
		}).sort((a, b) => {
			return a.date - b.date; // sort by date - ascending (feed plugin reverses)
		});
	});

	// Documentation Feed
	eleventyConfig.addPlugin(feedPlugin, {
		type: "atom",
		outputPath: "/docs/feed.xml",
		collection: {
			name: "docsFeed",
			limit: 10,
		},
		metadata: {
			language: "en",
			title: "Eleventy Documentation",
			subtitle: "Updates to the Eleventy Documentation, sorted by recent git commits.",
			base: "https://www.11ty.dev/",
			author: {
				name: "Zach Leatherman"
			}
		}
	});

	// Quick Tips Feed
	eleventyConfig.addPlugin(feedPlugin, {
		type: "atom",
		outputPath: "/docs/quicktips/feed.xml",
		collection: {
			name: "quicktips",
			limit: 0,
		},
		metadata: {
			language: "en",
			title: "Eleventy Quick Tips",
			subtitle: "All of the official Eleventy Quick Tips, in feed form.",
			base: "https://www.11ty.dev/",
			author: {
				name: "Zach Leatherman"
			}
		}
	});

	// Blog Feed
	eleventyConfig.addPlugin(feedPlugin, {
		type: "atom",
		outputPath: "/blog/feed.xml",
		collection: {
			name: "blog",
			limit: 10,
		},
		metadata: {
			language: "en",
			title: "Eleventy Blog",
			subtitle: "News and updates about the Eleventy static site generator project.",
			base: "https://www.11ty.dev/",
			author: {
				name: "Zach Leatherman"
			}
		}
	});
}

config/getAuthorsFromSites.js (683 B)

export default function getAuthors(sites) {
	let names = new Set();
	for (let key in sites) {
		let site = sites[key];
		if (site.disabled) {
			continue;
		}

		if(Array.isArray(site.authors)) {
			site.authors = site.authors.filter(entry => !entry.startsWith("twitter:"));
		}

		if (site.opened_by) {
			if(Array.isArray(site.authors) && site.authors.length > 0 && !site.authors.includes(site.opened_by)) {
				// do nothing
			} else if(!site.opened_by.startsWith("twitter:")) {
				names.add(site.opened_by);
			}
		}

		if (Array.isArray(site.authors)) {
			for (let name of site.authors) {
				if (name) {
					names.add(name);
				}
			}
		}
	}

	return Array.from(names);
}

config/markdownPlugin.js (2.7 KiB)

import slugify from "@sindresorhus/slugify";
import markdownItToc from "markdown-it-table-of-contents";
import { IdAttributePlugin } from "@11ty/eleventy";
import memoize from "memoize";

const markdownItSlugify = memoize((s => {
	return slugify(removeExtraText(s));
}));

function removeExtraText(s) {
	let newStr = String(s);
	newStr = newStr.replace(/\-(alpha|beta|canary)\.\d+/, "");
	newStr = newStr.replace(/(New\ in|Added\ in|Pre-release\ only)\ v\d+\.\d+\.\d+/, "");
	newStr = newStr.replace(/[āš ļø?!]/g, "");
	newStr = newStr.replace(/[\=\":’'`,]/g, "");
	newStr = newStr.replace(/<[^>]*>/g, "");
	return newStr;
}

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(IdAttributePlugin, {
		// custom slugify function, otherwise we use Eleventy’s built-in `slugify` filter.
		slugify: markdownItSlugify,
		selector: "h1,h2,h3,h4,h5,h6", // default
	});

	let mdIt;
	eleventyConfig.amendLibrary("md", (mdLib) => {
		mdIt = mdLib;
		mdLib.use(markdownItToc, {
			includeLevel: [2, 3],
			slugify: markdownItSlugify,
			format: function (heading) {
				return removeExtraText(heading);
			},
			transformLink: function (link) {
				if (typeof link === "string") {
					// remove backticks from markdown code
					return link.replace(/\%60/g, "");
				}
				return link;
			},
		});

		// opt out of linkification for .io TLD, e.g. 11ty.io
		mdLib.linkify.tlds(".io", false);
	});

	const renderMarkdownInline = memoize(content => {
		return mdIt.renderInline(content);
	});

	eleventyConfig.addPairedShortcode("markdown", renderMarkdownInline);
	eleventyConfig.addFilter("markdown", renderMarkdownInline);

	// WebC migration: callout.webc
	eleventyConfig.addPairedShortcode(
		"callout",
		function (content, level = "", format = "html", customLabel = "") {
			if (format === "md") {
				content = mdIt.renderInline(content);
			} else if (format === "md-block") {
				content = mdIt.render(content);
			}
			let label = "";
			if (customLabel) {
				label = customLabel;
			} else if (level === "info" || level === "error") {
				label = level.toUpperCase() + ":";
			} else if (level === "warn") {
				label = "WARNING:";
			}
			let labelHtml = label
				? `<div class="elv-callout-label">${customLabel || label}</div>`
				: "";
			let contentHtml =
				(content || "").trim().length > 0
					? `<div class="elv-callout-c">${content}</div>`
					: "";

			return `<div class="elv-callout${
				level ? ` elv-callout-${level}` : ""
			}">${labelHtml}${contentHtml}</div>`;
		}
	);

	eleventyConfig.addShortcode("tableofcontents", function (isOpen) {
		// Markdown only.
		if (this.page.inputPath.endsWith("md")) {
			return `<details class="toc"${isOpen ? " open" : ""}>
<summary>On this page</summary>

[[toc]]

</details>`;
		}
	});
}

config/minification.js (1.2 KiB)

import CleanCSS from "clean-css";
import { minify } from "terser";
import { readFileSync, writeFileSync, mkdirSync } from "node:fs";
import { parse } from "node:path";

export async function minifyJavaScriptFile(source, target) {
	let contents = readFileSync(source, "utf8");

	let { dir } = parse(target);
	mkdirSync(dir, {
		recursive: true
	});

	if (process.env.NODE_ENV === "production") {
		let minified = await minifyJavaScript(contents);
		writeFileSync(target, minified, "utf8")
	} else {
		writeFileSync(target, `/* [11ty-website] minification skipped during dev mode */\n${contents}`, "utf8")
	}
}

export async function minifyJavaScript(code) {
	return minify(code).then(result => result.code);
}

export default function (eleventyConfig) {
	eleventyConfig.addFilter("jsmin", async function(code) {
		if (process.env.NODE_ENV === "production") {
			return minifyJavaScript(code);
		}

		return `/* [11ty-website] minification skipped during dev mode */\n${code}`;
	});

	eleventyConfig.addFilter("cssmin", function (code) {
		if (process.env.NODE_ENV === "production") {
			return new CleanCSS({}).minify(code).styles;
		}

		return `/* [11ty-website] minification skipped during dev mode */\n${code}`;
	});
}

config/object-has.js (294 B)

export default function (obj, key, insensitive = true) {
	for (let objKey in obj) {
		if (insensitive) {
			if (
				typeof objKey === "string" &&
				objKey.toLowerCase() === key.toLowerCase()
			) {
				return true;
			}
		} else if (objKey === key) {
			return true;
		}
	}
	return false;
}

config/sidebarPlugin.js (1.2 KiB)

import { navigation } from "@11ty/eleventy-navigation";
import memoize, { memoizeClear } from "memoize";

function filterNavSidebar(collection = [], propName) {
	if(!propName) {
		return collection;
	}
	// filter out excludeFromSidebar items
	return collection.filter(item => {
		if(Array.isArray(item.children)) {
			item.children = filterNavSidebar(item.children, propName);
		}

		return Boolean(item.data?.eleventyNavigation) && item.data?.[propName] !== true;
	});
}
const navFn = memoize(function(key) {
	return filterNavSidebar(navigation.find(this.ctx.collections.all, key), "removedFeature");
});
const navFilteredFn = memoize(function(key) {
	return filterNavSidebar(navigation.find(this.ctx.collections.all, key), "excludeFromSidebar");
});
const navBreadcrumbsFn = memoize(function(key) {
	return navigation.findBreadcrumbs(this.ctx.collections.all, key, {includeSelf: true})
});

export default function(eleventyConfig) {

	eleventyConfig.on("eleventy.after", () => {
		memoizeClear(navFn);
		memoizeClear(navFilteredFn);
		memoizeClear(navBreadcrumbsFn);
	})
	eleventyConfig.addFilter("nav", navFn);
	eleventyConfig.addFilter("navFiltered", navFilteredFn);
	eleventyConfig.addFilter("navBreadcrumbs", navBreadcrumbsFn);
};

eleventy.config.js (1.6 KiB)

import syntaxHighlightPlugin from '@11ty/eleventy-plugin-syntaxhighlight';
import navigationPlugin from '@11ty/eleventy-navigation';
import mermaidPlugin from '@kevingimbel/eleventy-plugin-mermaid';

// Import modularized configurations
import customFilters from './src/_eleventy/filters.js';
import customCollections from './src/_eleventy/collections.js';
import passthroughConfig from './src/_eleventy/passthrough.js';

// Centralized path configuration
const PATHS = {
  input: 'src',
  output: '_site',
  includes: '_includes',
  layouts: '_includes/layouts',
  
  // Content paths
  articles: 'src/articles/*.md',
  
  // Asset paths
  css: 'src/css',
  img: 'src/img',
  js: 'src/js',
  styles: 'src/styles',
  
  // Root files for GitHub Pages
  rootFiles: ['CNAME', '.nojekyll']
};

export default function(eleventyConfig) {
  // Plugins
  eleventyConfig.addPlugin(syntaxHighlightPlugin);
  eleventyConfig.addPlugin(navigationPlugin);
  eleventyConfig.addPlugin(mermaidPlugin);

  // Configure passthrough copy
  passthroughConfig.setup(eleventyConfig, PATHS);

  // Add custom filters
  Object.keys(customFilters).forEach(filterName => {
    eleventyConfig.addFilter(filterName, customFilters[filterName]);
  });

  // Add custom collections
  Object.keys(customCollections).forEach(collectionName => {
    eleventyConfig.addCollection(collectionName, function(collectionApi) {
      return customCollections[collectionName](collectionApi, PATHS);
    });
  });

  return {
    dir: {
      input: PATHS.input,
      output: PATHS.output,
      includes: PATHS.includes,
      layouts: PATHS.layouts
    },
    markdownTemplateEngine: 'njk',
    htmlTemplateEngine: 'njk'
  };
}

eslint.config.js (2.6 KiB)

import js from '@eslint/js';

export default [
  js.configs.recommended,
  {
    languageOptions: {
      ecmaVersion: 2024,
      sourceType: 'module',
      globals: {
        // Node.js globals
        console: 'readonly',
        process: 'readonly',
        Buffer: 'readonly',
        __dirname: 'readonly',
        __filename: 'readonly',
        global: 'readonly',
        
        // Browser globals (for client-side JS)
        window: 'readonly',
        document: 'readonly',
        navigator: 'readonly',
        localStorage: 'readonly',
        sessionStorage: 'readonly',
        fetch: 'readonly',
        setTimeout: 'readonly',
        setInterval: 'readonly',
        clearTimeout: 'readonly',
        clearInterval: 'readonly',
        requestAnimationFrame: 'readonly',
        cancelAnimationFrame: 'readonly',
        location: 'readonly',
        scrollY: 'readonly',
        URL: 'readonly',
        HTMLElement: 'readonly',
        customElements: 'readonly',
        lucide: 'readonly'
      }
    },
    rules: {
      // Enforce coding standards
      'no-unused-vars': ['error', { 
        'argsIgnorePattern': '^_',
        'varsIgnorePattern': '^_' 
      }],
      'no-console': 'warn',
      'prefer-const': 'error',
      'no-var': 'error',
      'eqeqeq': ['error', 'always'],
      'curly': ['error', 'all'],
      
      // Style consistency
      'indent': ['error', 2],
      'quotes': ['error', 'single', { 'avoidEscape': true }],
      'semi': ['error', 'always'],
      'comma-dangle': ['error', 'never'],
      
      // Best practices
      'no-eval': 'error',
      'no-implied-eval': 'error',
      'no-new-func': 'error',
      'no-return-assign': 'error',
      'no-self-compare': 'error',
      'no-sequences': 'error',
      'no-throw-literal': 'error',
      'no-unmodified-loop-condition': 'error',
      'no-unused-expressions': 'error'
    }
  },
  {
    // Specific rules for Node.js files
    files: ['eleventy.config.js', 'scripts/**/*.js', 'config/**/*.js'],
    languageOptions: {
      globals: {
        module: 'readonly',
        require: 'readonly',
        exports: 'readonly'
      }
    },
    rules: {
      'no-console': 'off' // Allow console in Node.js files
    }
  },
  {
    // Ignore patterns
    ignores: [
      '_site/**',
      'node_modules/**',
      'src/_data/builtwith/**',
      'backup/**',
      'config/**',
      '*.min.js',
      '*.cjs',
      'test-email-obfuscation.html',
      'verify-cloudflare-setup.cjs',
      'cloudflare-email-setup.cjs',
      'src/_includes/snippets/**/*.js',
      'src/_includes/snippets/**/*.cjs'
    ]
  }
];

netlify.toml (54 B)

[build]
	publish = "_site"
	command = "npm run build"

package.json (3.3 KiB)

{
  "name": "sibyllinesoft.github.io",
  "version": "1.0.0",
  "description": "Sibylline Software website built with the official 11ty theme",
  "type": "module",
  "engines": {
    "node": ">=20"
  },
  "scripts": {
    "check-links": "npx check-html-links _site",
    "build": "npx @11ty/eleventy --quiet",
    "build-production": "npm run get-new-data && NODE_ENV=production npx @11ty/eleventy && npm run create-search-index",
    "start": "npx @11ty/eleventy --serve --quiet --port=8091 --incremental",
    "start-production": "NODE_ENV=production npx @11ty/eleventy --serve --quiet --port=8091",
    "create-search-index": "npx pagefind --site \"_site\" --glob \"{docs,blog}/**/*.html\"",
    "get-new-data": "node scripts/fetch-community-data.js",
    "lint": "eslint .",
    "lint:fix": "eslint . --fix",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:coverage": "vitest run --coverage",
    "test:ui": "vitest --ui",
    "format": "prettier --write '**/*.{js,css,html,md}'"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/sibyllinesoft/sibyllinesoft.github.io.git"
  },
  "author": {
    "name": "Sibylline Software",
    "email": "contact@sibylline.dev",
    "url": "https://sibyllinesoft.github.io"
  },
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/sibyllinesoft/sibyllinesoft.github.io/issues"
  },
  "homepage": "https://sibyllinesoft.github.io",
  "lint-staged": {
    "*.{js,css,md}": [
      "prettier --write",
      "git add"
    ]
  },
  "devDependencies": {
    "@11ty/eleventy": "4.0.0-alpha.4",
    "@11ty/eleventy-activity-feed": "^2.0.0",
    "@11ty/eleventy-fetch": "^5.1.0",
    "@11ty/eleventy-img": "^6.0.4",
    "@11ty/eleventy-navigation": "^1.0.4",
    "@11ty/eleventy-plugin-rss": "^2.0.4",
    "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.1",
    "@11ty/eleventy-plugin-webc": "^0.12.0-beta.3",
    "@11ty/font-awesome": "1.0.0-beta.12",
    "@11ty/image-color": "^1.0.6",
    "@11ty/webc": "0.11.3",
    "@eslint/js": "^9.33.0",
    "@kevingimbel/eleventy-plugin-mermaid": "^3.0.0",
    "@sindresorhus/slugify": "^2.2.1",
    "@tweetback/canonical": "^2.0.48",
    "@vitest/coverage-v8": "^3.2.4",
    "@vitest/ui": "^3.2.4",
    "clean-css": "^5.3.3",
    "comma-number": "^2.1.0",
    "degit": "^2.8.4",
    "dotenv": "^16.6.1",
    "entities": "^6.0.1",
    "eslint": "^9.33.0",
    "esm-import-transformer": "^3.0.3",
    "fast-glob": "^3.3.3",
    "fs-extra": "^11.3.0",
    "human-readable-numbers": "0.9.5",
    "lint-staged": "^16.1.5",
    "lodash": "^4.17.21",
    "luxon": "^3.7.1",
    "markdown-it-table-of-contents": "^0.9.0",
    "memoize": "^10.1.0",
    "mermaid": "^11.10.1",
    "namecheap-cli": "^1.3.1",
    "pagefind": "^1.3.0",
    "playwright": "^1.55.0",
    "prettier": "^3.6.2",
    "semver": "^7.7.2",
    "short-hash": "^1.0.0",
    "terser": "^5.43.1",
    "vitest": "^3.2.4",
    "wrangler": "^4.30.0"
  },
  "dependencies": {
    "@11ty/client": "4.0.0-alpha.3",
    "@11ty/is-land": "^5.0.0-beta.5",
    "@11ty/logo": "^2.0.6",
    "@zachleat/details-utils": "^2.0.2",
    "@zachleat/filter-container": "^4.0.0",
    "@zachleat/flex-luthor": "^4.0.2",
    "@zachleat/heading-anchors": "^1.0.3",
    "@zachleat/line-numbers": "^1.0.3",
    "@zachleat/seven-minute-tabs": "^3.0.2",
    "artificial-chart": "^2.0.3",
    "lite-youtube-embed": "^0.3.3",
    "speedlify-score": "^4.0.4"
  }
}

public/img/.gitkeep (0 B)


scripts/fetch-community-data.js (1.5 KiB)

#!/usr/bin/env node

/**
 * Fetch Community Data Script
 * 
 * Downloads the latest community data from the 11ty-community repository
 * to showcase projects built with Eleventy.
 * 
 * This script:
 * 1. Removes the existing builtwith directory to ensure clean data
 * 2. Uses degit to download the latest built-with-eleventy data
 * 3. Places the data in src/_data/builtwith/ for Eleventy to use
 */

import { execSync } from 'child_process';
import { existsSync, rmSync } from 'fs';
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';

const __dirname = dirname(fileURLToPath(import.meta.url));
const projectRoot = join(__dirname, '..');
const dataDir = join(projectRoot, 'src', '_data', 'builtwith');

console.log('šŸš€ Fetching latest community data from 11ty-community...');

try {
  // Remove existing data directory if it exists
  if (existsSync(dataDir)) {
    console.log('šŸ—‘ļø  Removing existing builtwith directory...');
    rmSync(dataDir, { recursive: true, force: true });
  }

  // Download fresh data using degit
  console.log('šŸ“„ Downloading fresh community data...');
  execSync('npx degit github:11ty/11ty-community/built-with-eleventy src/_data/builtwith/', {
    cwd: projectRoot,
    stdio: 'inherit'
  });

  console.log('āœ… Community data updated successfully!');
  console.log('šŸ’” The data is now available in src/_data/builtwith/');

} catch (error) {
  console.error('āŒ Error fetching community data:', error.message);
  process.exit(1);
}

src/404.md (455 B)


layout: simple.njk permalink: 404.html eleventyExcludeFromCollections: true


Page Not Found

Sorry, we couldn't find the page you were looking for.

What you can do:

src/_data/authorRedirects.json (31.4 KiB)

[
	{ "source": "/authors/georges_gomes/", "destination": "/authors/georges-gomes/", "statusCode": 301 },
	{ "source": "/authors/kcodeuk/", "destination": "/authors/jamesdoc/", "statusCode": 301 },
	{ "source": "/authors/ninjasoards/", "destination": "/authors/davidysoards/", "statusCode": 301 },
	{ "source": "/authors/rafalpast/", "destination": "/authors/paprikka/", "statusCode": 301 },
	{ "source": "/authors/pfrido/", "destination": "/authors/frido/", "statusCode": 301 },
	{ "source": "/authors/vincefalconi/", "destination": "/authors/vfalconi/", "statusCode": 301 },
	{ "source": "/authors/michelkroef/", "destination": "/authors/gr0t3man/", "statusCode": 301 },
	{ "source": "/authors/webcomp_dev/", "destination": "/authors/georges-gomes/", "statusCode": 301 },
	{ "source": "/authors/divriots/", "destination": "/authors/georges-gomes/", "statusCode": 301 },
	{ "source": "/authors/idrismaps/", "destination": "/authors/idris-maps/", "statusCode": 301 },
	{ "source": "/authors/toddlibby/", "destination": "/authors/colabottles/", "statusCode": 301 },
	{ "source": "/authors/tatlitaylan/", "destination": "/authors/taylantatli/", "statusCode": 301 },
	{ "source": "/authors/jgarber/", "destination": "/authors/jgarber623/", "statusCode": 301 },
	{ "source": "/authors/chinchang457/", "destination": "/authors/chinchang/", "statusCode": 301 },
	{ "source": "/authors/teacupgorilla/", "destination": "/authors/mirisuzanne/", "statusCode": 301 },
	{ "source": "/authors/oddbird/", "destination": "/authors/mirisuzanne/", "statusCode": 301 },
	{ "source": "/authors/uclausac/", "destination": "/authors/rvighne/", "statusCode": 301 },
	{ "source": "/authors/solucionet/", "destination": "/authors/jameos/", "statusCode": 301 },
	{ "source": "/authors/prestanda/", "destination": "/authors/jasondilworth56/", "statusCode": 301 },
	{ "source": "/authors/geteslint/", "destination": "/authors/eslint/", "statusCode": 301 },
	{ "source": "/authors/thegreengreek/", "destination": "/authors/siakaramalegos/", "statusCode": 301 },
	{ "source": "/authors/dennisview/", "destination": "/authors/dennishagemeier/", "statusCode": 301 },
	{ "source": "/authors/dkabardinov/", "destination": "/authors/dkab/", "statusCode": 301 },
	{ "source": "/authors/austinjs/", "destination": "/authors/stedman/", "statusCode": 301 },
	{ "source": "/authors/inmindos/", "destination": "/authors/binnyva/", "statusCode": 301 },
	{ "source": "/authors/angellguerra/", "destination": "/authors/angelguerra/", "statusCode": 301 },
	{ "source": "/authors/messypixels/", "destination": "/authors/angeliquejw/", "statusCode": 301 },
	{ "source": "/authors/lea_tortay/", "destination": "/authors/lea37/", "statusCode": 301 },
	{ "source": "/authors/midvintr/", "destination": "/authors/tobiasljungstrom/", "statusCode": 301 },
	{ "source": "/authors/nordhealthhq/", "destination": "/authors/arielsalminen/", "statusCode": 301 },
	{ "source": "/authors/gantrygames/", "destination": "/authors/deadlyswede/", "statusCode": 301 },
	{ "source": "/authors/raymondcamden/", "destination": "/authors/cfjedimaster/", "statusCode": 301 },
	{ "source": "/authors/goodxicosousa/", "destination": "/authors/jfranciscosousa/", "statusCode": 301 },
	{ "source": "/authors/andrewrpucci/", "destination": "/authors/andrewpucci/", "statusCode": 301 },
	{ "source": "/authors/shotplot/", "destination": "/authors/andrewpucci/", "statusCode": 301 },
	{ "source": "/authors/heydonworks/", "destination": "/authors/heydon/", "statusCode": 301 },
	{ "source": "/authors/filamentgroup/", "destination": "/authors/zachleat/", "statusCode": 301 },
	{ "source": "/authors/nejsconf/", "destination": "/authors/zachleat/", "statusCode": 301 },
	{ "source": "/authors/eleven_ty/", "destination": "/authors/zachleat/", "statusCode": 301 },
	{ "source": "/authors/iamchrisburnell/", "destination": "/authors/chrisburnell/", "statusCode": 301 },
	{ "source": "/authors/philw_/", "destination": "/authors/philwolstenholme/", "statusCode": 301 },
	{ "source": "/authors/borjasolerme/", "destination": "/authors/fusilli/", "statusCode": 301 },
	{ "source": "/authors/piotrswiderek/", "destination": "/authors/fusilli/", "statusCode": 301 },
	{ "source": "/authors/lp_cast/", "destination": "/authors/pepelsbey/", "statusCode": 301 },
	{ "source": "/authors/everywhereschl/", "destination": "/authors/greatislander/", "statusCode": 301 },
	{ "source": "/authors/freetransityeg/", "destination": "/authors/greatislander/", "statusCode": 301 },
	{ "source": "/authors/bightconsulting/", "destination": "/authors/greatislander/", "statusCode": 301 },
	{ "source": "/authors/sleepasloth/", "destination": "/authors/alanmosely/", "statusCode": 301 },
	{ "source": "/authors/andrealeard/", "destination": "/authors/andrealeardini/", "statusCode": 301 },
	{ "source": "/authors/webwewantfyi/", "destination": "/authors/aarongustafson/", "statusCode": 301 },
	{ "source": "/authors/cjtype/", "destination": "/authors/cjdunn/", "statusCode": 301 },
	{ "source": "/authors/thomasclausendk/", "destination": "/authors/thomasclausen/", "statusCode": 301 },
	{ "source": "/authors/shareanddance/", "destination": "/authors/covallee/", "statusCode": 301 },
	{ "source": "/authors/dave_powers/", "destination": "/authors/djpowers/", "statusCode": 301 },
	{ "source": "/authors/smthdotuk/", "destination": "/authors/smth/", "statusCode": 301 },
	{ "source": "/authors/bmkoser/", "destination": "/authors/briankoser/", "statusCode": 301 },
	{ "source": "/authors/alex_kaul/", "destination": "/authors/alexk111/", "statusCode": 301 },
	{ "source": "/authors/frontend_weekly/", "destination": "/authors/studiomohawk/", "statusCode": 301 },
	{ "source": "/authors/herr_rise/", "destination": "/authors/rise05/", "statusCode": 301 },
	{ "source": "/authors/ogarcia_es/", "destination": "/authors/oscc-es/", "statusCode": 301 },
	{ "source": "/authors/bejamas_io/", "destination": "/authors/thomkrupa/", "statusCode": 301 },
	{ "source": "/authors/piccalilli_/", "destination": "/authors/hankchizljaw/", "statusCode": 301 },
	{ "source": "/authors/mmatuzo/", "destination": "/authors/matuzo/", "statusCode": 301 },
	{ "source": "/authors/achteintel/", "destination": "/authors/deponewd/", "statusCode": 301 },
	{ "source": "/authors/cjlmiles/", "destination": "/authors/cjlm/", "statusCode": 301 },
	{ "source": "/authors/bholmesdev/", "destination": "/authors/holben888/", "statusCode": 301 },
	{ "source": "/authors/swithinbank/", "destination": "/authors/delucis/", "statusCode": 301 },
	{ "source": "/authors/hybrid_alex/", "destination": "/authors/alexcarpenter/", "statusCode": 301 },
	{ "source": "/authors/jens_riboe/", "destination": "/authors/ribomation/", "statusCode": 301 },
	{ "source": "/authors/manuelwieser/", "destination": "/authors/lorti/", "statusCode": 301 },
	{ "source": "/authors/scottmccracken/", "destination": "/authors/smccracken/", "statusCode": 301 },
	{ "source": "/authors/chocosculptress/", "destination": "/authors/smccracken/", "statusCode": 301 },
	{ "source": "/authors/carcomplaints/", "destination": "/authors/smccracken/", "statusCode": 301 },
	{ "source": "/authors/casseylottman/", "destination": "/authors/clottman/", "statusCode": 301 },
	{ "source": "/authors/vtcodecamp/", "destination": "/authors/kylemit/", "statusCode": 301 },
	{ "source": "/authors/calum_ryan/", "destination": "/authors/calumryan/", "statusCode": 301 },
	{ "source": "/authors/yiddishkeitinfo/", "destination": "/authors/hhm0/", "statusCode": 301 },
	{ "source": "/authors/malimirkeccita/", "destination": "/authors/malimirkec/", "statusCode": 301 },
	{ "source": "/authors/peggy_web/", "destination": "/authors/peggy535/", "statusCode": 301 },
	{ "source": "/authors/ltb_lucas/", "destination": "/authors/lovethebomb/", "statusCode": 301 },
	{ "source": "/authors/t12t/", "destination": "/authors/kolombiken/", "statusCode": 301 },
	{ "source": "/authors/sm0kedev/", "destination": "/authors/app-generator/", "statusCode": 301 },
	{ "source": "/authors/devolute/", "destination": "/authors/iparr/", "statusCode": 301 },
	{ "source": "/authors/frontendnorth/", "destination": "/authors/iparr/", "statusCode": 301 },
	{ "source": "/authors/lamboz_loose/", "destination": "/authors/maxlambertini/", "statusCode": 301 },
	{ "source": "/authors/embl/", "destination": "/authors/khawkins98/", "statusCode": 301 },
	{ "source": "/authors/seancdavis29/", "destination": "/authors/seancdavis/", "statusCode": 301 },
	{ "source": "/authors/jkc_codes/", "destination": "/authors/jkc-codes/", "statusCode": 301 },
	{ "source": "/authors/jouni_kantola/", "destination": "/authors/jouni-kantola/", "statusCode": 301 },
	{ "source": "/authors/samd/", "destination": "/authors/sdalmonte/", "statusCode": 301 },
	{ "source": "/authors/rbnsl_/", "destination": "/authors/rbnsl/", "statusCode": 301 },
	{ "source": "/authors/brianfive/", "destination": "/authors/briangershon/", "statusCode": 301 },
	{ "source": "/authors/christian_fei/", "destination": "/authors/christian-fei/", "statusCode": 301 },
	{ "source": "/authors/pepopowitz/", "destination": "/authors/csakiistvan/", "statusCode": 301 },
	{ "source": "/authors/krzychukula/", "destination": "/authors/csakiistvan/", "statusCode": 301 },
	{ "source": "/authors/ajmalafif/", "destination": "/authors/csakiistvan/", "statusCode": 301 },
	{ "source": "/authors/cjamcl/", "destination": "/authors/connorjclark/", "statusCode": 301 },
	{ "source": "/authors/mxbck/", "destination": "/authors/maxboeck/", "statusCode": 301 },
	{ "source": "/authors/webperfreport/", "destination": "/authors/edwinmh/", "statusCode": 301 },
	{ "source": "/authors/fylgjadev/", "destination": "/authors/grimlink/", "statusCode": 301 },
	{ "source": "/authors/lerhonewalker/", "destination": "/authors/lerhone/", "statusCode": 301 },
	{ "source": "/authors/iwebst/", "destination": "/authors/typpo/", "statusCode": 301 },
	{ "source": "/authors/itsleeohgee/", "destination": "/authors/leo-generali/", "statusCode": 301 },
	{ "source": "/authors/5onderling/", "destination": "/authors/lennyanders/", "statusCode": 301 },
	{ "source": "/authors/dodothebird/", "destination": "/authors/doganozturk/", "statusCode": 301 },
	{ "source": "/authors/kai_cataldo/", "destination": "/authors/kaicataldo/", "statusCode": 301 },
	{ "source": "/authors/noelle__leigh/", "destination": "/authors/noelleleigh/", "statusCode": 301 },
	{ "source": "/authors/liatrisbian/", "destination": "/authors/sarahfossheim/", "statusCode": 301 },
	{ "source": "/authors/hendricks_rocks/", "destination": "/authors/dennishendricks/", "statusCode": 301 },
	{ "source": "/authors/klohfr/", "destination": "/authors/kloh-fr/", "statusCode": 301 },
	{ "source": "/authors/torkna/", "destination": "/authors/torstenknabe/", "statusCode": 301 },
	{ "source": "/authors/dailydevtips1/", "destination": "/authors/rebelchris/", "statusCode": 301 },
	{ "source": "/authors/redsesame/", "destination": "/authors/wilto/", "statusCode": 301 },
	{ "source": "/authors/bradtaunt/", "destination": "/authors/bradleytaunt/", "statusCode": 301 },
	{ "source": "/authors/ramigsdev/", "destination": "/authors/ramigs/", "statusCode": 301 },
	{ "source": "/authors/darek_kay/", "destination": "/authors/darekkay/", "statusCode": 301 },
	{ "source": "/authors/_coolcut/", "destination": "/authors/coolcut/", "statusCode": 301 },
	{ "source": "/authors/equilibrario/", "destination": "/authors/ilterra/", "statusCode": 301 },
	{ "source": "/authors/_ilterra/", "destination": "/authors/ilterra/", "statusCode": 301 },
	{ "source": "/authors/isfotis/", "destination": "/authors/fpapado/", "statusCode": 301 },
	{ "source": "/authors/derekhoman/", "destination": "/authors/dhoman/", "statusCode": 301 },
	{ "source": "/authors/josefbiehler/", "destination": "/authors/gabbersepp/", "statusCode": 301 },
	{ "source": "/authors/kackdev/", "destination": "/authors/gabbersepp/", "statusCode": 301 },
	{ "source": "/authors/ryancaodev/", "destination": "/authors/ryanccn/", "statusCode": 301 },
	{ "source": "/authors/sat_purusha/", "destination": "/authors/satpurusha/", "statusCode": 301 },
	{ "source": "/authors/spekulatius1984/", "destination": "/authors/spekulatius/", "statusCode": 301 },
	{ "source": "/authors/coreydmccarty/", "destination": "/authors/xanderyzwich/", "statusCode": 301 },
	{ "source": "/authors/maprunnergb/", "destination": "/authors/maprunner/", "statusCode": 301 },
	{ "source": "/authors/vincentlistens/", "destination": "/authors/vipickering/", "statusCode": 301 },
	{ "source": "/authors/parthshiralkar/", "destination": "/authors/partheus/", "statusCode": 301 },
	{ "source": "/authors/higby_/", "destination": "/authors/higby/", "statusCode": 301 },
	{ "source": "/authors/dassurma/", "destination": "/authors/surma/", "statusCode": 301 },
	{ "source": "/authors/muted_io/", "destination": "/authors/mutedio/", "statusCode": 301 },
	{ "source": "/authors/ffffffuel/", "destination": "/authors/mutedio/", "statusCode": 301 },
	{ "source": "/authors/stoptxeviction/", "destination": "/authors/huphtur/", "statusCode": 301 },
	{ "source": "/authors/misprintedtype/", "destination": "/authors/zoepage/", "statusCode": 301 },
	{ "source": "/authors/seccltech/", "destination": "/authors/daviddarnes/", "statusCode": 301 },
	{ "source": "/authors/_fricca_/", "destination": "/authors/fricca/", "statusCode": 301 },
	{ "source": "/authors/mapledesign/", "destination": "/authors/pbowyer/", "statusCode": 301 },
	{ "source": "/authors/codingchaos/", "destination": "/authors/smhigley/", "statusCode": 301 },
	{ "source": "/authors/mattclaffey1/", "destination": "/authors/code-mattclaffey/", "statusCode": 301 },
	{ "source": "/authors/patrick153/", "destination": "/authors/patrickxchong/", "statusCode": 301 },
	{ "source": "/authors/spaghetti_emoji/", "destination": "/authors/iamkevingreen/", "statusCode": 301 },
	{ "source": "/authors/marutchell/", "destination": "/authors/nuotsu/", "statusCode": 301 },
	{ "source": "/authors/alesandroortizr/", "destination": "/authors/alesandroortiz/", "statusCode": 301 },
	{ "source": "/authors/chronotope/", "destination": "/authors/aramzs/", "statusCode": 301 },
	{ "source": "/authors/iainmbean/", "destination": "/authors/inbn/", "statusCode": 301 },
	{ "source": "/authors/tatianatmac/", "destination": "/authors/tatianamac/", "statusCode": 301 },
	{ "source": "/authors/sprucekhalifa/", "destination": "/authors/iamspruce/", "statusCode": 301 },
	{ "source": "/authors/originalzedders/", "destination": "/authors/zgparsons/", "statusCode": 301 },
	{ "source": "/authors/hmillerdev/", "destination": "/authors/arthyn/", "statusCode": 301 },
	{ "source": "/authors/fumesvoice/", "destination": "/authors/fumes/", "statusCode": 301 },
	{ "source": "/authors/wiltomakesfood/", "destination": "/authors/wilto/", "statusCode": 301 },
	{ "source": "/authors/piraces_/", "destination": "/authors/piraces/", "statusCode": 301 },
	{ "source": "/authors/cadotgov/", "destination": "/authors/aaronhans/", "statusCode": 301 },
	{ "source": "/authors/fixa11y/", "destination": "/authors/kilian/", "statusCode": 301 },
	{ "source": "/authors/__tmns/", "destination": "/authors/tmns/", "statusCode": 301 },
	{ "source": "/authors/emilyknowshtml/", "destination": "/authors/kittenlogic/", "statusCode": 301 },
	{ "source": "/authors/mohitkarekar/", "destination": "/authors/mohitk05/", "statusCode": 301 },
	{ "source": "/authors/mauro_pfister/", "destination": "/authors/mauropfister/", "statusCode": 301 },
	{ "source": "/authors/marabyte_/", "destination": "/authors/marabyte/", "statusCode": 301 },
	{ "source": "/authors/binyamingreen/", "destination": "/authors/binyamin/", "statusCode": 301 },
	{ "source": "/authors/mikeriethmuller/", "destination": "/authors/madebymike/", "statusCode": 301 },
	{ "source": "/authors/forge_icons/", "destination": "/authors/swaroopsm/", "statusCode": 301 },
	{ "source": "/authors/slightlylate/", "destination": "/authors/slightlyoff/", "statusCode": 301 },
	{ "source": "/authors/phae/", "destination": "/authors/slightlyoff/", "statusCode": 301 },
	{ "source": "/authors/defaced/", "destination": "/authors/workeffortwaste/", "statusCode": 301 },
	{ "source": "/authors/commons_ml/", "destination": "/authors/maxackerman/", "statusCode": 301 },
	{ "source": "/authors/chrisdwheatley_/", "destination": "/authors/chrisdwheatley/", "statusCode": 301 },
	{ "source": "/authors/wirgen89/", "destination": "/authors/wirgen/", "statusCode": 301 },
	{ "source": "/authors/hovhadovah/", "destination": "/authors/aleksandrhovhannisyan/", "statusCode": 301 },
	{ "source": "/authors/liambulson/", "destination": "/authors/b-liam/", "statusCode": 301 },
	{ "source": "/authors/scottishstoater/", "destination": "/authors/chrissy-dev/", "statusCode": 301 },
	{ "source": "/authors/gourmonds/", "destination": "/authors/dlehmann/", "statusCode": 301 },
	{ "source": "/authors/xeeaton/", "destination": "/authors/eatonz/", "statusCode": 301 },
	{ "source": "/authors/adrianbecedev/", "destination": "/authors/codeadrian/", "statusCode": 301 },
	{ "source": "/authors/laceysnr/", "destination": "/authors/mattlacey/", "statusCode": 301 },
	{ "source": "/authors/danleatherman/", "destination": "/authors/dleatherman/", "statusCode": 301 },
	{ "source": "/authors/murtuza_surti/", "destination": "/authors/murtuzaalisurti/", "statusCode": 301 },
	{ "source": "/authors/mdmgl/", "destination": "/authors/marisademeglio/", "statusCode": 301 },
	{ "source": "/authors/davidojedal/", "destination": "/authors/davidojedalopez/", "statusCode": 301 },
	{ "source": "/authors/allanebdrup/", "destination": "/authors/ebdrup/", "statusCode": 301 },
	{ "source": "/authors/vladzinculescu/", "destination": "/authors/zoreet/", "statusCode": 301 },
	{ "source": "/authors/michaelsupdates/", "destination": "/authors/mrolfsen/", "statusCode": 301 },
	{ "source": "/authors/declan_byrd/", "destination": "/authors/declanbyrd/", "statusCode": 301 },
	{ "source": "/authors/chromatichq/", "destination": "/authors/markdorison/", "statusCode": 301 },
	{ "source": "/authors/_maximization/", "destination": "/authors/maximization/", "statusCode": 301 },
	{ "source": "/authors/_amorgunov/", "destination": "/authors/noveogroup-amorgunov/", "statusCode": 301 },
	{ "source": "/authors/granttransition/", "destination": "/authors/grantsmithdoddle/", "statusCode": 301 },
	{ "source": "/authors/grantsmith1974/", "destination": "/authors/grantsmithdoddle/", "statusCode": 301 },
	{ "source": "/authors/cathy_dutton/", "destination": "/authors/cathydutton/", "statusCode": 301 },
	{ "source": "/authors/sindreboyum/", "destination": "/authors/boyum/", "statusCode": 301 },
	{ "source": "/authors/thet0m/", "destination": "/authors/ttntm/", "statusCode": 301 },
	{ "source": "/authors/charitybiscuits/", "destination": "/authors/badlydrawnben/", "statusCode": 301 },
	{ "source": "/authors/thetalesofimmo/", "destination": "/authors/medienlampe/", "statusCode": 301 },
	{ "source": "/authors/eduardo__uribe/", "destination": "/authors/javascripty/", "statusCode": 301 },
	{ "source": "/authors/oisinq_/", "destination": "/authors/oisinq/", "statusCode": 301 },
	{ "source": "/authors/michaelwdelaney/", "destination": "/authors/mwdelaney/", "statusCode": 301 },
	{ "source": "/authors/marcoslooten/", "destination": "/authors/mslooten/", "statusCode": 301 },
	{ "source": "/authors/katiekodes/", "destination": "/authors/kkgthb/", "statusCode": 301 },
	{ "source": "/authors/motorfang/", "destination": "/authors/tkroo/", "statusCode": 301 },
	{ "source": "/authors/Andrewrico/", "destination": "/authors/andrewrico/", "statusCode": 301 },
	{ "source": "/authors/J-Filip/", "destination": "/authors/j-filip/", "statusCode":  301 },
	{ "source": "/authors/Gr0t3Man/", "destination": "/authors/gr0t3man/", "statusCode":  301 },
	{ "source": "/authors/RamblingRoss/", "destination": "/authors/ramblingross/", "statusCode":  301 },
	{ "source": "/authors/webworkerJoshua/", "destination": "/authors/webworkerjoshua/", "statusCode":  301 },
	{ "source": "/authors/TaylanTatli/", "destination": "/authors/taylantatli/", "statusCode":  301 },
	{ "source": "/authors/techCarpenter/", "destination": "/authors/techcarpenter/", "statusCode":  301 },
	{ "source": "/authors/MiriSuzanne/", "destination": "/authors/mirisuzanne/", "statusCode":  301 },
	{ "source": "/authors/Riggd/", "destination": "/authors/riggd/", "statusCode":  301 },
	{ "source": "/authors/Micah-T/", "destination": "/authors/micah-t/", "statusCode":  301 },
	{ "source": "/authors/TixieBorg/", "destination": "/authors/tixieborg/", "statusCode":  301 },
	{ "source": "/authors/Dietr/", "destination": "/authors/dietr/", "statusCode":  301 },
	{ "source": "/authors/KingYam/", "destination": "/authors/kingyam/", "statusCode":  301 },
	{ "source": "/authors/dKab/", "destination": "/authors/dkab/", "statusCode":  301 },
	{ "source": "/authors/Accudio/", "destination": "/authors/accudio/", "statusCode":  301 },
	{ "source": "/authors/KhoiUna/", "destination": "/authors/khoiuna/", "statusCode":  301 },
	{ "source": "/authors/AndersAskeland/", "destination": "/authors/andersaskeland/", "statusCode":  301 },
	{ "source": "/authors/AngelGuerra/", "destination": "/authors/angelguerra/", "statusCode":  301 },
	{ "source": "/authors/MyXoToD/", "destination": "/authors/myxotod/", "statusCode":  301 },
	{ "source": "/authors/Alshie/", "destination": "/authors/alshie/", "statusCode":  301 },
	{ "source": "/authors/KingScroll/", "destination": "/authors/kingscroll/", "statusCode":  301 },
	{ "source": "/authors/DeadlySwede/", "destination": "/authors/deadlyswede/", "statusCode":  301 },
	{ "source": "/authors/LeaVerou/", "destination": "/authors/leaverou/", "statusCode":  301 },
	{ "source": "/authors/Nooshu/", "destination": "/authors/nooshu/", "statusCode":  301 },
	{ "source": "/authors/aldrDev/", "destination": "/authors/aldrdev/", "statusCode":  301 },
	{ "source": "/authors/ShaneHudson/", "destination": "/authors/shanehudson/", "statusCode":  301 },
	{ "source": "/authors/TomaterID/", "destination": "/authors/tomaterid/", "statusCode":  301 },
	{ "source": "/authors/Heydon/", "destination": "/authors/heydon/", "statusCode":  301 },
	{ "source": "/authors/JPKCom/", "destination": "/authors/jpkcom/", "statusCode":  301 },
	{ "source": "/authors/NVolcz/", "destination": "/authors/nvolcz/", "statusCode":  301 },
	{ "source": "/authors/ItsMeAra/", "destination": "/authors/itsmeara/", "statusCode":  301 },
	{ "source": "/authors/KiwiKilian/", "destination": "/authors/kiwikilian/", "statusCode":  301 },
	{ "source": "/authors/Amitind/", "destination": "/authors/amitind/", "statusCode":  301 },
	{ "source": "/authors/EleonJonker/", "destination": "/authors/eleonjonker/", "statusCode":  301 },
	{ "source": "/authors/deponeWD/", "destination": "/authors/deponewd/", "statusCode":  301 },
	{ "source": "/authors/CodeFoodPixels/", "destination": "/authors/codefoodpixels/", "statusCode":  301 },
	{ "source": "/authors/ZacharyCrespin/", "destination": "/authors/zacharycrespin/", "statusCode":  301 },
	{ "source": "/authors/MartyNZ/", "destination": "/authors/martynz/", "statusCode":  301 },
	{ "source": "/authors/JamesTsetsekas/", "destination": "/authors/jamestsetsekas/", "statusCode":  301 },
	{ "source": "/authors/Yeshwanthyk/", "destination": "/authors/yeshwanthyk/", "statusCode":  301 },
	{ "source": "/authors/Holben888/", "destination": "/authors/holben888/", "statusCode":  301 },
	{ "source": "/authors/Ansimorph/", "destination": "/authors/ansimorph/", "statusCode":  301 },
	{ "source": "/authors/Guirdo/", "destination": "/authors/guirdo/", "statusCode":  301 },
	{ "source": "/authors/JanDW/", "destination": "/authors/jandw/", "statusCode":  301 },
	{ "source": "/authors/Lorti/", "destination": "/authors/lorti/", "statusCode":  301 },
	{ "source": "/authors/KyleMit/", "destination": "/authors/kylemit/", "statusCode":  301 },
	{ "source": "/authors/Afif13/", "destination": "/authors/afif13/", "statusCode":  301 },
	{ "source": "/authors/maliMirkec/", "destination": "/authors/malimirkec/", "statusCode":  301 },
	{ "source": "/authors/Dermah/", "destination": "/authors/dermah/", "statusCode":  301 },
	{ "source": "/authors/Peggy535/", "destination": "/authors/peggy535/", "statusCode":  301 },
	{ "source": "/authors/Kolombiken/", "destination": "/authors/kolombiken/", "statusCode":  301 },
	{ "source": "/authors/David-Way/", "destination": "/authors/david-way/", "statusCode":  301 },
	{ "source": "/authors/Javascripty/", "destination": "/authors/javascripty/", "statusCode":  301 },
	{ "source": "/authors/MoritzGiessmann/", "destination": "/authors/moritzgiessmann/", "statusCode":  301 },
	{ "source": "/authors/JKC-Codes/", "destination": "/authors/jkc-codes/", "statusCode":  301 },
	{ "source": "/authors/Midknight/", "destination": "/authors/midknight/", "statusCode":  301 },
	{ "source": "/authors/TigersWay/", "destination": "/authors/tigersway/", "statusCode":  301 },
	{ "source": "/authors/BenjaminEHowe/", "destination": "/authors/benjaminehowe/", "statusCode":  301 },
	{ "source": "/authors/BenDMyers/", "destination": "/authors/bendmyers/", "statusCode":  301 },
	{ "source": "/authors/Christopher-Hayes/", "destination": "/authors/christopher-hayes/", "statusCode":  301 },
	{ "source": "/authors/Reedyn/", "destination": "/authors/reedyn/", "statusCode":  301 },
	{ "source": "/authors/Psypher1/", "destination": "/authors/psypher1/", "statusCode":  301 },
	{ "source": "/authors/AdamJ/", "destination": "/authors/adamj/", "statusCode":  301 },
	{ "source": "/authors/GrimLink/", "destination": "/authors/grimlink/", "statusCode":  301 },
	{ "source": "/authors/VicFleur/", "destination": "/authors/vicfleur/", "statusCode":  301 },
	{ "source": "/authors/Snapstromegon/", "destination": "/authors/snapstromegon/", "statusCode":  301 },
	{ "source": "/authors/SilvestriStefano/", "destination": "/authors/silvestristefano/", "statusCode":  301 },
	{ "source": "/authors/AnalyzePlatypus/", "destination": "/authors/analyzeplatypus/", "statusCode":  301 },
	{ "source": "/authors/EllyLoel/", "destination": "/authors/ellyloel/", "statusCode":  301 },
	{ "source": "/authors/Bassetts/", "destination": "/authors/bassetts/", "statusCode":  301 },
	{ "source": "/authors/AlbertoPrado70/", "destination": "/authors/albertoprado70/", "statusCode":  301 },
	{ "source": "/authors/EdwardSivyour/", "destination": "/authors/edwardsivyour/", "statusCode":  301 },
	{ "source": "/authors/GeauxWeisbeck4/", "destination": "/authors/geauxweisbeck4/", "statusCode":  301 },
	{ "source": "/authors/Bigaston/", "destination": "/authors/bigaston/", "statusCode":  301 },
	{ "source": "/authors/Porges/", "destination": "/authors/porges/", "statusCode":  301 },
	{ "source": "/authors/HerzogVonWiesel/", "destination": "/authors/herzogvonwiesel/", "statusCode":  301 },
	{ "source": "/authors/StetsonRamey/", "destination": "/authors/stetsonramey/", "statusCode":  301 },
	{ "source": "/authors/charlesLoder/", "destination": "/authors/charlesloder/", "statusCode":  301 },
	{ "source": "/authors/SatPurusha/", "destination": "/authors/satpurusha/", "statusCode":  301 },
	{ "source": "/authors/FrankBechstein/", "destination": "/authors/frankbechstein/", "statusCode":  301 },
	{ "source": "/authors/Maprunner/", "destination": "/authors/maprunner/", "statusCode":  301 },
	{ "source": "/authors/Zlushiie/", "destination": "/authors/zlushiie/", "statusCode":  301 },
	{ "source": "/authors/JayCuthrell/", "destination": "/authors/jaycuthrell/", "statusCode":  301 },
	{ "source": "/authors/BrettMN/", "destination": "/authors/brettmn/", "statusCode":  301 },
	{ "source": "/authors/Obspogon/", "destination": "/authors/obspogon/", "statusCode":  301 },
	{ "source": "/authors/Akashic101/", "destination": "/authors/akashic101/", "statusCode":  301 },
	{ "source": "/authors/ScreenDream/", "destination": "/authors/screendream/", "statusCode":  301 },
	{ "source": "/authors/Bullrich/", "destination": "/authors/bullrich/", "statusCode":  301 },
	{ "source": "/authors/tjFogarty/", "destination": "/authors/tjfogarty/", "statusCode":  301 },
	{ "source": "/authors/AramZS/", "destination": "/authors/aramzs/", "statusCode":  301 },
	{ "source": "/authors/Wilto/", "destination": "/authors/wilto/", "statusCode":  301 },
	{ "source": "/authors/ShadowfaxRodeo/", "destination": "/authors/shadowfaxrodeo/", "statusCode":  301 },
	{ "source": "/authors/Polarhardboiled/", "destination": "/authors/polarhardboiled/", "statusCode":  301 },
	{ "source": "/authors/AlphaBeta906/", "destination": "/authors/alphabeta906/", "statusCode":  301 },
	{ "source": "/authors/Boldewyn/", "destination": "/authors/boldewyn/", "statusCode":  301 },
	{ "source": "/authors/Kilian/", "destination": "/authors/kilian/", "statusCode":  301 },
	{ "source": "/authors/KevinGimbel/", "destination": "/authors/kevingimbel/", "statusCode":  301 },
	{ "source": "/authors/maliMirkec/", "destination": "/authors/malimirkec/", "statusCode":  301 },
	{ "source": "/authors/Gyanreyer/", "destination": "/authors/gyanreyer/", "statusCode":  301 },
	{ "source": "/authors/MauroPfister/", "destination": "/authors/mauropfister/", "statusCode":  301 },
	{ "source": "/authors/MeFoDy/", "destination": "/authors/mefody/", "statusCode":  301 },
	{ "source": "/authors/FrostKiwi/", "destination": "/authors/frostkiwi/", "statusCode":  301 },
	{ "source": "/authors/Marabyte/", "destination": "/authors/marabyte/", "statusCode":  301 },
	{ "source": "/authors/Schepp/", "destination": "/authors/schepp/", "statusCode":  301 },
	{ "source": "/authors/MadeByMike/", "destination": "/authors/madebymike/", "statusCode":  301 },
	{ "source": "/authors/Vranjan7077/", "destination": "/authors/vranjan7077/", "statusCode":  301 },
	{ "source": "/authors/Recidvst/", "destination": "/authors/recidvst/", "statusCode":  301 },
	{ "source": "/authors/AleksandrHovhannisyan/", "destination": "/authors/aleksandrhovhannisyan/", "statusCode":  301 },
	{ "source": "/authors/JackHowa/", "destination": "/authors/jackhowa/", "statusCode":  301 },
	{ "source": "/authors/Pustelto/", "destination": "/authors/pustelto/", "statusCode":  301 },
	{ "source": "/authors/WhatIsHeDoing/", "destination": "/authors/whatishedoing/", "statusCode":  301 },
	{ "source": "/authors/B-Liam/", "destination": "/authors/b-liam/", "statusCode":  301 },
	{ "source": "/authors/EatonZ/", "destination": "/authors/eatonz/", "statusCode":  301 },
	{ "source": "/authors/codeAdrian/", "destination": "/authors/codeadrian/", "statusCode":  301 },
	{ "source": "/authors/ChadoNihi/", "destination": "/authors/chadonihi/", "statusCode":  301 },
	{ "source": "/authors/DougReeder/", "destination": "/authors/dougreeder/", "statusCode":  301 },
	{ "source": "/authors/CondensedMilk7/", "destination": "/authors/condensedmilk7/", "statusCode":  301 },
	{ "source": "/authors/LucianoLaratelli/", "destination": "/authors/lucianolaratelli/", "statusCode":  301 },
	{ "source": "/authors/Jak2k/", "destination": "/authors/jak2k/", "statusCode":  301 },
	{ "source": "/authors/Savjee/", "destination": "/authors/savjee/", "statusCode":  301 },
	{ "source": "/authors/Maximization/", "destination": "/authors/maximization/", "statusCode":  301 },
	{ "source": "/authors/WebInspectInc/", "destination": "/authors/webinspectinc/", "statusCode":  301 },
	{ "source": "/authors/GrantSmithDoddle/", "destination": "/authors/grantsmithdoddle/", "statusCode":  301 },
	{ "source": "/authors/Hamatti/", "destination": "/authors/hamatti/", "statusCode":  301 },
	{ "source": "/authors/TomekMelissa/", "destination": "/authors/tomekmelissa/", "statusCode":  301 },
	{ "source": "/authors/TGiles/", "destination": "/authors/tgiles/", "statusCode":  301 },
	{ "source": "/authors/LazarQt/", "destination": "/authors/lazarqt/", "statusCode":  301 },
	{ "source": "/authors/LkeMitchll/", "destination": "/authors/lkemitchll/", "statusCode":  301 },
	{ "source": "/authors/PrzemekMiros/", "destination": "/authors/przemekmiros/", "statusCode":  301 },
	{ "source": "/authors/MWDelaney/", "destination": "/authors/mwdelaney/", "statusCode":  301 }
]

src/_data/builtwith/-1R2-Wp5Q9.json (102 B)

{
  "url": "https://www.ineliagestion.com/",
  "opened_by": "madrilene",
  "opencollective": "lene"
}

src/_data/builtwith/-53UFXoAUo.json (235 B)

{
  "url": "https://alex.zappa.dev/",
  "source_url": "https://github.com/reatlat/alex.zappa.dev",
  "authors": [
    "reatlat"
  ],
  "opencollective": "reatlat",
  "business_url": "",
  "business_name": "",
  "opened_by": "reatlat"
}

src/_data/builtwith/-ElNhyTDFi.json (176 B)

{
  "url": "https://andrewrico.com/",
  "source_url": "https://github.com/Andrewrico/andrewrico.com",
  "opened_by": "Andrewrico",
  "business_url": "https://andrewrico.com/"
}

src/_data/builtwith/-GrGUCOmgL.json (186 B)

{
  "url": "https://jamesdoc.com/",
  "source_url": "https://github.com/jamesdoc/jamesdoc.com",
  "opened_by": "jamesdoc",
  "_backup_opened_by": "twitter:jamesdoc",
  "authors": [
  ]
}

src/_data/builtwith/-JCVxh5uRY.json (216 B)

{
  "url": "https://louisville.aiga.org/awards-show-2019/",
  "source_url": "https://github.com/davidysoards/aiga-louisville-awards-2019",
  "opened_by": "davidysoards",
  "_backup_opened_by": "twitter:ninjasoards"
}

src/_data/builtwith/-MJbR1dNrV.json (161 B)

{
  "url": "https://sonnet.io/",
  "source_url": "https://github.com/paprikka/sonnet.io",
  "opened_by": "paprikka",
  "_backup_opened_by": "twitter:rafalpast"
}

src/_data/builtwith/-NDh8VTFXj.json (217 B)

{
  "url": "https://uncenter.dev/",
  "source_url": "https://github.com/uncenter/uncenter.dev",
  "authors": [],
  "opencollective": "uncenter",
  "business_url": "",
  "business_name": "",
  "opened_by": "uncenter"
}

src/_data/builtwith/-NaVpMNoaG.json (169 B)

{
  "url": "https://thomasrigby.com/",
  "source_url": "",
  "authors": [
    "hryggrbyr"
  ],
  "opencollective": "",
  "business_url": "",
  "opened_by": "hryggrbyr"
}

src/_data/builtwith/-_kUhKy8B2.json (83 B)

{
  "url": "https://www.bridgestew.com/",
  "opened_by": "twitter:bridgetstewart"
}

src/_data/builtwith/-hcPTedUko.json (145 B)

{
  "url": "https://11ty-bulma-starter.netlify.app/",
  "source_url": "https://github.com/J-Filip/11ty-bulma-starter",
  "opened_by": "J-Filip"
}

src/_data/builtwith/-snbSeCN3v.json (170 B)

{
  "url": "https://tattooed.dev/",
  "source_url": "https://github.com/vfalconi/tattooed.dev",
  "opened_by": "vfalconi",
  "_backup_opened_by": "twitter:vincefalconi"
}

src/_data/builtwith/-uKsKvrMUG.json (234 B)

{
  "url": "https://wisconsinmusic.net/",
  "source_url": "https://github.com/craigerskine/wisconsinmusic.net",
  "authors": [],
  "opencollective": "qrayg",
  "business_url": "",
  "business_name": "",
  "opened_by": "craigerskine"
}

src/_data/builtwith/-wxQn1yrDF.json (115 B)

{
  "url": "https://lowtus.fr/",
  "opened_by": "bertrandkeller",
  "_backup_opened_by": "twitter:bertrandkeller"
}

src/_data/builtwith/-yEypSbCjw.json (252 B)

{
  "url": "https://khanacademyannualreport.org/",
  "archived": "https://web.archive.org/web/20210814183008/https://khanacademyannualreport.org/",
  "opened_by": "twitter:khanacademy",
  "_backup_opened_by": "twitter:khanacademy",
  "disabled": true
}

src/_data/builtwith/-zdEen-FX0.json (112 B)

{
  "url": "https://manifesteren.nl/",
  "opened_by": "Gr0t3Man",
  "_backup_opened_by": "twitter:MichelKroef"
}

src/_data/builtwith/096FWdbCaW.json (206 B)

{
  "url": "https://webcomponents.dev/",
  "opened_by": "georges-gomes",
  "_backup_opened_by": "twitter:webcomp_dev",
  "authors": [
    "georges-gomes",
    "twitter:Gluckies",
    "twitter:GQuinio"
  ]
}

src/_data/builtwith/09qbYz1afz.json (182 B)

{
  "url": "https://vpnclear.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "VPNCLEAR",
  "opened_by": "liuliuliucome"
}

src/_data/builtwith/0CWRkeHUjL.json (67 B)

{
  "url": "https://www.gsys.biz/",
  "opened_by": "RamblingRoss"
}

src/_data/builtwith/0EWPaY4mbA.json (169 B)

{
  "url": "https://wargaluk.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "wargaluk"
}

src/_data/builtwith/0FgV3CGtHR.json (157 B)

{
  "leaderboard_excluded": true,
  "url": "https://github.com/lit/lit-element-starter-ts",
  "source_url": "https://github.com/lit/lit-element-starter-ts"
}

src/_data/builtwith/0Ij2A9Dwjg.json (74 B)

{
  "url": "https://singlemotherguide.com/",
  "opened_by": "yansusanto"
}

src/_data/builtwith/0KbJ0qAeUg.json (112 B)

{
  "url": "https://jlhernando.com/",
  "opened_by": "jlhernando",
  "_backup_opened_by": "twitter:jlhernando"
}

src/_data/builtwith/0LFLQ1rLA4.json (209 B)

{
  "url": "https://engaged.ca.gov/",
  "source_url": "https://github.com/cagov/engaged.ca.gov/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zakiya"
}

src/_data/builtwith/0LnOHV0rNB.json (215 B)

{
  "url": "https://code-blocks.surge.sh/",
  "disabled": true,
  "source_url": "https://github.com/idris-maps/code-blocks/tree/master/site",
  "opened_by": "idris-maps",
  "_backup_opened_by": "twitter:idrismaps"
}

src/_data/builtwith/0TE4eyDNrY.json (221 B)

{
  "url": "https://bestwebventures.in/",
  "source_url": "",
  "authors": [
    "mittaltigerenterprises"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mittaltigerenterprises"
}

src/_data/builtwith/0UPM7OE6N0.json (310 B)

{
  "url": "https://womeninthe1940s.com/",
  "source_url": "https://github.com/Therese-Ambrosi-Smith/womeninthe1940s.com",
  "authors": [
    "reatlat",
    "zapalblizh"
  ],
  "opencollective": "reatlat",
  "business_url": "https://alex.zappa.dev/",
  "business_name": "Alex Zappa",
  "opened_by": "reatlat"
}

src/_data/builtwith/0erRdy-GfX.json (217 B)

{
  "url": "https://mah-rye-kuh.nl/en/",
  "source_url": "https://codeberg.org/MHLut/mah-rye-kuh-website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "MHLut"
}

src/_data/builtwith/0gpqQBVisN.json (173 B)

{
  "url": "https://kajkandler.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "KajKandler"
}

src/_data/builtwith/0ouUWCLZck.json (143 B)

{
  "url": "https://bettersetups.com/",
  "disabled": true,
  "opened_by": "adrivn",
  "_backup_opened_by": "twitter:adrivn",
  "authors": []
}

src/_data/builtwith/0r9jKY0Fxi.json (70 B)

{
  "url": "https://joshuakin.de/",
  "opened_by": "webworkerJoshua"
}

src/_data/builtwith/0rkAZIdohR.json (211 B)

{
  "url": "https://strange.website/",
  "source_url": "https://github.com/xdesro/strange-website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "xdesro"
}

src/_data/builtwith/0tvO1znA7q.json (194 B)

{
  "url": "https://craftersagainstcovid19.org/",
  "source_url": "https://github.com/Crafters-Against-COVID-19/CraftersAgainstCOVID19.org",
  "opened_by": "aarongustafson",
  "authors": [
  ]
}

src/_data/builtwith/0vsykn-rqM.json (318 B)

{
  "url": "https://thereseambrosismith.com/",
  "source_url": "https://github.com/Therese-Ambrosi-Smith/thereseambrosismith.com",
  "authors": [
    "reatlat",
    "zapalblizh"
  ],
  "opencollective": "reatlat",
  "business_url": "https://alex.zappa.dev/",
  "business_name": "Alex Zappa",
  "opened_by": "reatlat"
}

src/_data/builtwith/0wS7uN_Jcf.json (230 B)

{
  "url": "https://distantcam.github.io/co11ection/",
  "source_url": "https://github.com/distantcam/co11ection",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "distantcam"
}

src/_data/builtwith/0wVWQu-N-e.json (163 B)

{
  "url": "https://toddl.dev/",
  "source_url": "https://github.com/colabottles/toddl",
  "opened_by": "colabottles",
  "_backup_opened_by": "twitter:toddlibby"
}

src/_data/builtwith/13M-oD_Di6.json (186 B)

{
  "url": "https://www.undefinednull.com/",
  "source_url": "https://github.com/shidhincr/shidhincr.github.com",
  "opened_by": "shidhincr",
  "_backup_opened_by": "twitter:shidhincr"
}

src/_data/builtwith/13fAyCg_cw.json (217 B)

{
  "url": "https://www.chadams.me/",
  "source_url": "",
  "authors": [],
  "opencollective": "chadamski",
  "business_url": "https://www.chadams.me/",
  "business_name": "Chelsea Adams",
  "opened_by": "chadamski"
}

src/_data/builtwith/13jmHZ9c2L.json (209 B)

{
  "url": "https://twcarty.netlify.app/",
  "source_url": "https://github.com/sira313/twcarty",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "sira313"
}

src/_data/builtwith/18vmv6kq-f.json (190 B)

{
  "url": "https://cfp.watch/",
  "source_url": "",
  "authors": [
    "rowdyrabouw"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "rowdyrabouw"
}

src/_data/builtwith/19_cwG8Wef.json (180 B)

{
  "url": "https://withleaf.io/",
  "source_url": "",
  "authors": [
    "corbs"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "corbs"
}

src/_data/builtwith/1BEeuxdZR7.json (180 B)

{
  "url": "https://www.museinteriors.co.uk/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simoncox"
}

src/_data/builtwith/1GP8TkFQaa.json (206 B)

{
  "url": "https://ruraljobsscotland.co.uk/",
  "source_url": "",
  "authors": [
    "brettdewoody"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "brettdewoody"
}

src/_data/builtwith/1GikzzlBcO.json (201 B)

{
  "url": "https://docs.miayam.io/",
  "source_url": "https://github.com/miayam/miayam",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "miayam"
}

src/_data/builtwith/1JRXNak4aG.json (117 B)

{
  "url": "https://fantasybuchtipps.de/",
  "opened_by": "polarbirke",
  "_backup_opened_by": "twitter:polarbirke"
}

src/_data/builtwith/1KTyEJhCmP.json (177 B)

{
  "url": "https://www.webstoemp.com/",
  "source_url": "https://github.com/jeromecoupe/webstoemp",
  "opened_by": "jeromecoupe",
  "_backup_opened_by": "twitter:jeromecoupe"
}

src/_data/builtwith/1LW47vDP5I.json (239 B)

{
  "url": "https://unbreak.tech/",
  "source_url": "https://github.com/whitep4nth3r/unbreak.tech",
  "authors": [
    "whitep4nth3r"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "whitep4nth3r"
}

src/_data/builtwith/1QLFIC3n0M.json (229 B)

{
  "url": "https://brianjdevries.com/",
  "source_url": "https://github.com/techcarpenter/brianjdevries.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "techCarpenter"
}

src/_data/builtwith/1R7axkHzvZ.json (81 B)

{
  "url": "https://jayantachakraborti.com/",
  "opened_by": "twitter:jcmech72"
}

src/_data/builtwith/1S2-1tebqt.json (259 B)

{
  "url": "https://www.adamdj.tel/",
  "source_url": "https://github.com/adamdjbrett/adamdj-tel-11ty",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "https://www.adamdjbrett.com/",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/1UC0BuNxtL.json (214 B)

{
  "url": "https://tatianazappa.com/",
  "source_url": "",
  "authors": [
    "reatlat",
    "zapalblizh"
  ],
  "opencollective": "reatlat",
  "business_url": "",
  "business_name": "",
  "opened_by": "reatlat"
}

src/_data/builtwith/1ZZtn6uHQq.json (118 B)

{
  "url": "https://design2seo.com/",
  "opened_by": "jeremyfaucher",
  "_backup_opened_by": "twitter:jeremyfaucher"
}

src/_data/builtwith/1bUawmcIrj.json (211 B)

{
  "url": "https://joesahlsa.dev/",
  "source_url": "https://github.com/jsahlsa/Joe-Sahlsa-Home",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jsahlsa"
}

src/_data/builtwith/1dr508UEB6.json (181 B)

{
  "url": "https://raphaellekerbrat.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "achtaitaipai"
}

src/_data/builtwith/1gLzR-tQk2.json (174 B)

{
  "url": "https://12daysofweb.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "5t3ph",
  "business_url": "",
  "business_name": "",
  "opened_by": "5t3ph"
}

src/_data/builtwith/1i3CNR48Oz.json (228 B)

{
  "url": "https://11tybundle.dev/",
  "source_url": "https://github.com/bobmonsour/11tybundle.dev",
  "authors": [],
  "opencollective": "Bob Monsour",
  "business_url": "",
  "business_name": "",
  "opened_by": "bobmonsour"
}

src/_data/builtwith/1kxkYcn8xu.json (284 B)

{
  "url": "https://joshcrain.io/",
  "leaderboard_excluded": false,
  "source_url": "https://github.com/joshcrain/joshcrain.io",
  "authors": [],
  "opencollective": "joshcrain",
  "business_url": "https://joshcrain.io/",
  "business_name": "Josh Crain",
  "opened_by": "joshcrain"
}

src/_data/builtwith/1pzGn-ETIe.json (182 B)

{
  "url": "https://moiety.me/",
  "source_url": "",
  "authors": [
    "ZoeBijl"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ZoeBijl"
}

src/_data/builtwith/1tmhMLRYh3.json (250 B)

{
  "url": "https://sketchnotes.sixtwothree.org/",
  "source_url": "https://codeberg.org/jgarber/sketchnotes.sixtwothree.org",
  "authors": [],
  "opencollective": "jgarber",
  "business_url": "",
  "business_name": "",
  "opened_by": "jgarber623"
}

src/_data/builtwith/1vCQNwHx3B.json (175 B)

{
  "url": "https://nicolas-hoizey.com/",
  "source_url": "https://github.com/nhoizey/nicolas-hoizey.com",
  "opened_by": "nhoizey",
  "_backup_opened_by": "twitter:nhoizey"
}

src/_data/builtwith/1yjzDsLaxU.json (179 B)

{
  "url": "https://www.tim-kleyersburg.de/",
  "source_url": "https://github.com/timkley/tim-kleyersburg.de",
  "opened_by": "timkley",
  "_backup_opened_by": "twitter:timkley"
}

src/_data/builtwith/1zZq1q8S7P.json (237 B)

{
  "url": "https://oldpersiangames.org/",
  "source_url": "https://github.com/oldpersiangames/oldpersiangames.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "alihardan"
}

src/_data/builtwith/21ZPcw59qI.json (173 B)

{
  "url": "https://www.prakriti.care/",
  "source_url": "https://github.com/chinchang/prakriti",
  "opened_by": "chinchang",
  "_backup_opened_by": "twitter:chinchang457"
}

src/_data/builtwith/25gMFpKis-.json (140 B)

{
  "url": "https://www.teacupgorilla.com/",
  "opened_by": "MiriSuzanne",
  "_backup_opened_by": "twitter:TeacupGorilla",
  "authors": []
}

src/_data/builtwith/26dUFBqAOC.json (112 B)

{
  "url": "https://eystein.no/",
  "opened_by": "twitter:iceMagic",
  "_backup_opened_by": "twitter:iceMagic"
}

src/_data/builtwith/2Bc46t7Hpk.json (201 B)

{
  "url": "https://derekonay.com/",
  "source_url": "https://github.com/Riggd/portfolio",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Riggd"
}

src/_data/builtwith/2CNtY9qk4d.json (208 B)

{
  "url": "https://books.hiddedevries.nl/",
  "source_url": "https://github.com/hidde/books",
  "authors": [],
  "opencollective": "hdv",
  "business_url": "",
  "business_name": "",
  "opened_by": "hidde"
}

src/_data/builtwith/2GxfHegBEV.json (209 B)

{
  "url": "https://hohiemer.com/",
  "source_url": "https://github.com/hohiemer/hohiemer.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "hohiemer"
}

src/_data/builtwith/2LnFRwokSj.json (164 B)

{
  "url": "https://andeers.com/",
  "source_url": "https://github.com/andeersg/andeers.com",
  "opened_by": "andeersg",
  "_backup_opened_by": "twitter:andeersg"
}

src/_data/builtwith/2PYxMViUO-.json (207 B)

{
  "url": "https://scrambletheduck.org/",
  "source_url": "",
  "authors": [
    "Micah-T"
  ],
  "opencollective": "@NutmeggerIsaac",
  "business_url": "",
  "business_name": "",
  "opened_by": "Micah-T"
}

src/_data/builtwith/2Scf-UEHCg.json (262 B)

{
  "url": "https://noktorum.com/",
  "source_url": "https://git.chobble.com/hosted-by-chobble/noktorum",
  "authors": [],
  "opencollective": "stefan-burke",
  "business_url": "https://chobble.com/",
  "business_name": "Chobble",
  "opened_by": "stefan-burke"
}

src/_data/builtwith/2Sq1660bTs.json (239 B)

{
  "url": "https://njfamirm.ir/",
  "source_url": "https://github.com/njfamirm/njfamirm.ir",
  "authors": [
    "njfamirm",
    "AliMd"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "njfamirm"
}

src/_data/builtwith/2ZUJSv8pSt.json (171 B)

{
  "url": "https://dgrammatiko.dev/",
  "source_url": "https://github.com/dgrammatiko/site",
  "opened_by": "dgrammatiko",
  "_backup_opened_by": "twitter:dgrammatiko"
}

src/_data/builtwith/2bfsnUGCKD.json (106 B)

{
  "url": "https://usac.ucla.edu/",
  "opened_by": "rvighne",
  "_backup_opened_by": "twitter:uclaUSAC"
}

src/_data/builtwith/2bu2iOjosq.json (276 B)

{
  "url": "https://renegade-solar.co.uk/",
  "source_url": "https://git.chobble.com/hosted-by-chobble/renegade-solar",
  "authors": [],
  "opencollective": "stefan-burke",
  "business_url": "https://chobble.com/",
  "business_name": "Chobble",
  "opened_by": "stefan-burke"
}

src/_data/builtwith/2daqVSfmyt.json (124 B)

{
  "url": "https://www.ryangittings.co.uk/",
  "opened_by": "ryangittings",
  "_backup_opened_by": "twitter:ryangittings"
}

src/_data/builtwith/2h4NRZ9N6W.json (70 B)

{
  "url": "https://www.troyv.dev/",
  "opened_by": "troyvassalotti"
}

src/_data/builtwith/2m2fV4vsAO.json (128 B)

{
  "url": "https://solucionet.com/",
  "opened_by": "jameos",
  "_backup_opened_by": "twitter:solucionet",
  "authors": [
  ]
}

src/_data/builtwith/2onSKl_TeQ.json (210 B)

{
  "url": "https://bartoshevich.by/",
  "source_url": "https://github.com/bartoshevich/db",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bartoshevich"
}

src/_data/builtwith/2rZbm8Jcei.json (227 B)

{
  "url": "https://galacticguppy.net/",
  "source_url": "https://github.com/joshcrain/galactic-guppy",
  "authors": [],
  "opencollective": "joshcrain",
  "business_url": "",
  "business_name": "",
  "opened_by": "joshcrain"
}

src/_data/builtwith/2sE7HSrPZS.json (141 B)

{
  "url": "https://www.prestanda.co.uk/",
  "opened_by": "jasondilworth56",
  "_backup_opened_by": "twitter:prestanda",
  "authors": [
  ]
}

src/_data/builtwith/2sGjn_tvdx.json (211 B)

{
  "url": "https://michaelgreenhill.net/",
  "source_url": "",
  "authors": [
    "michaelgreenhill"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "michaelgreenhill"
}

src/_data/builtwith/3379i5azUO.json (197 B)

{
  "url": "https://siestly.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "sarhov",
  "business_url": "https://sarhov.com/",
  "business_name": "sarhov",
  "opened_by": "sarhov"
}

src/_data/builtwith/3393jaLsSR.json (222 B)

{
  "url": "https://vanillalist.top/",
  "source_url": "https://github.com/GlitchFamily/vanillalist/",
  "authors": [],
  "opencollective": "tixie",
  "business_url": "",
  "business_name": "",
  "opened_by": "TixieBorg"
}

src/_data/builtwith/34LBvPBaV0.json (104 B)

{
  "url": "https://devreldiaries.commons.host/",
  "disabled": true,
  "opened_by": "twitter:hj_chen"
}

src/_data/builtwith/378pZ02Rw9.json (205 B)

{
  "url": "https://sourcetarget.email/",
  "source_url": "",
  "authors": [
    "cjlm"
  ],
  "opencollective": "cjlm",
  "business_url": "https://cjlm.ca/",
  "business_name": "",
  "opened_by": "cjlm"
}

src/_data/builtwith/3DaMqAixdu.json (159 B)

{
  "url": "https://markus-haack.com/",
  "source_url": "https://github.com/mhaack/mh-site",
  "opened_by": "mhaack",
  "_backup_opened_by": "twitter:mhaack"
}

src/_data/builtwith/3Ep16jQ6Ey.json (175 B)

{
  "url": "https://ryanprintup.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "RyanPrintup"
}

src/_data/builtwith/3H0lZQ4I1l.json (200 B)

{
  "url": "https://elewind-template.netlify.app/",
  "source_url": "https://github.com/ekansh005/elewind",
  "opened_by": "ekansh005",
  "_backup_opened_by": "twitter:ekansh005",
  "authors": [
  ]
}

src/_data/builtwith/3HK5D78cQi.json (234 B)

{
  "url": "https://www.mikeritteronline.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "https://chantillywebdesign.com/",
  "business_name": "Chantilly Web Design",
  "opened_by": "mikeritter"
}

src/_data/builtwith/3IDnU-_1RL.json (188 B)

{
  "url": "https://eslint.org/",
  "source_url": "https://github.com/eslint/website/tree/master",
  "opened_by": "eslint",
  "_backup_opened_by": "twitter:geteslint",
  "featured": true
}

src/_data/builtwith/3JsNIqhh0v.json (208 B)

{
  "url": "https://antithesis.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "https://vladkorobov.com/",
  "business_name": "Vlad Korobov",
  "opened_by": "terpimost"
}

src/_data/builtwith/3KtYeCkCCV.json (236 B)

{
  "url": "https://www.cbascaraspeechtherapy.com/",
  "source_url": "https://github.com/bobmonsour/cbascara",
  "authors": [],
  "opencollective": "bobmonsour",
  "business_url": "",
  "business_name": "",
  "opened_by": "bobmonsour"
}

src/_data/builtwith/3PzGmNP9_g.json (178 B)

{
  "url": "https://theparchmentpaladin.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "erichs"
}

src/_data/builtwith/3S3P02fYwA.json (221 B)

{
  "url": "https://dominickjay.com/",
  "source_url": "https://github.com/dominickjay/dominickjay.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dominickjay"
}

src/_data/builtwith/3UarN6Tbw6.json (233 B)

{
  "url": "https://www.loganayliffe.com/",
  "source_url": "https://github.com/logan-life/blog",
  "authors": [
    "logan-life"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "logan-life"
}

src/_data/builtwith/3WQ-j5Cc7E.json (158 B)

{
  "url": "https://peaks.henry.codes/",
  "source_url": "https://github.com/xdesro/peaks",
  "opened_by": "xdesro",
  "_backup_opened_by": "twitter:xdesro"
}

src/_data/builtwith/3eGKFvfGN1.json (225 B)

{
  "url": "https://laurielim.github.io/",
  "source_url": "https://github.com/laurielim/laurielim.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "laurielim"
}

src/_data/builtwith/3fArlCDJ3A.json (216 B)

{
  "url": "https://cmx.media/",
  "source_url": "https://github.com/craigerskine/cmx.media",
  "authors": [],
  "opencollective": "qrayg",
  "business_url": "",
  "business_name": "",
  "opened_by": "craigerskine"
}

src/_data/builtwith/3mr5NFWQwf.json (222 B)

{
  "url": "https://roaringandgentle.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "Dieter Peirs",
  "business_url": "https://dieterpeirs.com/",
  "business_name": "Dieter Peirs",
  "opened_by": "Dietr"
}

src/_data/builtwith/3nZ-dgMA33.json (171 B)

{
  "url": "https://objector.dev/",
  "source_url": "https://github.com/nycbeardo/myeleventyblog",
  "opened_by": "nycbeardo",
  "_backup_opened_by": "twitter:nycbeardo"
}

src/_data/builtwith/3q_NYEQkUK.json (217 B)

{
  "url": "https://rsixersdonates.com/",
  "source_url": "https://github.com/KingYam/r-sixers-donates",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "KingYam"
}

src/_data/builtwith/3rqEMz1pVE.json (252 B)

{
  "url": "https://dustinwhisman.com/",
  "source_url": "https://github.com/dustinwhisman/dustinwhisman.com",
  "authors": [
    "dustinwhisman"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dustinwhisman"
}

src/_data/builtwith/4285nk-SMh.json (225 B)

{
  "url": "https://jamesbateson.co.uk/",
  "source_url": "https://github.com/jimbateson/jamesbateson.co.uk",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jimbateson"
}

src/_data/builtwith/4AZrIEOTj8.json (219 B)

{
  "url": "https://18f.org/guides/",
  "source_url": "",
  "authors": [
    "not_a_real_person_this_is_unattributed"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/4KEluyiXkm.json (315 B)

{
  "url": "https://sia.codes/",
  "source_url": "https://github.com/siakaramalegos/sia.codes-eleventy",
  "opened_by": "siakaramalegos",
  "_backup_opened_by": "twitter:TheGreenGreek",
  "business_url": "https://sia.codes/contact/?subject=Contract+inquiry+from+11ty+website",
  "business_name": "Sia Karamalegos"
}

src/_data/builtwith/4KRf0wsHNG.json (231 B)

{
  "url": "https://konstantintutsch.com/",
  "source_url": "https://codeberg.org/konstantintutsch/Website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "konstantintutsch"
}

src/_data/builtwith/4QeRsVC2ul.json (115 B)

{
  "url": "https://curtisjurgensen.com/",
  "opened_by": "curtisj44",
  "_backup_opened_by": "twitter:curtisj44"
}

src/_data/builtwith/4V3uULYLKL.json (216 B)

{
  "url": "https://qrayg.com/",
  "source_url": "https://github.com/craigerskine/qrayg.com",
  "authors": [],
  "opencollective": "qrayg",
  "business_url": "",
  "business_name": "",
  "opened_by": "craigerskine"
}

src/_data/builtwith/4_7mDBoivw.json (263 B)

{
  "url": "https://dollartheory.netlify.app/",
  "source_url": "",
  "authors": [
    "danurbanowicz"
  ],
  "opencollective": "dan-urbanowicz",
  "business_url": "https://danurbanowicz.com/",
  "business_name": "Dan Urbanowicz",
  "opened_by": "danurbanowicz"
}

src/_data/builtwith/4aXnfmlhkF.json (186 B)

{
  "url": "https://alienlebarge.ch/",
  "source_url": "https://github.com/alienlebarge/alienlebargech-v3",
  "opened_by": "alienlebarge",
  "_backup_opened_by": "twitter:alienlebarge"
}

src/_data/builtwith/4d__6qT0mM.json (173 B)

{
  "url": "https://www.giorgiopretto.com/",
  "source_url": "https://bitbucket.org/psylok/giorgiopretto",
  "opened_by": "psylok",
  "_backup_opened_by": "twitter:psylok"
}

src/_data/builtwith/4eOVSmBKpG.json (200 B)

{
  "url": "https://birkscinema.co.uk/",
  "source_url": "",
  "authors": [
    "brettdewoody"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "brettdewoody"
}

src/_data/builtwith/4eTst-jur3.json (223 B)

{
  "url": "https://imaginelenses.com/",
  "source_url": "https://github.com/imaginelenses/blenditSite",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "imaginelenses"
}

src/_data/builtwith/4iB0EkXRNQ.json (130 B)

{
  "url": "https://www.homeofficetricks.com/en/",
  "opened_by": "dennishagemeier",
  "_backup_opened_by": "twitter:dennisview"
}

src/_data/builtwith/4jkPmdKBFZ.json (176 B)

{
  "url": "https://kabardinovd.com/",
  "source_url": "https://github.com/dKab/blog",
  "opened_by": "dKab",
  "_backup_opened_by": "twitter:dkabardinov",
  "authors": [
  ]
}

src/_data/builtwith/4p-K9Saow-.json (185 B)

{
  "url": "https://zyllastart.vercel.app/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Polarhardboiled"
}

src/_data/builtwith/4seQh-zD_A.json (229 B)

{
  "url": "https://cybercultural.com/",
  "source_url": "https://github.com/ricmac/Cybercultural",
  "authors": [
    "ricmac"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/4u4Hyi713W.json (168 B)

{
  "url": "https://ww0cj.radio/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "cjtheham"
}

src/_data/builtwith/4vGkEtErO_.json (181 B)

{
  "url": "https://www.ondrejkonecny.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ondrejkonec"
}

src/_data/builtwith/50Qv1M8szh.json (84 B)

{
  "url": "https://ride.netlify.app/latest",
  "_backup_opened_by": "csakiistvan"
}

src/_data/builtwith/55UgO9PEnA.json (272 B)

{
  "url": "https://jeremias.codes/",
  "source_url": "https://github.com/jeremenichelli/jeremias.codes",
  "authors": [
    "jeremenichelli"
  ],
  "opencollective": "",
  "business_url": "https://jeremias.codes/",
  "business_name": "",
  "opened_by": "jeremenichelli"
}

src/_data/builtwith/59HIUBwScJ.json (174 B)

{
  "url": "https://saurabhs.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "saurabhsharan"
}

src/_data/builtwith/5AceUb4oEl.json (193 B)

{
  "url": "https://www.totmanga.com/",
  "source_url": "",
  "authors": [
    "iturbides"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "iturbides"
}

src/_data/builtwith/5Bp34Da_CX.json (190 B)

{
  "url": "https://danielpza.xyz/",
  "source_url": "",
  "authors": [
    "danielpza"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "danielpza"
}

src/_data/builtwith/5Fh7niXPml.json (171 B)

{
  "url": "https://hatecapitalism.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "smth"
}

src/_data/builtwith/5Ho5KbUONR.json (121 B)

{
  "url": "https://www.robinbruidsjurken.nl/",
  "opened_by": "Gr0t3Man",
  "_backup_opened_by": "twitter:MichelKroef"
}

src/_data/builtwith/5KiXsk1kaw.json (169 B)

{
  "url": "https://wilks.co/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "thebrainroom"
}

src/_data/builtwith/5RFHu8aSnc.json (223 B)

{
  "url": "https://koddsson.com/",
  "source_url": "https://github.com/koddsson/koddsson",
  "authors": [
    "koddsson"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "koddsson"
}

src/_data/builtwith/5RpM_8AnD5.json (226 B)

{
  "url": "https://alistairshepherd.uk/",
  "opened_by": "Accudio",
  "_backup_opened_by": "twitter:accudio",
  "authors": [],
  "business_url": "https://alistairshepherd.uk/#contact",
  "business_name": "Alistair Shepherd"
}

src/_data/builtwith/5SM4TtLNHy.json (173 B)

{
  "url": "https://sivyour.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "EdwardSivyour"
}

src/_data/builtwith/5T6MRa_2qX.json (244 B)

{
  "url": "https://sightlessscribbles.com/",
  "source_url": "https://github.com/rkingett/myblog",
  "authors": [
    "Robert",
    "Kingett"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "rkingett"
}

src/_data/builtwith/5VoJRbxDrO.json (214 B)

{
  "url": "https://www.imkhoi.com/",
  "source_url": "https://github.com/KhoiUna/my-website",
  "authors": [],
  "opencollective": "khoiuna",
  "business_url": "",
  "business_name": "",
  "opened_by": "KhoiUna"
}

src/_data/builtwith/5YjGeegtue.json (100 B)

{
  "url": "https://nho.link/",
  "opened_by": "nhoizey",
  "_backup_opened_by": "twitter:nhoizey"
}

src/_data/builtwith/5b2IJdw-gQ.json (186 B)

{
  "url": "https://thejollyteapot.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "nicolastjt",
  "business_url": "",
  "business_name": "",
  "opened_by": "tjt-ghost"
}

src/_data/builtwith/5bb6fnJ2iW.json (222 B)

{
  "url": "https://www.dsev.dk/",
  "source_url": "https://github.com/Danish-Society-of-EVs/webpage",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AndersAskeland"
}

src/_data/builtwith/5ePEzD3Zdu.json (194 B)

{
  "url": "https://www.iturbides.dev/",
  "source_url": "",
  "authors": [
    "iturbides"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "iturbides"
}

src/_data/builtwith/5kn-u9RVv_.json (246 B)

{
  "url": "https://inclusivedesign24.org/2023/",
  "source_url": "https://github.com/inclusivedesign24/inclusivedesign24.org",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "patrickhlauke"
}

src/_data/builtwith/5q-BsrNHOv.json (161 B)

{
  "url": "https://stedman.dev/",
  "source_url": "https://github.com/stedman/stedman.dev",
  "opened_by": "stedman",
  "_backup_opened_by": "twitter:stedman"
}

src/_data/builtwith/5qS7wLloDM.json (168 B)

{
  "url": "https://webglossary.info/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "j9t"
}

src/_data/builtwith/5roHY2L8wI.json (172 B)

{
  "url": "https://derekj.tech/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "derekjohnson"
}

src/_data/builtwith/5rwAv5R3Rw.json (164 B)

{
  "url": "https://mindos.in/",
  "source_url": "https://github.com/inmindos/Site-mindos.in",
  "opened_by": "binnyva",
  "_backup_opened_by": "twitter:inmindos"
}

src/_data/builtwith/5sEegpaf66.json (207 B)

{
  "url": "https://earlychildhoodfoundation.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "jandw",
  "business_url": "https://jandewil.de/",
  "business_name": "",
  "opened_by": "JanDW"
}

src/_data/builtwith/5u_4vgYyWh.json (220 B)

{
  "url": "https://dueloperinatal.regazofotografia.com/",
  "source_url": "https://github.com/AngelGuerra/regazo-fotografia-duelo-perinatal",
  "opened_by": "AngelGuerra",
  "_backup_opened_by": "twitter:AngelLGuerra"
}

src/_data/builtwith/5uynD6Wh0k.json (179 B)

{
  "url": "https://www.azur-renovations.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "innesi"
}

src/_data/builtwith/5vhzfDrWEZ.json (215 B)

{
  "url": "https://blog.fontawesome.com/",
  "source_url": "",
  "authors": [
    "zachleat"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat",
  "featured": true
}

src/_data/builtwith/5wq1ZdHmeQ.json (222 B)

{
  "url": "https://makkusu.dev/",
  "source_url": "https://github.com/MyXoToD/makkusu.dev",
  "authors": [
    "MyXoToD"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "MyXoToD"
}

src/_data/builtwith/62op4uXWXo.json (215 B)

{
  "url": "https://gabriellew.ee/",
  "source_url": "https://github.com/gabriellewee/portfolio",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gabriellewee"
}

src/_data/builtwith/67jO2cTD7f.json (216 B)

{
  "url": "https://kirshmelev.ru/",
  "source_url": "https://github.com/mitorun-studio/kirshmelev.ru",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mitorun"
}

src/_data/builtwith/6AlWns5Z5D.json (123 B)

{
  "url": "https://immediate-theatre.com/",
  "opened_by": "ryangittings",
  "_backup_opened_by": "twitter:ryangittings"
}

src/_data/builtwith/6AmjepZY9a.json (211 B)

{
  "url": "https://gaiety.me/",
  "source_url": "https://git.basking.monster/gaiety/portfolio",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "hergaiety"
}

src/_data/builtwith/6C-_VF5xl1.json (170 B)

{
  "url": "https://estelafranco.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "guaca"
}

src/_data/builtwith/6NRkQ1oCd6.json (355 B)

{
  "url": "https://pelican.ots.la.gov/",
  "source_url": "https://github.com/la-ots/pelican",
  "authors": [
    "james-alt",
    "synewaves",
    "isralduke",
    "rltucker",
    "kristina-truong",
    "dylanmlabat",
    "alishaba909",
    "frogpad7"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "james-alt"
}

src/_data/builtwith/6QKZXTPq9q.json (224 B)

{
  "url": "https://www.kogakure.de/",
  "source_url": "https://github.com/kogakure/website-11ty-kogakure.de",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kogakure"
}

src/_data/builtwith/6T1JIv8rIP.json (189 B)

{
  "url": "https://www.award-winning-books.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "lucasnantonio"
}

src/_data/builtwith/6UrkDOGbtb.json (177 B)

{
  "url": "https://angeliqueweger.com/",
  "source_url": "https://github.com/angeliquejw/dev-blog",
  "opened_by": "angeliquejw",
  "_backup_opened_by": "twitter:messypixels"
}

src/_data/builtwith/6X9vbdXrY5.json (195 B)

{
  "url": "https://setyourwatchby.netlify.app/",
  "source_url": "https://github.com/philhawksworth/html-time",
  "opened_by": "philhawksworth",
  "_backup_opened_by": "twitter:philhawksworth"
}

src/_data/builtwith/6_prQGPNnK.json (172 B)

{
  "url": "https://nealgamradt.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ngamradt"
}

src/_data/builtwith/6dhG8bKiyv.json (112 B)

{
  "url": "https://www.simpleerb.com/blog/",
  "opened_by": "Alshie",
  "_backup_opened_by": "twitter:alshie"
}

src/_data/builtwith/6k9SZ5gwhC.json (181 B)

{
  "url": "https://www.chrisodonoghue.co.uk/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simoncox"
}

src/_data/builtwith/6lGE5FFPE4.json (183 B)

{
  "url": "https://snipshop.lea-tortay.com/",
  "source_url": "https://github.com/lea37/eleventy-snipcart-shop",
  "opened_by": "lea37",
  "_backup_opened_by": "twitter:lea_tortay"
}

src/_data/builtwith/6pRzt62QBX.json (217 B)

{
  "url": "https://rafacalvo.dev/",
  "source_url": "https://github.com/rafacalvodev/new-website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "rafacalvodev"
}

src/_data/builtwith/6tIigUBnBM.json (170 B)

{
  "url": "https://juanlam.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "KingScroll"
}

src/_data/builtwith/6y1gFp_JRQ.json (180 B)

{
  "url": "https://rysunki.me/",
  "source_url": "",
  "authors": [],
  "opencollective": "piotr-swiderek",
  "business_url": "",
  "business_name": "",
  "opened_by": "fusilli"
}

src/_data/builtwith/71_y-uAUv9.json (163 B)

{
  "url": "https://chantillywebdesign.com/",
  "source_url": "https://chantillywebdesign.com/",
  "authors": [
    "mikeritter"
  ],
  "opened_by": "mikeritter"
}

src/_data/builtwith/75Qw4slr1i.json (197 B)

{
  "url": "https://shiro.ws/",
  "source_url": "https://github.com/saneef/shiro.ws",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "saneef"
}

src/_data/builtwith/79O_r7SR_H.json (183 B)

{
  "url": "https://tactile.co.za/",
  "source_url": "https://github.com/ndorfin/tactile-www",
  "opened_by": "ndorfin",
  "_backup_opened_by": "twitter:ndorfin",
  "authors": [
  ]
}

src/_data/builtwith/7DI9dhWmOx.json (217 B)

{
  "url": "https://templatedeck.com/",
  "source_url": "https://github.com/holger1411/templatedeck",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "holger1411"
}

src/_data/builtwith/7EpGn89i8_.json (115 B)

{
  "url": "https://boehs.org/",
  "source_url": "https://sr.ht/~boehs/boehs.org/sources",
  "opened_by": "boehs"
}

src/_data/builtwith/7HqsvJ6DKD.json (173 B)

{
  "url": "https://sandroroth.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "rothsandro"
}

src/_data/builtwith/7KyrVb8w1v.json (235 B)

{
  "url": "https://magnus.anderssen.ch/",
  "source_url": "https://bitbucket.org/callmemagnus/magnus.anderssen.ch/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "callmemagnus"
}

src/_data/builtwith/7OkjAw-vDB.json (122 B)

{
  "url": "https://tobiasljungstrom.net/",
  "opened_by": "tobiasljungstrom",
  "_backup_opened_by": "twitter:midvintr"
}

src/_data/builtwith/7RK2H9_eYS.json (169 B)

{
  "url": "https://minimaly.lea-tortay.com/",
  "source_url": "https://github.com/lea37/minimaly",
  "opened_by": "lea37",
  "_backup_opened_by": "twitter:lea_tortay"
}

src/_data/builtwith/7Wjn_jYlkL.json (160 B)

{
  "url": "https://nordhealth.design/",
  "opened_by": "arielsalminen",
  "_backup_opened_by": "twitter:nordhealthhq",
  "authors": [
  ],
  "featured": true
}

src/_data/builtwith/7YUIwBOPv4.json (205 B)

{
  "url": "https://justin.poehnelt.com/",
  "source_url": "",
  "authors": [
    "jpoehnelt"
  ],
  "opencollective": "jpoehnelt",
  "business_url": "",
  "business_name": "",
  "opened_by": "jpoehnelt"
}

src/_data/builtwith/7_virjLAhs.json (326 B)

{
  "url": "https://web-standards.ru/",
  "source_url": "https://github.com/web-standards-ru/web-standards.ru/",
  "authors": [
    "pepelsbey",
    "Holiden",
    "MeFoDy",
    "monochromer",
    "alkorlos",
    "akellbl4"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "pepelsbey"
}

src/_data/builtwith/7fkXGic5aP.json (193 B)

{
  "url": "https://www.raymondcamden.com/",
  "source_url": "https://github.com/cfjedimaster/raymondcamden2020",
  "opened_by": "cfjedimaster",
  "_backup_opened_by": "twitter:raymondcamden"
}

src/_data/builtwith/7fuy4GBWJE.json (229 B)

{
  "url": "https://atom-editor.cc/",
  "source_url": "https://github.com/atom-editor-cc/atom-editor.cc",
  "authors": [],
  "opencollective": "jgarber",
  "business_url": "",
  "business_name": "",
  "opened_by": "jgarber623"
}

src/_data/builtwith/7g0-m-sJAf.json (245 B)

{
  "url": "https://colorjs.io/",
  "source_url": "https://github.com/leaverou/color.js",
  "authors": [
    "leaverou",
    "svgeesus"
  ],
  "opencollective": "leaverou",
  "business_url": "",
  "business_name": "",
  "opened_by": "LeaVerou"
}

src/_data/builtwith/7pgK4pDlmx.json (229 B)

{
  "url": "https://annema.me/",
  "source_url": "https://github.com/klaaspieter/annemame",
  "authors": [
    "klaaspieter"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "klaaspieter"
}

src/_data/builtwith/7yla3wWA8R.json (149 B)

{
  "url": "https://elrastrillo.pe/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "opened_by": "lordvalor"
}

src/_data/builtwith/83Q4-BCb7h.json (234 B)

{
  "url": "https://nooshu.com/",
  "source_url": "",
  "authors": [
    "Nooshu"
  ],
  "opencollective": "matt-hobbs",
  "business_url": "https://nooshu.com/",
  "business_name": "Matt Hobbs personal blog",
  "opened_by": "Nooshu"
}

src/_data/builtwith/83ylDESa_L.json (106 B)

{
  "url": "https://neckam.nl/",
  "opened_by": "Gr0t3Man",
  "_backup_opened_by": "twitter:MichelKroef"
}

src/_data/builtwith/8B7og9GuYZ.json (211 B)

{
  "url": "https://www.mealsforthenhs.com/",
  "source_url": "https://github.com/meals-for-the-nhs/meals-for-the-nhs",
  "opened_by": "jonnyburch",
  "_backup_opened_by": "twitter:jonnyburch",
  "authors": []
}

src/_data/builtwith/8KhdY2euoK.json (176 B)

{
  "url": "https://www.wordsbywes.ink/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "wescowley"
}

src/_data/builtwith/8ND0-tea8U.json (168 B)

{
  "url": "https://jcmendez.io/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jcmendez"
}

src/_data/builtwith/8SDeJMFiMI.json (176 B)

{
  "url": "https://scales-okn.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "spring-radish"
}

src/_data/builtwith/8UZ0jkiNZm.json (228 B)

{
  "url": "https://joshua.seigler.net/",
  "source_url": "https://git.apps.seigler.net/joshua/joshua.seigler.net",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "seigler"
}

src/_data/builtwith/8UfedehJE9.json (165 B)

{
  "url": "https://coastline941.com/",
  "source_url": "https://github.com/thursby/coastline-site",
  "_backup_opened_by": "csakiistvan",
  "opened_by": "thursby"
}

src/_data/builtwith/8XJJKnw8sF.json (206 B)

{
  "url": "https://unbreaking.org/",
  "source_url": "",
  "authors": [
    "unbreaking-team"
  ],
  "opencollective": "unbreaking",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/8Xj6PqcPam.json (187 B)

{
  "url": "https://gasatrya.dev/",
  "source_url": "",
  "authors": [
    "gasatrya"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gasatrya"
}

src/_data/builtwith/8ZcOmOuYX7.json (181 B)

{
  "url": "https://www.atomwolf.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "adamwolf",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamwolf"
}

src/_data/builtwith/8aNaqN-uBQ.json (258 B)

{
  "url": "https://blog.mozilla.org/addons/",
  "source_url": "https://github.com/mozilla/addons-blog",
  "authors": [
    "willdurand"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat",
  "featured": true
}

src/_data/builtwith/8bHO9o7Ce2.json (224 B)

{
  "url": "https://refresh-dc.org/",
  "source_url": "https://github.com/refreshdc/refresh-dc.org",
  "authors": [],
  "opencollective": "jgarber",
  "business_url": "",
  "business_name": "",
  "opened_by": "jgarber623"
}

src/_data/builtwith/8dunrHKRAt.json (201 B)

{
  "url": "https://www.aldr.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "aldr",
  "business_url": "https://www.aldr.dev/",
  "business_name": "ALDR Dev",
  "opened_by": "aldrDev"
}

src/_data/builtwith/8ggirG5lso.json (179 B)

{
  "url": "https://traveling-coderman.net/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "fboeller"
}

src/_data/builtwith/8gh4kXi9WT.json (126 B)

{
  "url": "https://interviews.shanehudson.net/",
  "opened_by": "ShaneHudson",
  "_backup_opened_by": "twitter:ShaneHudson"
}

src/_data/builtwith/8i52FVqhBD.json (134 B)

{
  "url": "https://anatoliacode.com/",
  "disabled": true,
  "opened_by": "fkkarakurt",
  "_backup_opened_by": "twitter:fkkarakurt"
}

src/_data/builtwith/8iC_rva2jp.json (242 B)

{
  "url": "https://djlint.com/",
  "source_url": "https://github.com/Riverside-Healthcare/djLint/tree/master/docs",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "christopherpickering"
}

src/_data/builtwith/8mzbBdehS0.json (239 B)

{
  "url": "https://www.teotimepacreau.fr/",
  "source_url": "https://github.com/teotimepacreau/www.teotimepacreau.fr",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "teotimepacreau"
}

src/_data/builtwith/8o0My83ngG.json (182 B)

{
  "url": "https://designftw.mit.edu/",
  "source_url": "",
  "authors": [],
  "opencollective": "leaverou",
  "business_url": "",
  "business_name": "",
  "opened_by": "LeaVerou"
}

src/_data/builtwith/8pizDMvKYF.json (199 B)

{
  "url": "https://jfranciscosousa.com/",
  "source_url": "https://github.com/jfranciscosousa/jfranciscosousa.com",
  "opened_by": "jfranciscosousa",
  "_backup_opened_by": "twitter:goodxicosousa"
}

src/_data/builtwith/8qmml8X86R.json (182 B)

{
  "url": "https://andrewpucci.com/",
  "source_url": "https://github.com/andrewpucci/andrewpucci.com",
  "opened_by": "andrewpucci",
  "_backup_opened_by": "twitter:AndrewRPucci"
}

src/_data/builtwith/8r8tvPMZR5.json (170 B)

{
  "url": "https://tonfotos.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "TomaterID"
}

src/_data/builtwith/8rFuf7y-FH.json (170 B)

{
  "url": "https://laceysnr.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mattlacey"
}

src/_data/builtwith/8tWnzlZ_Ga.json (244 B)

{
  "url": "https://gaurav-singh.info/",
  "source_url": "https://github.com/gv-sh/gaurav-singh.info",
  "authors": [],
  "opencollective": "gv-sh",
  "business_url": "https://gaurav-singh.info/",
  "business_name": "",
  "opened_by": "gv-sh"
}

src/_data/builtwith/92BwhXiVR1.json (107 B)

{
  "url": "https://briefs.video/",
  "opened_by": "Heydon",
  "_backup_opened_by": "twitter:heydonworks"
}

src/_data/builtwith/98ouQU0YGy.json (269 B)

{
  "url": "https://datacatalogs.ru/",
  "source_url": "https://github.com/infoculture/datacatalogs-ru",
  "authors": [
    "gleb-svechnikov",
    "infoculture"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gleb-svechnikov"
}

src/_data/builtwith/99S5H0clEP.json (252 B)

{
  "url": "https://kevhealy.com/",
  "source_url": "https://github.com/kevhealy-git/kevhealydotcom",
  "authors": [
    "kevhealy-git"
  ],
  "opencollective": "kevhealy_oc",
  "business_url": "",
  "business_name": "",
  "opened_by": "kevhealy-git"
}

src/_data/builtwith/9IEeAYiN2r.json (166 B)

{
  "url": "https://maful.web.id/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "maful"
}

src/_data/builtwith/9KEAgIpCYp.json (192 B)

{
  "url": "https://www.filamentgroup.com/",
  "opened_by": "zachleat",
  "_backup_opened_by": "twitter:filamentgroup",
  "authors": [
    "zachleat",
    "scottjehl"
  ],
  "featured": true
}

src/_data/builtwith/9LEDbf2zMm.json (189 B)

{
  "url": "https://chrisburnell.com/",
  "source_url": "https://github.com/chrisburnell/chrisburnell.com",
  "opened_by": "chrisburnell",
  "_backup_opened_by": "twitter:iamchrisburnell"
}

src/_data/builtwith/9UzZuS93Yv.json (201 B)

{
  "url": "https://wolstenhol.me/",
  "source_url": "https://github.com/philwolstenholme/wolstenhol-11ty",
  "opened_by": "philwolstenholme",
  "_backup_opened_by": "twitter:philw_",
  "authors": []
}

src/_data/builtwith/9VCkmXkhmQ.json (213 B)

{
  "url": "https://chringel.dev/",
  "source_url": "https://github.com/chringel21/chringel.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "chringel21"
}

src/_data/builtwith/9XF794fKpC.json (125 B)

{
  "url": "https://teami.io/",
  "opened_by": "fusilli",
  "_backup_opened_by": "twitter:borjasolerme",
  "disabled": true
}

src/_data/builtwith/9_g3BvzDG1.json (182 B)

{
  "url": "https://jingnianshuwu.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "beijingjazzpanda"
}

src/_data/builtwith/9a9SBB7NMi.json (155 B)

{
  "url": "https://3lp.me/",
  "source_url": "https://github.com/lp-cast/3lp.11ty",
  "opened_by": "pepelsbey",
  "_backup_opened_by": "twitter:lp_cast"
}

src/_data/builtwith/9dSArvHZgz.json (262 B)

{
  "url": "https://everywhereschool.live/",
  "source_url": "https://github.com/everywhereschool/everywhereschool",
  "opened_by": "greatislander",
  "_backup_opened_by": "twitter:everywhereschl",
  "authors": [
    "greatislander",
    "twitter:nealemvf"
  ]
}

src/_data/builtwith/9dfVroyhkI.json (212 B)

{
  "url": "https://top-livres.netlify.app/",
  "source_url": "https://github.com/bcalou/top-books",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bcalou"
}

src/_data/builtwith/9dyg97WzSj.json (114 B)

{
  "url": "https://sleepasloth.com/",
  "opened_by": "alanmosely",
  "_backup_opened_by": "twitter:sleepasloth"
}

src/_data/builtwith/9jkBOMzhsu.json (112 B)

{
  "url": "https://blog.arpankc.com/",
  "opened_by": "nipeshkc7",
  "_backup_opened_by": "twitter:nipeshkc7"
}

src/_data/builtwith/9tigQLTEE3.json (181 B)

{
  "url": "https://pborenstein.com/",
  "source_url": "https://github.com/pborenstein/pborenstein.com",
  "opened_by": "pborenstein",
  "_backup_opened_by": "twitter:pborenstein"
}

src/_data/builtwith/9vFILxYjF0.json (169 B)

{
  "url": "https://robjwood.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "robjwood"
}

src/_data/builtwith/9weMhq6hGy.json (275 B)

{
  "url": "https://www.stephaniewyatt.tel/",
  "source_url": "https://github.com/adamdjbrett/stephaniewyatt-tel-11ty",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "https://www.adamdjbrett.com/",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/9zGeMLgUaQ.json (200 B)

{
  "url": "https://www.wikilear.it/",
  "source_url": "https://github.com/andrealeardini/wikilear",
  "opened_by": "andrealeardini",
  "_backup_opened_by": "twitter:andrealeard",
  "authors": [
  ]
}

src/_data/builtwith/9zU3-SsJkz.json (68 B)

{
  "url": "https://contentthread.com/",
  "opened_by": "nsteiner"
}

src/_data/builtwith/A1n3moMIHX.json (243 B)

{
  "url": "https://webwewant.fyi/",
  "source_url": "https://github.com/WebWeWant/webwewant.fyi",
  "opened_by": "aarongustafson",
  "_backup_opened_by": "twitter:webwewantfyi",
  "authors": [
    "aarongustafson",
    "twitter:seaotta"
  ]
}

src/_data/builtwith/A2VghCZUpH.json (167 B)

{
  "url": "https://myclientwants.com/",
  "source_url": "https://github.com/brob/butmyclientwants.com",
  "opened_by": "brob",
  "_backup_opened_by": "twitter:brob"
}

src/_data/builtwith/A46-vkkau4.json (100 B)

{
  "url": "https://cjtype.com/",
  "opened_by": "cjdunn",
  "_backup_opened_by": "twitter:cjtype"
}

src/_data/builtwith/A9PTqWY-Ow.json (214 B)

{
  "url": "https://blog.khoiuna.info/",
  "source_url": "https://github.com/KhoiUna/my-blog",
  "authors": [],
  "opencollective": "khoiuna",
  "business_url": "",
  "business_name": "",
  "opened_by": "KhoiUna"
}

src/_data/builtwith/ACjnVSJCG7.json (190 B)

{
  "url": "https://www.becss.dev/",
  "source_url": "",
  "authors": [
    "iturbides"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "iturbides"
}

src/_data/builtwith/AG_pQ2qfy_.json (265 B)

{
  "url": "https://www.freecodecamp.org/news",
  "source_url": "https://github.com/freeCodeCamp/news",
  "authors": [
    "scissorsneedfoodtoo",
    "raisedadead"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/AGnioduB5j.json (239 B)

{
  "url": "https://transloadit.com/",
  "source_url": "",
  "authors": [
    "nqst",
    "nickrttn",
    "Missing-Tech",
    "kvz"
  ],
  "opencollective": "transloadit",
  "business_url": "",
  "business_name": "",
  "opened_by": "kvz"
}

src/_data/builtwith/AISl84UTtC.json (196 B)

{
  "url": "https://miayam.io/",
  "source_url": "https://github.com/miayam/miayam",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "miayam"
}

src/_data/builtwith/APmfDyOlR9.json (178 B)

{
  "url": "https://dryan.com/",
  "source_url": "",
  "authors": [
    "dryan"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dryan"
}

src/_data/builtwith/AV2KuGTfmL.json (180 B)

{
  "url": "https://karatronics.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "appdevkaratronics"
}

src/_data/builtwith/AVlQjLWR34.json (122 B)

{
  "url": "https://thomasclausen.dk/",
  "opened_by": "thomasclausen",
  "_backup_opened_by": "twitter:thomasclausendk"
}

src/_data/builtwith/AbNyJsnlMV.json (191 B)

{
  "url": "https://www.felipesere.com/",
  "source_url": "https://github.com/felipesere/amboseli",
  "opened_by": "felipesere",
  "_backup_opened_by": "twitter:felipesere",
  "authors": []
}

src/_data/builtwith/AfgvYt0UGZ.json (182 B)

{
  "url": "https://www.constantvallee.dev/",
  "source_url": "https://github.com/covallee/constant-11ty",
  "opened_by": "covallee",
  "_backup_opened_by": "twitter:ShareandDance"
}

src/_data/builtwith/Aj6eijieP2.json (171 B)

{
  "url": "https://davepowers.me/",
  "source_url": "https://github.com/djpowers/personal-site",
  "opened_by": "djpowers",
  "_backup_opened_by": "twitter:dave_powers"
}

src/_data/builtwith/AjIObblcQw.json (190 B)

{
  "url": "https://jinvalidate.netlify.app/",
  "source_url": "https://github.com/dgrammatiko/invalidate-cache",
  "opened_by": "dgrammatiko",
  "_backup_opened_by": "twitter:dgrammatiko"
}

src/_data/builtwith/Ajj9qZF654.json (210 B)

{
  "url": "https://ryanmartin.me/",
  "source_url": "https://github.com/rmrt1n/rmrt1n.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "rmrt1n"
}

src/_data/builtwith/Awg8yFe9uS.json (179 B)

{
  "url": "https://www.craigabbott.co.uk/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "abbott567"
}

src/_data/builtwith/Axz9xFR77v.json (276 B)

{
  "url": "https://tipr.mobi/",
  "source_url": "https://github.com/aarongustafson/tipr.mobi",
  "authors": [],
  "opencollective": "AaronGustafson",
  "business_url": "https://www.aaron-gustafson.com/",
  "business_name": "Aaron Gustafson",
  "opened_by": "aarongustafson"
}

src/_data/builtwith/B0Asf57vnr.json (193 B)

{
  "url": "https://jfroehlich.net/",
  "source_url": "",
  "authors": [
    "jfroehlich"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jfroehlich"
}

src/_data/builtwith/B6lKKzrD1G.json (129 B)

{
  "url": "https://11tytips.netlify.app/",
  "source_url": "https://github.com/octoxalis/11tyTips",
  "opened_by": "octoxalis"
}

src/_data/builtwith/BCU3uHFRpK.json (319 B)

{
  "url": "https://jamstackbarcelona.dev/",
  "source_url": "https://github.com/danurbanowicz/jamstack-barcelona-website",
  "authors": [
    "danurbanowicz"
  ],
  "opencollective": "dan-urbanowicz",
  "business_url": "https://danurbanowicz.com/",
  "business_name": "Dan Urbanowicz",
  "opened_by": "danurbanowicz"
}

src/_data/builtwith/BDAlqWW3xW.json (175 B)

{
  "url": "https://matthewstrom.com/",
  "source_url": "https://github.com/ilikescience/mhs11",
  "opened_by": "ilikescience",
  "_backup_opened_by": "twitter:ilikescience"
}

src/_data/builtwith/BI9ziHlF9h.json (160 B)

{
  "url": "https://tto.koser.us/",
  "source_url": "https://github.com/briankoser/tto",
  "opened_by": "briankoser",
  "_backup_opened_by": "twitter:bmkoser"
}

src/_data/builtwith/BJ8zC7WZDi.json (179 B)

{
  "url": "https://debitpay.directory/",
  "source_url": "https://github.com/alexk111/DeBitpay-Directory",
  "opened_by": "alexk111",
  "_backup_opened_by": "twitter:alex_kaul"
}

src/_data/builtwith/BK52kP8EiM.json (195 B)

{
  "url": "https://chaboryk.xyz/",
  "source_url": "",
  "authors": [
    "adamchaboryk"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamchaboryk"
}

src/_data/builtwith/BLH46WCXWb.json (102 B)

{
  "url": "https://www.jpkc.com/",
  "opened_by": "JPKCom",
  "_backup_opened_by": "twitter:JPKCom"
}

src/_data/builtwith/BMfxL_9MyL.json (181 B)

{
  "url": "https://timseverien.com/",
  "source_url": "https://github.com/timseverien/timseverien.com",
  "opened_by": "timseverien",
  "_backup_opened_by": "twitter:timseverien"
}

src/_data/builtwith/BNLdNYNgR2.json (234 B)

{
  "url": "https://www.faustotasca.com/",
  "source_url": "https://github.com/bobmonsour/faustotasca_11ty",
  "authors": [],
  "opencollective": "bobmonsour",
  "business_url": "",
  "business_name": "",
  "opened_by": "bobmonsour"
}

src/_data/builtwith/BTPDLxbPqN.json (196 B)

{
  "url": "https://sixtysix.frontendweekly.tokyo/",
  "source_url": "https://github.com/frontendweekly/sixtysix",
  "opened_by": "studiomohawk",
  "_backup_opened_by": "twitter:frontend_weekly"
}

src/_data/builtwith/BVJLiZL1WK.json (228 B)

{
  "url": "https://ryanmulligan.dev/",
  "source_url": "https://github.com/hexagoncircle/ryan-mulligan-dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "hexagoncircle"
}

src/_data/builtwith/BXTIrlY73z.json (230 B)

{
  "url": "https://www.damianwalsh.me/",
  "source_url": "https://github.com/damianwalsh/damianwalsh.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "damianwalsh"
}

src/_data/builtwith/BfuLVGxCv6.json (227 B)

{
  "url": "https://www.dora-info.eu/",
  "source_url": "",
  "authors": [
    "nvolcz",
    "FLiliequist",
    "springbastian"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "NVolcz"
}

src/_data/builtwith/BhIPjwt0ff.json (114 B)

{
  "url": "https://www.stjaerboldklub.dk/",
  "opened_by": "rise05",
  "_backup_opened_by": "twitter:herr_rise"
}

src/_data/builtwith/BiOnBGIfgg.json (181 B)

{
  "url": "https://www.itsmeara.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "itsmeara",
  "business_url": "",
  "business_name": "",
  "opened_by": "ItsMeAra"
}

src/_data/builtwith/Bi_moW9q4e.json (226 B)

{
  "url": "https://preble1992.com/",
  "source_url": "https://github.com/craigerskine/preble1992.com",
  "authors": [],
  "opencollective": "qrayg",
  "business_url": "",
  "business_name": "",
  "opened_by": "craigerskine"
}

src/_data/builtwith/BptbDLTpHy.json (247 B)

{
  "url": "https://www.rs-rss.com/",
  "source_url": "https://github.com/adamdjbrett/rs-rss.com",
  "authors": [
    "adamdjbrett"
  ],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/BqPEnsCkd1.json (109 B)

{
  "url": "https://www.ogarcia.es/",
  "opened_by": "oscc-es",
  "_backup_opened_by": "twitter:ogarcia_es"
}

src/_data/builtwith/Br46TrtRxH.json (238 B)

{
  "url": "https://distracted-elion-60a106.netlify.app/",
  "source_url": "https://github.com/domwakeling/web_homepage",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "domwakeling"
}

src/_data/builtwith/BsnPOUFwsg.json (151 B)

{
  "url": "https://henry.codes/",
  "source_url": "https://github.com/xdesro/soon",
  "opened_by": "xdesro",
  "_backup_opened_by": "twitter:xdesro"
}

src/_data/builtwith/BvSQmZAwO7.json (232 B)

{
  "url": "https://legendofmana.info/",
  "source_url": "https://github.com/craigerskine/legendofmana.info",
  "authors": [],
  "opencollective": "qrayg",
  "business_url": "",
  "business_name": "",
  "opened_by": "craigerskine"
}

src/_data/builtwith/C-uuHswR48.json (170 B)

{
  "url": "https://www.saassurf.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kuwts"
}

src/_data/builtwith/C0S0jCcFCd.json (175 B)

{
  "url": "https://www.garylake.co.uk/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "garylake"
}

src/_data/builtwith/C0WtCQPyHm.json (217 B)

{
  "url": "https://www.mgrossklaus.de/",
  "source_url": "https://github.com/mgrsskls/mgrossklaus.de",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mgrsskls"
}

src/_data/builtwith/C76-z_ADd5.json (164 B)

{
  "url": "https://rethink.wtf/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "smth"
}

src/_data/builtwith/CC3z9bdLuf.json (213 B)

{
  "url": "https://2018.nejsconf.com/",
  "source_url": "https://github.com/NebraskaJS/2018.nejsconf.com",
  "opened_by": "zachleat",
  "_backup_opened_by": "twitter:nejsconf",
  "authors": [
    "zachleat"
  ]
}

src/_data/builtwith/CO7VkQmXZS.json (184 B)

{
  "url": "https://www.willvincentvoice.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "willvincent"
}

src/_data/builtwith/COjfO19l2A.json (111 B)

{
  "url": "https://idris-maps.com/",
  "opened_by": "idris-maps",
  "_backup_opened_by": "twitter:idrismaps"
}

src/_data/builtwith/CQCFD0ZslI.json (156 B)

{
  "url": "https://ashur.cab/rera/",
  "source_url": "https://github.com/ashur/ashur.cab",
  "opened_by": "ashur",
  "_backup_opened_by": "twitter:ashur"
}

src/_data/builtwith/CRIKyx2oXv.json (210 B)

{
  "leaderboard_excluded": true,
  "url": "https://bejamas.io/",
  "opened_by": "thomkrupa",
  "_backup_opened_by": "twitter:bejamas_io",
  "business_name": "Bejamas",
  "business_url": "https://bejamas.io/"
}

src/_data/builtwith/CXXj2QsCsB.json (166 B)

{
  "url": "https://binnyva.com/",
  "source_url": "https://github.com/binnyva/Site_binnyva.com",
  "opened_by": "binnyva",
  "_backup_opened_by": "twitter:binnyva"
}

src/_data/builtwith/CdLvEOa13o.json (179 B)

{
  "url": "https://www.kilianfinger.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "KiwiKilian"
}

src/_data/builtwith/ChjYLSfP0V.json (118 B)

{
  "url": "https://antlersocial.com/",
  "opened_by": "ryangittings",
  "_backup_opened_by": "twitter:ryangittings"
}

src/_data/builtwith/Cm5qm0hECq.json (192 B)

{
  "url": "https://almanac.chinesetaipeitouch.com/en/",
  "source_url": "https://github.com/fershad-digital/ctta_almanac",
  "opened_by": "fershad",
  "_backup_opened_by": "twitter:fershad"
}

src/_data/builtwith/CmkxBLad_x.json (188 B)

{
  "url": "https://microblog.hankchizljaw.com/",
  "source_url": "https://github.com/hankchizljaw/microblog",
  "opened_by": "hankchizljaw",
  "_backup_opened_by": "twitter:piccalilli_"
}

src/_data/builtwith/CqMi1lcVuD.json (171 B)

{
  "url": "https://openbulkurl.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Amitind"
}

src/_data/builtwith/Cur_hRMa9B.json (159 B)

{
  "url": "https://www.htmhell.dev/",
  "source_url": "https://github.com/matuzo/HTMHell",
  "opened_by": "matuzo",
  "_backup_opened_by": "twitter:mmatuzo"
}

src/_data/builtwith/CwNrc2SZ4G.json (184 B)

{
  "url": "https://www.superawesomeshit.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "EleonJonker"
}

src/_data/builtwith/Cysmv30Xla.json (118 B)

{
  "url": "https://lamplightdev.com/",
  "opened_by": "lamplightdev",
  "_backup_opened_by": "twitter:lamplightdev"
}

src/_data/builtwith/D0tphWA3ig.json (214 B)

{
  "url": "https://mattobee.com/",
  "source_url": "https://github.com/mattobee/mocom11ty",
  "authors": [],
  "opencollective": "mattobee",
  "business_url": "",
  "business_name": "",
  "opened_by": "mattobee"
}

src/_data/builtwith/D3c5yf8KvU.json (187 B)

{
  "url": "https://achteintel.org/",
  "source_url": "https://github.com/achteintel/website",
  "opened_by": "deponeWD",
  "_backup_opened_by": "twitter:achteintel",
  "authors": [
  ]
}

src/_data/builtwith/DBn8cSFLJE.json (156 B)

{
  "url": "https://sinuous.dev/",
  "source_url": "https://github.com/luwes/sinuous-site",
  "opened_by": "luwes",
  "_backup_opened_by": "twitter:luwes"
}

src/_data/builtwith/DDCJ0Er1Ck.json (285 B)

{
  "url": "https://fullstax.de/",
  "source_url": "https://github.com/fllstx/website",
  "authors": [
    "mojoaxel",
    "josurzyn"
  ],
  "opencollective": "fullstax",
  "business_url": "https://fullstax.de",
  "business_name": "fullstax GmbH & Co. KG",
  "opened_by": "mojoaxel"
}

src/_data/builtwith/DH9uRUeznD.json (218 B)

{
  "url": "https://eleventy-notist-example.netlify.app/",
  "source_url": "https://github.com/philhawksworth/eleventy-notist-example",
  "opened_by": "philhawksworth",
  "_backup_opened_by": "twitter:philhawksworth"
}

src/_data/builtwith/DIQG_6HNwB.json (194 B)

{
  "url": "https://blog.jonathanlau.io/",
  "source_url": "",
  "authors": [
    "laujonat"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "laujonat"
}

src/_data/builtwith/DIrZ317U18.json (172 B)

{
  "url": "https://www.lingfest.uk/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simoncox"
}

src/_data/builtwith/DJZtrCOegj.json (246 B)

{
  "url": "https://inclusivedesign24.org/2025/",
  "source_url": "https://github.com/inclusivedesign24/inclusivedesign24.org",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "patrickhlauke"
}

src/_data/builtwith/DJe_0f4BvJ.json (127 B)

{
  "url": "https://roseday-archive.netlify.app/",
  "opened_by": "marcfilleul",
  "_backup_opened_by": "twitter:marcfilleul"
}

src/_data/builtwith/DLl3ThRpNd.json (164 B)

{
  "url": "https://declos.ca/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "decl0s"
}

src/_data/builtwith/DZaPKW6WBI.json (337 B)

{
  "url": "https://developers.thegreenwebfoundation.org/",
  "source_url": "https://github.com/thegreenwebfoundation/developer-docs",
  "authors": [
    "fershad",
    "thegreenwebfoundation"
  ],
  "opencollective": "fershad",
  "business_url": "https://www.fershad.com/",
  "business_name": "Fershad Irani",
  "opened_by": "fershad"
}

src/_data/builtwith/DZhBvcajj1.json (183 B)

{
  "url": "https://lukeb.co.uk/",
  "source_url": "https://github.com/CodeFoodPixels/website-11ty",
  "opened_by": "CodeFoodPixels",
  "_backup_opened_by": "twitter:CodeFoodPixels"
}

src/_data/builtwith/DZo5NHnY_s.json (223 B)

{
  "url": "https://zacharyc.site/",
  "source_url": "https://github.com/ZacharyCrespin/zacharyc.site",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ZacharyCrespin"
}

src/_data/builtwith/DcI4tPF2nI.json (182 B)

{
  "url": "https://eartothenoise.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "diogeneshamilton"
}

src/_data/builtwith/DfebfzGdie.json (185 B)

{
  "url": "https://www.lessurvenantesbalado.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "anghelos"
}

src/_data/builtwith/Dgy2syDq-s.json (244 B)

{
  "url": "https://www.solutions-online.co.nz/",
  "source_url": "https://github.com/MartyNZ/SOL-SP-BS5-netlify",
  "authors": [
    "MartyNZ"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "MartyNZ"
}

src/_data/builtwith/Dgzv2qI2Ql.json (316 B)

{
  "url": "https://www.tampadevs.com/",
  "source_url": "https://github.com/tampadevs/tampadevs",
  "authors": [
    "vincentntang"
  ],
  "opencollective": "https://opencollective.com/vincentntang",
  "business_url": "https://www.vincentntang.com/",
  "business_name": "Tangy Labs",
  "opened_by": "vincentntang"
}

src/_data/builtwith/Dl_vlVoANt.json (173 B)

{
  "url": "https://futurescale.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "cliffhall"
}

src/_data/builtwith/Do8WNEhzs_.json (259 B)

{
  "url": "https://jerseycitybitcoin.com/",
  "source_url": "https://github.com/JamesTsetsekas/JerseyCityBitcoin",
  "authors": [
    "JamesTsetsekas"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "JamesTsetsekas"
}

src/_data/builtwith/DvghmGvuIg.json (189 B)

{
  "url": "https://authomnibus.com/",
  "source_url": "",
  "authors": [
    "cthos"
  ],
  "opencollective": "cthos",
  "business_url": "",
  "business_name": "",
  "opened_by": "cthos"
}

src/_data/builtwith/E1YagrcmFi.json (187 B)

{
  "url": "https://whatt2watch.netlify.app/",
  "source_url": "https://github.com/tannerdolby/what-to-watch",
  "opened_by": "tannerdolby",
  "_backup_opened_by": "twitter:tannerdolby"
}

src/_data/builtwith/E2eCay5NXp.json (108 B)

{
  "url": "http://lewicowo.pl/",
  "opened_by": "fusilli",
  "_backup_opened_by": "twitter:piotrswiderek"
}

src/_data/builtwith/E2xqpyY9fk.json (181 B)

{
  "url": "https://www.yeshyendamuri.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Yeshwanthyk"
}

src/_data/builtwith/E6654JxGaF.json (113 B)

{
  "url": "https://codersblock.com/",
  "opened_by": "lonekorean",
  "_backup_opened_by": "twitter:lonekorean"
}

src/_data/builtwith/E6CQwNSlEi.json (162 B)

{
  "url": "https://csenf.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "csenf"
}

src/_data/builtwith/E6LcPUj6IP.json (167 B)

{
  "url": "https://hidde.blog/",
  "source_url": "",
  "authors": [],
  "opencollective": "hdv",
  "business_url": "",
  "business_name": "",
  "opened_by": "hidde"
}

src/_data/builtwith/E7HR2uXkOS.json (67 B)

{
  "url": "https://pardeletras.com/",
  "opened_by": "iturbides"
}

src/_data/builtwith/ECIPS3EbQN.json (97 B)

{
  "url": "https://cjlm.ca/",
  "opened_by": "cjlm",
  "_backup_opened_by": "twitter:cjlmiles"
}

src/_data/builtwith/EE0Dfd51c1.json (164 B)

{
  "url": "https://ted.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tedyoung"
}

src/_data/builtwith/ELrV-mRXC1.json (237 B)

{
  "url": "https://olivier3lanc.github.io/",
  "source_url": "https://github.com/olivier3lanc/olivier3lanc.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "olivier3lanc"
}

src/_data/builtwith/EQXHVprlfb.json (236 B)

{
  "url": "https://blog.andrewshell.org/",
  "source_url": "https://github.com/andrewshell/blog-asdo-11ty",
  "authors": [],
  "opencollective": "andrewshell",
  "business_url": "",
  "business_name": "",
  "opened_by": "andrewshell"
}

src/_data/builtwith/EVYG58h2GO.json (377 B)

{
  "url": "https://www.a11yproject.com/",
  "opened_by": "twitter:A11YProject",
  "_backup_opened_by": "twitter:A11YProject",
  "authors": [
    "twitter:cariefisher",
    "twitter:DroidPinkman",
    "ericwbailey",
    "twitter:nullwhere",
    "twitter:juryjowns",
    "twitter:Saptak013",
    "twitter:svinkle",
    "TatianaMac",
    "twitter:esjay"
  ],
  "featured": true
}

src/_data/builtwith/EVvSe8xEx0.json (141 B)

{
  "url": "https://reachlightspeed.com/",
  "opened_by": "tomhanlon",
  "authors": [
    "twitter:danklammer",
    "twitter:tomhanlon"
  ]
}

src/_data/builtwith/EdZChaNera.json (168 B)

{
  "url": "https://bholmes.dev/",
  "source_url": "https://github.com/bholmesdev/bholmesdev",
  "opened_by": "Holben888",
  "_backup_opened_by": "twitter:bholmesdev"
}

src/_data/builtwith/EdxAPWrOwU.json (266 B)

{
  "url": "https://hella-simple-eleventy-tailwindcss.netlify.app/",
  "source_url": "https://github.com/huphtur/hella-simple-eleventy-tailwind-starter",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "huphtur"
}

src/_data/builtwith/Eg9WXuA2tI.json (199 B)

{
  "url": "https://jordanjohnson.pt/",
  "source_url": "",
  "authors": [
    "derekjohnson"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "derekjohnson"
}

src/_data/builtwith/EiyyLoCTAe.json (202 B)

{
  "url": "https://www.griffenedge.com/",
  "source_url": "https://github.com/griffenedge/griffenedge.com",
  "opened_by": "griffenedge",
  "_backup_opened_by": "twitter:griffenedge",
  "authors": []
}

src/_data/builtwith/Eo0BktKZx-.json (105 B)

{
  "url": "https://samsmith.name/",
  "opened_by": "smth",
  "_backup_opened_by": "twitter:smthdotuk"
}

src/_data/builtwith/EpOQvfBL8m.json (232 B)

{
  "url": "https://whoistheorchid.com/",
  "source_url": "https://codeberg.org/jgarber/whoistheorchid.com",
  "authors": [],
  "opencollective": "jgarber",
  "business_url": "",
  "business_name": "",
  "opened_by": "jgarber623"
}

src/_data/builtwith/EqwtTlk3yo.json (178 B)

{
  "url": "https://www.banalotopia.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bischoffdev"
}

src/_data/builtwith/EzZrv9EfZB.json (215 B)

{
  "url": "https://ganslandt.xyz/",
  "source_url": "https://github.com/Ansimorph/ganslandt.xyz",
  "opened_by": "Ansimorph",
  "_backup_opened_by": "twitter:Ansimorph",
  "business_url": "https://ganslandt.xyz/"
}

src/_data/builtwith/F3SXOVpoXb.json (204 B)

{
  "url": "https://remodelingcontractorslasvegas.com/",
  "source_url": "",
  "authors": [
    "maxxsh"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "maxxsh"
}

src/_data/builtwith/F5mhK5C87G.json (190 B)

{
  "url": "https://fershad.com/",
  "opened_by": "fershad",
  "_backup_opened_by": "twitter:fershad",
  "business_url": "https://fershad.com/services/",
  "business_name": "Fershad Irani"
}

src/_data/builtwith/F8GEIPM1CT.json (223 B)

{
  "url": "https://www.mikestreety.co.uk/",
  "source_url": "https://gitlab.com/mikestreety/mikestreety",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mikestreety"
}

src/_data/builtwith/FA-q34CCIg.json (172 B)

{
  "url": "https://www.roboleary.net/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "robole"
}

src/_data/builtwith/FFW_xLH4Yu.json (173 B)

{
  "url": "https://www.simoncox.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simoncox"
}

src/_data/builtwith/FHYlAvHyKt.json (116 B)

{
  "url": "https://www.artofmusic.lu/en/",
  "opened_by": "delucis",
  "_backup_opened_by": "twitter:swithinbank"
}

src/_data/builtwith/FKat9RSE8T.json (235 B)

{
  "url": "https://www.galajurk.nl/",
  "source_url": "",
  "authors": [
    "Gr0t3Man"
  ],
  "opencollective": "michel-van-der-kroef",
  "business_url": "https://neckam.nl/",
  "business_name": "Neckam",
  "opened_by": "Gr0t3Man"
}

src/_data/builtwith/FM7I1nGKco.json (184 B)

{
  "url": "https://blog.glitch.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "",
  "featured": true
}

src/_data/builtwith/FO8y8oEhEo.json (108 B)

{
  "url": "https://manifesto.smth.uk/",
  "opened_by": "smth",
  "_backup_opened_by": "twitter:smthdotuk"
}

src/_data/builtwith/FQWZ-McpOY.json (201 B)

{
  "url": "https://guirdo.xyz/es/",
  "source_url": "https://github.com/Guirdo/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Guirdo"
}

src/_data/builtwith/Fab9496fHS.json (190 B)

{
  "url": "https://jeremenichelli.io/",
  "source_url": "https://github.com/jeremenichelli/personal-site",
  "opened_by": "jeremenichelli",
  "_backup_opened_by": "twitter:jeremenichelli"
}

src/_data/builtwith/FawmNwuVvk.json (195 B)

{
  "url": "https://us-coffee-roasters.com/",
  "source_url": "https://github.com/alexcarpenter/us-coffee-roasters",
  "opened_by": "alexcarpenter",
  "_backup_opened_by": "twitter:hybrid_alex"
}

src/_data/builtwith/FjGlapRUrD.json (235 B)

{
  "url": "https://tanks.jandewil.de/",
  "source_url": "https://github.com/JanDW/aquarium-stats",
  "authors": [],
  "opencollective": "jandw",
  "business_url": "https://jandewil.de/",
  "business_name": "",
  "opened_by": "JanDW"
}

src/_data/builtwith/FlF1hGRXLy.json (228 B)

{
  "url": "https://www.springflod.se/",
  "source_url": "",
  "authors": [
    "nvolcz",
    "FLiliequist",
    "springbastian"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "NVolcz"
}

src/_data/builtwith/Fxg5X3ozWB.json (115 B)

{
  "url": "https://www.ribomation.se/",
  "opened_by": "ribomation",
  "_backup_opened_by": "twitter:jens_riboe"
}

src/_data/builtwith/FyGT3sZjf5.json (166 B)

{
  "url": "https://borsch.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "denikus"
}

src/_data/builtwith/FyxRtnf-tD.json (169 B)

{
  "url": "https://www.dumbtv.es/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "oscc-es"
}

src/_data/builtwith/G2bgcbhjj9.json (177 B)

{
  "url": "https://particleslam.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "particleslam"
}

src/_data/builtwith/G5rv7C_Dg9.json (233 B)

{
  "url": "https://francisrubio.antaresph.dev/",
  "source_url": "https://github.com/teacherbuknoy/francisrubio",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "teacherbuknoy"
}

src/_data/builtwith/G9g3Lt-h-y.json (160 B)

{
  "url": "https://manu.ninja/",
  "source_url": "https://github.com/Lorti/manu.ninja",
  "opened_by": "Lorti",
  "_backup_opened_by": "twitter:manuelwieser"
}

src/_data/builtwith/GLIuLc2aHj.json (188 B)

{
  "url": "https://scottmccracken.net/",
  "source_url": "https://github.com/smccracken/scottmccracken.net",
  "opened_by": "smccracken",
  "_backup_opened_by": "twitter:scottmccracken"
}

src/_data/builtwith/GLJjLd5q_M.json (203 B)

{
  "url": "https://scott.ee/",
  "source_url": "",
  "authors": [],
  "opencollective": "scottsweb",
  "business_url": "https://scott.ee/",
  "business_name": "Scott Evans",
  "opened_by": "scottsweb"
}

src/_data/builtwith/GLv-XcNAW6.json (211 B)

{
  "url": "https://byteaether.github.io/",
  "source_url": "",
  "authors": [
    "Seramis",
    "ByteAether"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Seramis"
}

src/_data/builtwith/GN1uzUEuV7.json (123 B)

{
  "url": "https://screen-read.com/",
  "source_url": "https://github.com/mattbee/screen-read",
  "opened_by": "mattbee"
}

src/_data/builtwith/GaE-MlPBHD.json (168 B)

{
  "url": "https://repado.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "stellageo"
}

src/_data/builtwith/GcuFOHyDGj.json (246 B)

{
  "url": "https://whitep4nth3r.com/",
  "source_url": "https://github.com/whitep4nth3r/mk2-p4nth3rblog",
  "authors": [
    "whitep4nth3r"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "whitep4nth3r"
}

src/_data/builtwith/GdXetenMER.json (179 B)

{
  "url": "https://www.cassey.dev/",
  "source_url": "https://github.com/clottman/cassey-on-eleventy",
  "opened_by": "clottman",
  "_backup_opened_by": "twitter:CasseyLottman"
}

src/_data/builtwith/GhPhiyhISq.json (182 B)

{
  "url": "https://www.vtcodecamp.org/",
  "source_url": "https://github.com/vtcodecamp/2019.vtcodecamp.org",
  "opened_by": "KyleMit",
  "_backup_opened_by": "twitter:VTCodeCamp"
}

src/_data/builtwith/GjLIMy9acL.json (216 B)

{
  "url": "https://chocolatesculptress.com/",
  "source_url": "https://github.com/smccracken/chocolatesculptress.com",
  "opened_by": "smccracken",
  "_backup_opened_by": "twitter:chocosculptress",
  "authors": []
}

src/_data/builtwith/GuMg9ozCV_.json (215 B)

{
  "url": "https://css-tip.com/",
  "source_url": "https://github.com/Afif13/CSS-Tip",
  "authors": [
    "Afif13"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Afif13"
}

src/_data/builtwith/GuY-su6EmL.json (115 B)

{
  "url": "https://indiewebguides.org/",
  "opened_by": "calumryan",
  "_backup_opened_by": "twitter:calum_ryan"
}

src/_data/builtwith/Gwl4sYcC7e.json (113 B)

{
  "url": "https://yiddishkeit.info/",
  "opened_by": "hhm0",
  "_backup_opened_by": "twitter:yiddishkeitinfo"
}

src/_data/builtwith/H4xjaajWza.json (118 B)

{
  "url": "https://css-auditors.com/",
  "opened_by": "maliMirkec",
  "_backup_opened_by": "twitter:malimirkeccita"
}

src/_data/builtwith/H5r_1WQhq2.json (170 B)

{
  "url": "https://wassim.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "manekinekko"
}

src/_data/builtwith/H8Uv4F7pkT.json (183 B)

{
  "url": "https://blog.dermah.com/",
  "source_url": "https://github.com/Dermah/blog.dermah.com",
  "opened_by": "Dermah",
  "_backup_opened_by": "twitter:dermah",
  "authors": []
}

src/_data/builtwith/HGJsshQVpe.json (250 B)

{
  "url": "https://clean.000000076.xyz/",
  "source_url": "https://github.com/adamdjbrett/11ty-clean-blog-startboostrap",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/HGdZLIph7z.json (211 B)

{
  "url": "https://clhenrick.io/",
  "source_url": "https://github.com/clhenrick/clhenrick.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "clhenrick"
}

src/_data/builtwith/HKSivOsQzI.json (222 B)

{
  "url": "https://evilpedia.online/",
  "source_url": "https://github.com/cjlm/evilpedia",
  "authors": [],
  "opencollective": "cjlm",
  "business_url": "https://cjlm.ca/",
  "business_name": "",
  "opened_by": "cjlm"
}

src/_data/builtwith/HTVnFG3ulF.json (94 B)

{
  "url": "https://biaskata.com/",
  "disabled": true,
  "_backup_opened_by": "csakiistvan"
}

src/_data/builtwith/HUYIqoZawu.json (299 B)

{
  "url": "https://awsbites.com/",
  "source_url": "https://github.com/awsbites/aws-bites-site",
  "authors": [
    "lmammino",
    "direnakkocdemir"
  ],
  "opencollective": "luciano-mammino",
  "business_url": "https://loige.co/",
  "business_name": "Luciano Mammino",
  "opened_by": "lmammino"
}

src/_data/builtwith/HUvv8aUgTB.json (213 B)

{
  "url": "https://cro.media/",
  "source_url": "",
  "authors": [
    "sarhov"
  ],
  "opencollective": "sarhov",
  "business_url": "https://cro.media/",
  "business_name": "CRO Media",
  "opened_by": "sarhov"
}

src/_data/builtwith/HW5ij-yylC.json (225 B)

{
  "url": "https://myconscious.stream/",
  "source_url": "https://github.com/kevinctofel/excellent_stream",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kevinctofel"
}

src/_data/builtwith/HW70ao3tcA.json (205 B)

{
  "url": "https://plaksin.net/",
  "source_url": "https://github.com/mitorun/plaksin.net",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mitorun"
}

src/_data/builtwith/HdKBneLUfN.json (141 B)

{
  "url": "https://www.peggyandcowebdesign.com",
  "disabled": true,
  "opened_by": "Peggy535",
  "_backup_opened_by": "twitter:peggy_web"
}

src/_data/builtwith/HjivvcfHPR.json (193 B)

{
  "url": "https://fynn.be/",
  "source_url": "https://github.com/mvsde/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mvsde"
}

src/_data/builtwith/HkYV1EpzEP.json (227 B)

{
  "url": "https://www.kiwisat.org.nz/",
  "source_url": "https://github.com/AMSAT-ZL/KiwiSAT.org.nz",
  "authors": [
    "jimt"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jimt"
}

src/_data/builtwith/Hpgu5iakIn.json (210 B)

{
  "url": "https://www.orsymphony.org/",
  "source_url": "",
  "authors": [
    "ashur"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat",
  "featured": true
}

src/_data/builtwith/HtEWPnseeO.json (133 B)

{
  "url": "https://www.lucas.computer/",
  "opened_by": "lovethebomb",
  "_backup_opened_by": "twitter:ltb_lucas",
  "authors": []
}

src/_data/builtwith/I4QuhKUuuN.json (183 B)

{
  "url": "https://will.cx/",
  "source_url": "https://github.com/thisstillwill/Personal-Website-V3",
  "opened_by": "thisstillwill",
  "_backup_opened_by": "twitter:thisstillwill"
}

src/_data/builtwith/I4zOs4ZOBx.json (223 B)

{
	"url": "https://gittings.studio",
	"name": "Gittings Studio",
	"business_url": "https://gittings.studio",
	"business_name": "Gittings Studio",
	"opened_by": "ryangittings",
	"_backup_opened_by": "twitter:ryangittings"
}

src/_data/builtwith/I5Egt6pfLM.json (177 B)

{
  "url": "https://t12t.se/",
  "source_url": "https://github.com/t12t/t12t.github.io",
  "opened_by": "Kolombiken",
  "_backup_opened_by": "twitter:t12t",
  "authors": [
  ]
}

src/_data/builtwith/I5NLf0w_w4.json (230 B)

{
  "url": "https://theological.me/",
  "source_url": "https://github.com/adamdjbrett/theological.me",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/I68BquAlZ4.json (107 B)

{
  "url": "https://www.albertoballesteros.com/",
  "opened_by": "madrilene",
  "opencollective": "lene"
}

src/_data/builtwith/I8O4Kfb8VS.json (209 B)

{
  "url": "https://limulus.net/",
  "source_url": "https://github.com/limulus/limulus-dot-net",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "limulus"
}

src/_data/builtwith/I8gQ51thL2.json (182 B)

{
  "url": "https://danabyerly.com/",
  "source_url": "https://github.com/superterrific/dana-byerly",
  "opened_by": "superterrific",
  "_backup_opened_by": "twitter:superterrific"
}

src/_data/builtwith/IC62HPxeIV.json (221 B)

{
  "url": "https://www.davidway.ie/",
  "source_url": "https://github.com/David-Way/david-way.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "David-Way"
}

src/_data/builtwith/ICFNffPzBG.json (178 B)

{
  "url": "https://mastereleventy.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Javascripty"
}

src/_data/builtwith/II8FO7R-mS.json (121 B)

{
  "url": "https://www.industrialempathy.com/",
  "opened_by": "cramforce",
  "_backup_opened_by": "twitter:cramforce"
}

src/_data/builtwith/IOiQpOZ5Fl.json (203 B)

{
  "url": "https://eleventy-html5up-txt.appseed.us/",
  "source_url": "https://github.com/app-generator/eleventy-html5up-txt",
  "opened_by": "app-generator",
  "_backup_opened_by": "twitter:Sm0keDev"
}

src/_data/builtwith/IP0rMzrXj0.json (225 B)

{
  "url": "https://jmhobbs.github.io/",
  "source_url": "https://github.com/jmhobbs/jmhobbs.github.com",
  "authors": [],
  "opencollective": "jmhobbs",
  "business_url": "",
  "business_name": "",
  "opened_by": "jmhobbs"
}

src/_data/builtwith/IQEYo0JgKC.json (213 B)

{
  "url": "https://ulf.codes/",
  "source_url": "https://github.com/ulfschneider/ulf.website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ulfschneider"
}

src/_data/builtwith/IZSom_mWYt.json (108 B)

{
  "url": "https://cw2architects.com/",
  "opened_by": "iparr",
  "_backup_opened_by": "twitter:devolute"
}

src/_data/builtwith/IdS-6hDDla.json (82 B)

{
  "url": "https://orestbida.com/",
  "opened_by": "orestbida",
  "authors": []
}

src/_data/builtwith/IeMhY806Ul.json (126 B)

{
  "url": "https://www.psicologoreggio.com/",
  "opened_by": "maxlambertini",
  "_backup_opened_by": "twitter:lamboz_loose"
}

src/_data/builtwith/IgywWFQAL7.json (169 B)

{
  "url": "https://tinytip.co/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "rothsandro"
}

src/_data/builtwith/Ihsz_nnuFT.json (172 B)

{
  "url": "https://cosmo-digital.at/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Janscho"
}

src/_data/builtwith/IkcvsNr-LO.json (69 B)

{
  "url": "https://jaredgorski.org/",
  "opened_by": "jaredgorski"
}

src/_data/builtwith/IljcVg-w4b.json (187 B)

{
  "url": "https://moritzgiessmann.de/blog/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "MoritzGiessmann"
}

src/_data/builtwith/IpCw5QKP3z.json (216 B)

{
  "url": "https://every-layout.dev/",
  "opened_by": "twitter:layoutplusplus",
  "_backup_opened_by": "twitter:layoutplusplus",
  "authors": [
    "hankchizljaw",
    "twitter:heydonworks"
  ],
  "featured": true
}

src/_data/builtwith/It6CuRj2Y6.json (121 B)

{
  "url": "https://www.miriamsuzanne.com/",
  "opened_by": "MiriSuzanne",
  "_backup_opened_by": "twitter:mirisuzanne"
}

src/_data/builtwith/IuR7wdtYyr.json (232 B)

{
  "url": "https://www.embl.org/",
  "source_url": "https://gitlab.ebi.ac.uk/users/sign_in",
  "opened_by": "khawkins98",
  "_backup_opened_by": "twitter:embl",
  "authors": [
    "twitter:khawkins98",
    "twitter:StuRobson"
  ]
}

src/_data/builtwith/IvVepfr1rg.json (202 B)

{
  "url": "https://www.aaron-gustafson.com/",
  "source_url": "https://github.com/aarongustafson/aaron-gustafson.com",
  "opened_by": "aarongustafson",
  "_backup_opened_by": "twitter:AaronGustafson"
}

src/_data/builtwith/Iw3fDmhuHU.json (226 B)

{
  "url": "https://everydayia.com/",
  "source_url": "https://github.com/Wilto/perfimages/tree/everydayIA",
  "_backup_opened_by": "csakiistvan",
  "opened_by": "wilto",
  "authors": [
    "wilto",
		"twitter:redsesame"
  ]
}

src/_data/builtwith/J2v0fYasYx.json (244 B)

{
  "url": "https://openstudios.xyz/",
  "source_url": "https://github.com/OpenStudiosCo/openstudios.xyz",
  "authors": [
    "paulbrzeski"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "paulbrzeski"
}

src/_data/builtwith/J4NrDJ9PLD.json (228 B)

{
  "url": "https://surajwate.com/",
  "source_url": "https://github.com/surajwate/surajwate.github.io",
  "authors": [],
  "opencollective": "surajwate",
  "business_url": "",
  "business_name": "",
  "opened_by": "surajwate"
}

src/_data/builtwith/J4qPs3rt3Z.json (199 B)

{
  "url": "https://www.seancdavis.com/",
  "source_url": "https://github.com/seancdavis/seancdavis-com",
  "opened_by": "seancdavis",
  "_backup_opened_by": "twitter:seancdavis29",
  "authors": []
}

src/_data/builtwith/J6LIMoVY-s.json (193 B)

{
  "url": "https://testautomation.space/",
  "source_url": "",
  "authors": [
    "jongrey"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jongrey"
}

src/_data/builtwith/JClHmxgnEM.json (231 B)

{
  "url": "https://www.bobmonsour.com/",
  "source_url": "https://github.com/bobmonsour/bobmonsour.com",
  "authors": [],
  "opencollective": "bobmonsour",
  "business_url": "",
  "business_name": "",
  "opened_by": "bobmonsour"
}

src/_data/builtwith/JIjWPsP9ZS.json (256 B)

{
  "url": "https://www.kadotaproductions.com/",
  "source_url": "",
  "authors": [
    "kylepfeeley"
  ],
  "opencollective": "kylepfeeley",
  "business_url": "https://www.foxdog.io/",
  "business_name": "Foxdog Collective",
  "opened_by": "kylepfeeley"
}

src/_data/builtwith/JMcPkXB7fl.json (187 B)

{
  "url": "https://forte.is/",
  "source_url": "",
  "authors": ["noelforte"],
  "opencollective": "noelforte",
  "business_url": "",
  "business_name": "",
  "opened_by": "noelforte"
}

src/_data/builtwith/JO1_awDXC3.json (256 B)

{
  "url": "https://www.belocalpub.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "unabridged-software",
  "business_url": "https://www.unabridgedsoftware.com/contact/",
  "business_name": "Unabridged Software",
  "opened_by": "clottman"
}

src/_data/builtwith/JThUuaya_7.json (65 B)

{
  "url": "https://tottattoo.com/",
  "opened_by": "iturbides"
}

src/_data/builtwith/JWuG0I4cXK.json (102 B)

{
  "url": "https://wtf.smth.uk/",
  "opened_by": "smth",
  "_backup_opened_by": "twitter:smthdotuk"
}

src/_data/builtwith/JXQC3HYDzv.json (173 B)

{
  "url": "https://jkc.codes/",
  "source_url": "https://github.com/JKC-Codes/jkc-codes.github.io",
  "opened_by": "JKC-Codes",
  "_backup_opened_by": "twitter:jkc_codes"
}

src/_data/builtwith/JYJaJ-o4uz.json (120 B)

{
  "url": "https://jouni.kantola.se/",
  "opened_by": "jouni-kantola",
  "_backup_opened_by": "twitter:jouni_kantola"
}

src/_data/builtwith/J__WfO-tl_.json (303 B)

{
  "url": "https://bits-und-baeume.org/",
  "source_url": "https://github.com/bitsundbaeume/bits-und-baeume.org",
  "authors": [
    "michael-voit",
    "cknoll",
    "b3nks",
    "bitsundbaeume"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bitsundbaeume"
}

src/_data/builtwith/JaXpP8y4vt.json (186 B)

{
  "url": "https://creepingbetweenthemargins.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "yuanzhou"
}

src/_data/builtwith/JkMl0acN7d.json (167 B)

{
  "url": "https://figcat.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "wargaluk"
}

src/_data/builtwith/JlWdV3luAB.json (154 B)

{
  "url": "https://oilsludge.com/",
  "disabled": true,
  "opened_by": "smccracken",
  "_backup_opened_by": "twitter:carcomplaints",
  "authors": [
  ]
}

src/_data/builtwith/JqimhSNaZM.json (259 B)

{
  "url": "https://supriyono.nl/",
  "source_url": "https://github.com/pandu-supriyono/supriyono.nl",
  "authors": [],
  "opencollective": "",
  "business_url": "https://supriyono.nl/",
  "business_name": "Pandu Supriyono",
  "opened_by": "pandu-supriyono"
}

src/_data/builtwith/JqqHdeYnmr.json (106 B)

{
  "url": "https://samdalmonte.com/",
  "opened_by": "sdalmonte",
  "_backup_opened_by": "twitter:samd"
}

src/_data/builtwith/JsDDIKGDhC.json (218 B)

{
  "url": "https://leilukin.com/",
  "source_url": "https://github.com/helenclx/leilukin-site",
  "authors": [],
  "opencollective": "helenclx",
  "business_url": "",
  "business_name": "",
  "opened_by": "helenclx"
}

src/_data/builtwith/JsUq1Ovdl4.json (83 B)

{
  "url": "https://daffodilpedagogy.com/",
  "disabled": true,
  "opened_by": ""
}

src/_data/builtwith/JxrKnlSWq2.json (178 B)

{
  "url": "https://www.brianbaldock.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Midknight"
}

src/_data/builtwith/K2MQddkQXE.json (164 B)

{
  "url": "https://samsmith.uk/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "smth"
}

src/_data/builtwith/K3Rnvq7Lc7.json (183 B)

{
  "url": "https://thepugautomatic.com/",
  "source_url": "https://github.com/henrik/thepugautomatic.com-eleventy",
  "opened_by": "henrik",
  "_backup_opened_by": "twitter:henrik"
}

src/_data/builtwith/K8O34hreBA.json (201 B)

{
  "url": "https://blog.dwac.dev/",
  "source_url": "https://github.com/dgp1130/blog/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dgp1130"
}

src/_data/builtwith/KBo98OsXho.json (106 B)

{
  "url": "https://btjanaka.net/",
  "opened_by": "btjanaka",
  "_backup_opened_by": "twitter:btjanaka"
}

src/_data/builtwith/KKfwxURVBL.json (227 B)

{
  "url": "https://fruits-express.netlify.app/",
  "source_url": "https://github.com/TigersWay/fruits-express",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "TigersWay"
}

src/_data/builtwith/KNTfCzNw2o.json (249 B)

{
  "url": "https://11ty-links.pages.dev/",
  "source_url": "https://github.com/BenjaminEHowe/11ty-links/",
  "authors": [
    "BenjaminEHowe"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "BenjaminEHowe"
}

src/_data/builtwith/KQZG8qsOYY.json (104 B)

{
  "url": "https://pack11ty.dev/",
  "opened_by": "nhoizey",
  "_backup_opened_by": "twitter:nhoizey"
}

src/_data/builtwith/KQo9_tCorK.json (261 B)

{
  "url": "https://podcasts.rs-rss.com/",
  "source_url": "https://github.com/adamdjbrett/podcasts.rs-rss.com",
  "authors": [
    "adamdjbrett"
  ],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/KiV8oDPjrX.json (165 B)

{
  "url": "https://rohanbansal.com/",
  "source_url": "https://github.com/rbnsl/personal-website",
  "opened_by": "rbnsl",
  "_backup_opened_by": "twitter:rbnsl_"
}

src/_data/builtwith/KwoFDY9KpF.json (198 B)

{
  "url": "https://divriots.com/",
  "opened_by": "georges-gomes",
  "_backup_opened_by": "twitter:divriots",
  "authors": [
    "georges-gomes",
    "twitter:Gluckies",
    "twitter:GQuinio"
  ]
}

src/_data/builtwith/L90qUAtMjR.json (217 B)

{
  "url": "https://where.hiddedevries.nl/",
  "source_url": "https://github.com/hidde/where-is-hidde",
  "authors": [],
  "opencollective": "hdv",
  "business_url": "",
  "business_name": "",
  "opened_by": "hidde"
}

src/_data/builtwith/L9CAqew7sY.json (138 B)

{
  "url": "https://www.aaronpeters.nl/",
  "disabled": true,
  "opened_by": "aaronpeters",
  "_backup_opened_by": "twitter:aaronpeters"
}

src/_data/builtwith/LChfoEt4cb.json (119 B)

{
  "url": "https://www.briangershon.com/",
  "opened_by": "briangershon",
  "_backup_opened_by": "twitter:brianfive"
}

src/_data/builtwith/LGOFgA9txe.json (128 B)

{
  "url": "https://www.leschefsasainttropez.com/",
  "opened_by": "marcfilleul",
  "_backup_opened_by": "twitter:marcfilleul"
}

src/_data/builtwith/LH01PdMtl-.json (190 B)

{
  "url": "https://jandewil.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "jandw",
  "business_url": "https://jandewil.de/",
  "business_name": "",
  "opened_by": "JanDW"
}

src/_data/builtwith/LIKPwnvEGV.json (171 B)

{
  "url": "https://ninerakes.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tdavidson"
}

src/_data/builtwith/LQ8pbLHdQj.json (254 B)

{
  "url": "https://www.naprogu.pl/",
  "leaderboard_excluded": false,
  "source_url": "https://github.com/fusilli/naprogu.pl",
  "authors": [],
  "opencollective": "piotr-swiderek",
  "business_url": "",
  "business_name": "",
  "opened_by": "fusilli"
}

src/_data/builtwith/LS8ALFR0pa.json (187 B)

{
  "url": "https://cri.dev/",
  "source_url": "https://github.com/christian-fei/christian-fei.github.io",
  "opened_by": "christian-fei",
  "_backup_opened_by": "twitter:christian_fei"
}

src/_data/builtwith/LSFpzIlZR_.json (232 B)

{
  "url": "https://11ty-eddy.netlify.app/",
  "source_url": "https://github.com/adamdjbrett/11ty-eddy",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/LU9gzPoi0o.json (228 B)

{
  "url": "https://someantics.dev/",
  "source_url": "https://github.com/SomeAnticsDev/someantics.dev",
  "authors": [],
  "opencollective": "bendmyers",
  "business_url": "",
  "business_name": "",
  "opened_by": "BenDMyers"
}

src/_data/builtwith/LUdUppOci6.json (194 B)

{
  "url": "https://www.cyberpunk.co.uk/",
  "source_url": "",
  "authors": [
    "simoncox"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simoncox"
}

src/_data/builtwith/LUjKFsSjCy.json (70 B)

{
  "url": "https://deuso.de/",
  "_backup_opened_by": "csakiistvan"
}

src/_data/builtwith/LVbYJ412aL.json (231 B)

{
  "url": "https://hayes.software/",
  "source_url": "https://github.com/christopher-hayes/hayes.software",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Christopher-Hayes"
}

src/_data/builtwith/LaU34ktbfn.json (112 B)

{
  "url": "https://screenspan.net/",
  "opened_by": "screenspan",
  "_backup_opened_by": "twitter:screenspan"
}

src/_data/builtwith/LeT4Rt8fXy.json (249 B)

{
  "url": "https://microsoft.github.io/TypeChat/",
  "source_url": "https://github.com/microsoft/TypeChat",
  "authors": [
    "DanielRosenwasser"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/LmbURB_8Wh.json (189 B)

{
  "url": "https://gustavlindqvist.se/",
  "source_url": "",
  "authors": [
    "reedyn"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Reedyn"
}

src/_data/builtwith/LoCCHj-IDJ.json (117 B)

{
  "url": "https://www.stevenhicks.me/",
  "_backup_opened_by": "csakiistvan",
  "opened_by": "twitter:pepopowitz"
}

src/_data/builtwith/Lofjy9_v-z.json (70 B)

{
  "url": "https://danielshaw.co.nz/",
  "opened_by": "chthonic-ds"
}

src/_data/builtwith/LpjEhCzW0x.json (176 B)

{
  "url": "https://westmarchjournal.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Micah-T"
}

src/_data/builtwith/LxFcQNrFgD.json (164 B)

{
  "url": "https://hoten.cc/",
  "source_url": "https://github.com/connorjclark/hoten.cc",
  "opened_by": "connorjclark",
  "_backup_opened_by": "twitter:cjamcl"
}

src/_data/builtwith/LzOJypjQxB.json (244 B)

{
  "url": "https://mrmidzi.netlify.app/",
  "source_url": "https://github.com/Psypher1/eleventy-personal-site",
  "authors": [
    "Psypher1"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Psypher1"
}

src/_data/builtwith/M1Y1Za2QZj.json (171 B)

{
  "url": "https://emergency-site.dev/",
  "source_url": "https://github.com/maxboeck/emergency-site",
  "opened_by": "maxboeck",
  "_backup_opened_by": "twitter:mxbck"
}

src/_data/builtwith/M6gJe-jb_S.json (273 B)

{
  "url": "https://mac-cursors.netlify.app/",
  "source_url": "https://github.com/daviddarnes/mac-cursors",
  "authors": [
    "daviddarnes"
  ],
  "opencollective": "daviddarnes",
  "business_url": "https://darn.es/",
  "business_name": "",
  "opened_by": "daviddarnes"
}

src/_data/builtwith/MA6C93KsQy.json (215 B)

{
  "url": "https://www.adamjolicoeur.com/",
  "source_url": "https://github.com/AdamJ/AdamJ.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AdamJ"
}

src/_data/builtwith/MArtsfX2hZ.json (86 B)

{
  "url": "https://tobiasschmidt.me/",
  "opened_by": "gerwitz",
  "disabled": true
}

src/_data/builtwith/MCLjCPhEVg.json (253 B)

{
  "url": "https://optifolio.vercel.app/",
  "source_url": "https://github.com/pranav89624/OptiFolio",
  "authors": [
    "pranav89624"
  ],
  "opencollective": "Pranav Verma",
  "business_url": "",
  "business_name": "",
  "opened_by": "pranav89624"
}

src/_data/builtwith/MDWpUGadpF.json (67 B)

{
  "url": "https://www.ilithya.rocks/",
  "opened_by": "ilithya"
}

src/_data/builtwith/MGaX3dB_NH.json (201 B)

{
  "url": "https://jensa.dev/",
  "source_url": "https://github.com/jensnti/jensa.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jensnti"
}

src/_data/builtwith/MIns-RUYHE.json (200 B)

{
  "url": "https://davidkistauri.ru/",
  "disabled": true,
  "source_url": "https://github.com/dtroode/kistauri",
  "opened_by": "dtroode",
  "_backup_opened_by": "twitter:dtroode",
  "authors": []
}

src/_data/builtwith/MMCJFYxWxC.json (187 B)

{
  "url": "https://nejsconf.com/",
  "source_url": "https://github.com/NebraskaJS/nejsconf-recap",
  "opened_by": "zachleat",
  "_backup_opened_by": "twitter:nejsconf",
  "authors": []
}

src/_data/builtwith/MPUGLVRwwU.json (119 B)

{
  "url": "https://www.jeremiahlee.com/",
  "opened_by": "jeremiahlee",
  "_backup_opened_by": "twitter:JeremiahLee"
}

src/_data/builtwith/MWQMMOyhSS.json (207 B)

{
  "url": "https://karawale.in/",
  "source_url": "https://github.com/retronav/karawale.in",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "retronav"
}

src/_data/builtwith/MXUhM_MbMA.json (223 B)

{
  "url": "https://davidaaronpierce.com/",
  "source_url": "https://github.com/dapierce/dapierce.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dapierce"
}

src/_data/builtwith/MXVl0Dr4tS.json (169 B)

{
  "url": "https://montevil.org/",
  "source_url": "https://github.com/mmontevil/montevil.org",
  "opened_by": "mmontevil",
  "_backup_opened_by": "twitter:mmontevil"
}

src/_data/builtwith/Mo7AhLHHbY.json (190 B)

{
  "url": "https://webperformancereport.com/",
  "source_url": "https://github.com/edwinmh/webperformance-report",
  "opened_by": "edwinmh",
  "_backup_opened_by": "twitter:WebPerfReport"
}

src/_data/builtwith/Mxt3b2OvTC.json (174 B)

{
  "url": "https://stylestage.dev/",
  "source_url": "https://github.com/5t3ph/stylestage",
  "opened_by": "5t3ph",
  "_backup_opened_by": "twitter:5t3ph",
  "authors": []
}

src/_data/builtwith/MzU4-h4-vp.json (173 B)

{
  "url": "https://benediktmeurer.de/",
  "source_url": "https://github.com/bmeurer/benediktmeurer.de",
  "opened_by": "bmeurer",
  "_backup_opened_by": "twitter:bmeurer"
}

src/_data/builtwith/N0T314HR_G.json (181 B)

{
  "url": "https://tannerdolby.com/",
  "source_url": "https://github.com/tannerdolby/tannerdolby.com",
  "opened_by": "tannerdolby",
  "_backup_opened_by": "twitter:tannerdolby"
}

src/_data/builtwith/NCLpeNDQL7.json (205 B)

{
  "url": "https://mijndertstuij.nl/",
  "source_url": "https://github.com/mijndert/blog",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mijndert"
}

src/_data/builtwith/NHf8nNXk33.json (229 B)

{
  "url": "https://damianwalsh.co.uk/",
  "source_url": "https://github.com/damianwalsh/damianwalsh.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "damianwalsh"
}

src/_data/builtwith/NPz2U0NzEA.json (120 B)

{
  "url": "https://dixonwildlifeart.com/",
  "source_url": "https://github.com/dixonge/dwa",
  "opened_by": "dixonge"
}

src/_data/builtwith/NQlsyQLNN6.json (163 B)

{
  "url": "https://lerhonewalker.com/",
  "opened_by": "lerhone",
  "_backup_opened_by": "twitter:lerhonewalker",
  "authors": [
    "twitter:lerhonewalker"
  ]
}

src/_data/builtwith/NT0KDDQA4v.json (211 B)

{
  "url": "https://mier.info/",
  "source_url": "https://github.com/miermontoto/miermontoto",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "miermontoto"
}

src/_data/builtwith/NVsxCJiMJy.json (144 B)

{
  "url": "https://freetransitedmonton.ca/",
  "opened_by": "greatislander",
  "_backup_opened_by": "twitter:freetransityeg",
  "authors": []
}

src/_data/builtwith/Nc4Eaz_z4i.json (119 B)

{
  "url": "https://flatmonthlyfee.co/",
  "opened_by": "twitter:mayh9000",
  "_backup_opened_by": "twitter:mayh9000"
}

src/_data/builtwith/NeLi-C9ouA.json (170 B)

{
  "url": "https://ethanmarcotte.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "beep"
}

src/_data/builtwith/Nf8spDRmqY.json (213 B)

{
  "url": "https://metagala.xyz/",
  "source_url": "https://github.com/distantcam/metagala.xyz",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "distantcam"
}

src/_data/builtwith/NkBIvWCX3b.json (184 B)

{
  "url": "https://allstageproductions.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "brentmoseley"
}

src/_data/builtwith/NnCeg4yiT3.json (105 B)

{
  "url": "https://www.guangshi.io/",
  "opened_by": "anyuzx",
  "_backup_opened_by": "twitter:anyuzx"
}

src/_data/builtwith/NndXBdDUKB.json (199 B)

{
  "url": "https://normadesign.it/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "https://normadesign.it/",
  "business_name": "Norma",
  "opened_by": "VicFleur"
}

src/_data/builtwith/NpGd2ibi2i.json (181 B)

{
  "url": "https://vianatrilhos.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "pedro-melo-rocha"
}

src/_data/builtwith/NpmouwI95_.json (247 B)

{
  "url": "https://yasingenc.net/",
  "source_url": "https://github.com/yasingencnet/yasingencnet",
  "opened_by": "yasingencnet",
  "_backup_opened_by": "twitter:yasingencnet",
  "authors": [],
  "business_url": "https://yasingenc.net/contact"
}

src/_data/builtwith/NrBdNlqp7H.json (166 B)

{
  "url": "https://gvonkoss.com/",
  "source_url": "https://github.com/gvonkoss/gvonkoss.com",
  "opened_by": "gvonkoss",
  "_backup_opened_by": "twitter:gvonkoss"
}

src/_data/builtwith/NxDzISgY3l.json (206 B)

{
  "url": "https://dieter.ca/",
  "source_url": "https://github.com/dlimeb/dlimeb.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dlimeb"
}

src/_data/builtwith/NylyfbeNZ6.json (220 B)

{
  "url": "https://surajjadhav.me/",
  "source_url": "https://github.com/surajjdhv/surajjdhv.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "surajjdhv"
}

src/_data/builtwith/O-CiJbYgKL.json (213 B)

{
  "url": "https://flag.is/",
  "source_url": "https://github.com/mvsde/pride-flags",
  "authors": [
    "mvsde"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mvsde"
}

src/_data/builtwith/O1xyRW_pzi.json (224 B)

{
  "url": "https://www.dofd.info/",
  "source_url": "https://github.com/adamdjbrett/dofd-info",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/O3kqSeOKFb.json (187 B)

{
  "url": "https://hebra.dev/",
  "disabled": true,
  "source_url": "https://github.com/hankchizljaw/hebra",
  "opened_by": "hankchizljaw",
  "_backup_opened_by": "twitter:piccalilli_"
}

src/_data/builtwith/O7BkII3Wjq.json (172 B)

{
  "url": "https://turkufrontend.fi/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Hamatti"
}

src/_data/builtwith/OOGEYjgLgW.json (219 B)

{
  "url": "https://www.josephrex.me/",
  "source_url": "https://github.com/josephrexme/josephrex.me",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "josephrexme"
}

src/_data/builtwith/OQd_ZwINSp.json (205 B)

{
  "url": "https://cfam.es/",
  "source_url": "https://github.com/fnavales/roxo-eleventy",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "fnavales"
}

src/_data/builtwith/O_06i1R6sA.json (168 B)

{
  "url": "https://omroka.com/en/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "omroka"
}

src/_data/builtwith/Obj18sU5MP.json (209 B)

{
  "url": "https://rooster-world.com/",
  "source_url": "https://github.com/camphan12993/rooster-world-landing-11ty",
  "opened_by": "camphan12993",
  "authors": [
    "camphan12993",
    "twitter:Phan"
  ]
}

src/_data/builtwith/OkfaarPt1t.json (120 B)

{
  "url": "https://klassikrohbau.de/",
  "opened_by": "Snapstromegon",
  "_backup_opened_by": "twitter:Snapstromegon"
}

src/_data/builtwith/OmNDB-bobn.json (231 B)

{
  "url": "https://austinjavascript.com/",
  "source_url": "https://github.com/austinjavascript/austinjavascript.com",
  "opened_by": "stedman",
  "_backup_opened_by": "twitter:austinjs",
  "authors": [
    "twitter:stedman"
  ]
}

src/_data/builtwith/Onq2XKsODS.json (108 B)

{
  "url": "https://www.doesitflip.com/",
  "opened_by": "Alshie",
  "_backup_opened_by": "twitter:alshie"
}

src/_data/builtwith/Oo7QgBP5-u.json (224 B)

{
  "url": "https://www.londoncss.dev/",
  "source_url": "https://github.com/LondonCSS/website",
  "opened_by": "twitter:LondonCSS",
  "_backup_opened_by": "twitter:LondonCSS",
  "authors": [
    "twitter:oliverturner"
  ]
}

src/_data/builtwith/OohRYQlPh8.json (256 B)

{
  "url": "https://11tyhub.dev/",
  "source_url": "https://github.com/mortendk/11tyhub.dev",
  "authors": [
    "mortendk"
  ],
  "opencollective": "",
  "business_url": "https://morten.dk/",
  "business_name": "theme machine",
  "opened_by": "mortendk"
}

src/_data/builtwith/OrcCpvHvaJ.json (235 B)

{
  "url": "https://tomquinonero.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "tomquinonero",
  "business_url": "https://tomquinonero.com/eleventy",
  "business_name": "Tom Quinonero",
  "opened_by": "tomquinonero"
}

src/_data/builtwith/OtdpryhIWk.json (124 B)

{
  "url": "https://mannahfoundation.org/",
  "opened_by": "twitter:MannahFdn",
  "_backup_opened_by": "twitter:MannahFdn"
}

src/_data/builtwith/P0NA0IGcAz.json (244 B)

{
  "url": "https://nathan-long.com/",
  "source_url": "https://github.com/nathanlong/nathanlong.github.io",
  "authors": [
    "nathanlong"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "nathanlong"
}

src/_data/builtwith/P0p4jIxuQH.json (159 B)

{
  "url": "https://fifty.snook.ca/",
  "source_url": "https://github.com/snookca/50by50",
  "opened_by": "snookca",
  "_backup_opened_by": "twitter:snookca"
}

src/_data/builtwith/P1sFsaK4M9.json (212 B)

{
  "url": "https://www.conor.zone/en/",
  "source_url": "https://codeberg.org/wem1c/portfolio_11ty",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "wem1c"
}

src/_data/builtwith/P2JA_gfICX.json (215 B)

{
  "url": "https://perthshiregravel.com/",
  "source_url": "",
  "authors": [
    "brettdewoody"
  ],
  "opencollective": "brettdewoody",
  "business_url": "",
  "business_name": "",
  "opened_by": "brettdewoody"
}

src/_data/builtwith/P3pToCsKJh.json (201 B)

{
  "url": "https://timw.io/",
  "source_url": "https://github.com/timweston/timw.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "timweston"
}

src/_data/builtwith/PCC6wfMTnE.json (227 B)

{
  "url": "https://www.dandevri.es/",
  "source_url": "https://github.com/systemdes/personal-website",
  "opened_by": "dandevri",
  "_backup_opened_by": "twitter:dandevri",
  "business_url": "https://www.dandevri.es/contact"
}

src/_data/builtwith/PH73cN4nmy.json (217 B)

{
  "url": "https://dinhanhthi.com/",
  "source_url": "https://github.com/dinhanhthi/dinhanhthi.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dinhanhthi"
}

src/_data/builtwith/PI1qbvOjVt.json (181 B)

{
  "url": "https://questhink.com/",
  "source_url": "https://github.com/mrmowji/questhink",
  "opened_by": "mrmowji",
  "_backup_opened_by": "twitter:mrmowji",
  "authors": [
  ]
}

src/_data/builtwith/PIFu8J4xdN.json (235 B)

{
  "url": "https://journal.000000076.xyz/",
  "source_url": "https://github.com/adamdjbrett/11ty-journal",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/PRp7cuiDTb.json (295 B)

{
  "url": "https://campaign-url-builder.com/",
  "source_url": "https://github.com/freshjuice-dev/campaign-url-builder.com",
  "authors": [
    "reatlat"
  ],
  "opencollective": "reatlat",
  "business_url": "https://alex.zappa.dev/",
  "business_name": "Alex Zappa",
  "opened_by": "reatlat"
}

src/_data/builtwith/PThNLTA0nJ.json (102 B)

{
  "url": "https://quickchart.io/",
  "opened_by": "typpo",
  "_backup_opened_by": "twitter:iwebst"
}

src/_data/builtwith/PUsjyiJhM5.json (165 B)

{
  "url": "https://tfedder.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "firta4"
}

src/_data/builtwith/PVV7IAZxEx.json (224 B)

{
  "url": "https://koboldthinktank.site/",
  "source_url": "https://github.com/brandongregory/dndhelp",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "brandongregory"
}

src/_data/builtwith/PWFDtBncD0.json (185 B)

{
  "url": "https://www.leogenerali.com/",
  "source_url": "https://github.com/leo-generali/personal-site",
  "opened_by": "leo-generali",
  "_backup_opened_by": "twitter:itsLeeOhGee"
}

src/_data/builtwith/PWsaRwri7D.json (179 B)

{
  "url": "https://www.ianrose.me/",
  "source_url": "https://github.com/ianrose/ianrose.me",
  "opened_by": "twitter:thatianrose",
  "_backup_opened_by": "twitter:thatianrose"
}

src/_data/builtwith/PWsytgMybl.json (168 B)

{
  "url": "https://lenny.fyi/",
  "source_url": "https://github.com/lennyanders/lenny.fyi",
  "opened_by": "lennyanders",
  "_backup_opened_by": "twitter:5onderling"
}

src/_data/builtwith/PbEmVCjt-9.json (207 B)

{
  "url": "https://duffn.dev/",
  "source_url": "https://github.com/duffn/blog",
  "authors": [
    "duffn"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "duffn"
}

src/_data/builtwith/PhcVD8FFCo.json (198 B)

{
  "url": "https://gaiety.dog/",
  "source_url": "https://git.gay/gaiety/fursona",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "hergaiety"
}

src/_data/builtwith/Pi2NMJsP-Z.json (239 B)

{
  "url": "https://tomascornelles.com/",
  "source_url": "https://github.com/tomascornelles/tomascornelles.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tomascornelles"
}

src/_data/builtwith/Pi9_34mnwS.json (225 B)

{
  "url": "https://zerozoo-a.github.io/",
  "source_url": "https://github.com/zerozoo-a/zerozoo-a.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zerozoo-a"
}

src/_data/builtwith/Pnb865Vw28.json (170 B)

{
  "url": "https://doganozturk.dev/",
  "source_url": "https://github.com/doganozturk/blog",
  "opened_by": "doganozturk",
  "_backup_opened_by": "twitter:dodothebird"
}

src/_data/builtwith/Pty7H3TiP8.json (253 B)

{
  "url": "https://silvestristefano.github.io/",
  "source_url": "https://github.com/SilvestriStefano/SilvestriStefano.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "SilvestriStefano"
}

src/_data/builtwith/PwIt7am4Ak.json (144 B)

{
  "url": "https://thedixons.net/",
  "disabled": true,
  "source_url": "https://github.com/dixonge/thedixons-11ty",
  "opened_by": "dixonge"
}

src/_data/builtwith/PwOsqNhrCw.json (224 B)

{
  "url": "https://andy.bond/",
  "source_url": "https://github.com/andy-bond/andy.bond",
  "authors": [
    "andy-bond"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "andy-bond"
}

src/_data/builtwith/PypdQqPOXG.json (162 B)

{
  "url": "https://progressionapp.com/",
  "opened_by": "jonnyburch",
  "_backup_opened_by": "twitter:jonnyburch",
  "authors": [
    "twitter:neilcameron"
  ]
}

src/_data/builtwith/Q-Xku_vQSn.json (171 B)

{
  "url": "https://byggorebro.se/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AlexRasch"
}

src/_data/builtwith/Q-skbWhvtz.json (306 B)

{
  "url": "https://www.tilt-studio.fr/",
  "source_url": "https://bitbucket.org/account/signin/%3Fnext=/tiltstudio/tilt-studio.fr/src/master",
  "opened_by": "hteumeuleu",
  "_backup_opened_by": "twitter:hteumeuleu",
  "authors": [
    "hteumeuleu",
    "twitter:NicolasFlorian",
    "twitter:FrBmt"
  ]
}

src/_data/builtwith/Q3cHjNtRSi.json (114 B)

{
  "url": "https://hylia.website/",
  "opened_by": "hankchizljaw",
  "_backup_opened_by": "twitter:piccalilli_"
}

src/_data/builtwith/Q9HLTxNJx1.json (301 B)

{
  "url": "https://southpawspetservice.com/",
  "source_url": "https://github.com/southpawspetservice/southpawspetservice.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "https://chantillywebdesign.com/",
  "business_name": "Chantilly Web Design",
  "opened_by": "mikeritter"
}

src/_data/builtwith/QCaFxcArEd.json (227 B)

{
  "url": "https://megnicholas.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "meghanni",
  "business_url": "https://megnicholas.com/",
  "business_name": "Meg Nicholas Web Design",
  "opened_by": "meghanni"
}

src/_data/builtwith/QFYycXpHeC.json (219 B)

{
  "url": "https://beeps.website/",
  "source_url": "https://github.com/querkmachine/beeps.website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "querkmachine"
}

src/_data/builtwith/QJMuyg1_6N.json (267 B)

{
  "url": "https://mattdecamp.com/",
  "source_url": "https://github.com/mattdecamp/decamp.dev",
  "authors": [],
  "opencollective": "matt-decamp",
  "business_url": "https://happybear.dev/",
  "business_name": "Happy Bear Web Design",
  "opened_by": "mattdecamp"
}

src/_data/builtwith/QNyLUyppAM.json (200 B)

{
  "url": "https://wackyhoroscopes.accudio.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "alistair-shepherd",
  "business_url": "",
  "business_name": "",
  "opened_by": "Accudio"
}

src/_data/builtwith/QOa8hRV-K1.json (113 B)

{
  "url": "https://kaicataldo.com/",
  "opened_by": "kaicataldo",
  "_backup_opened_by": "twitter:kai_cataldo"
}

src/_data/builtwith/QR77hVJd8t.json (251 B)

{
  "url": "https://www.psxi.cat/",
  "source_url": "",
  "authors": [
    "danurbanowicz"
  ],
  "opencollective": "dan-urbanowicz",
  "business_url": "https://danurbanowicz.com/",
  "business_name": "Dan Urbanowicz",
  "opened_by": "danurbanowicz"
}

src/_data/builtwith/QV88Stof71.json (212 B)

{
  "url": "https://www.flyweb.at/",
  "source_url": "https://github.com/brachycera/fly-11ty",
  "opened_by": "brachycera",
  "_backup_opened_by": "twitter:brachycera",
  "authors": [
    "twitter:superfly"
  ]
}

src/_data/builtwith/QVrK00Koak.json (236 B)

{
  "url": "https://riafin.com/",
  "source_url": "",
  "authors": [
    "mittaltigerenterprises"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "RiaFin Planning Network",
  "opened_by": "mittaltigerenterprises"
}

src/_data/builtwith/QgVgijCSxI.json (204 B)

{
  "url": "https://gametime.events/",
  "source_url": "",
  "authors": [
    "AnalyzePlatypus"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AnalyzePlatypus"
}

src/_data/builtwith/QgqyeKT3T6.json (214 B)

{
  "url": "https://www.ellyloel.com/",
  "source_url": "https://github.com/ellyloel/ellyloel.com/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "EllyLoel"
}

src/_data/builtwith/QhuV_q4Era.json (183 B)

{
  "url": "https://noelle.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "noelle-leigh",
  "business_url": "",
  "business_name": "",
  "opened_by": "noelleleigh"
}

src/_data/builtwith/Qj48sizvds.json (194 B)

{
  "url": "https://fossheim.io/",
  "source_url": "https://github.com/sarahfossheim/fossheim-io",
  "opened_by": "sarahfossheim",
  "_backup_opened_by": "twitter:liatrisbian",
  "authors": []
}

src/_data/builtwith/QreJdyArcL.json (174 B)

{
  "url": "https://rasoi.parth.ninja/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "partheus"
}

src/_data/builtwith/R6E4cnY89U.json (178 B)

{
  "url": "https://memo.forof.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "killtheliterate"
}

src/_data/builtwith/R8vCye4sip.json (80 B)

{
  "url": "https://practical.guide/",
  "opened_by": "twitter:shannonethomas"
}

src/_data/builtwith/RA07QQ4d4n.json (171 B)

{
  "url": "https://www.vigorteq.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "twopix"
}

src/_data/builtwith/RIRM16I2H1.json (104 B)

{
  "url": "https://warp-co.rs/",
  "opened_by": "Bassetts",
  "_backup_opened_by": "twitter:bassetts"
}

src/_data/builtwith/RP3cAT4Apv.json (257 B)

{
  "url": "https://www.rosiedalia.com/",
  "source_url": "",
  "authors": [
    "danurbanowicz"
  ],
  "opencollective": "dan-urbanowicz",
  "business_url": "https://danurbanowicz.com/",
  "business_name": "Dan Urbanowicz",
  "opened_by": "danurbanowicz"
}

src/_data/builtwith/RPr873L9hh.json (83 B)

{
  "url": "https://shannonethomas.com/",
  "opened_by": "twitter:shannonethomas"
}

src/_data/builtwith/RROjr6KoXZ.json (166 B)

{
  "url": "https://bitsofco.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ireade"
}

src/_data/builtwith/RSnLFfJhVT.json (114 B)

{
  "url": "https://mangoweb.net/",
  "opened_by": "twitter:lecodeur",
  "_backup_opened_by": "twitter:lecodeur"
}

src/_data/builtwith/RTofNwG6Gd.json (258 B)

{
  "url": "https://alprado.com/icons/",
  "source_url": "https://github.com/AlbertoPrado70/IAcons",
  "authors": [],
  "opencollective": "alprado-seo",
  "business_url": "https://alprado.com/",
  "business_name": "ALPRADO",
  "opened_by": "AlbertoPrado70"
}

src/_data/builtwith/RYqMd9Ak-Y.json (218 B)

{
  "url": "https://www.nicolas-birckel.fr/",
  "source_url": "https://github.com/nbirckel/mainsite-v2",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "nbirckel"
}

src/_data/builtwith/RYyJnZgb2D.json (188 B)

{
  "url": "https://splatoon.catgirlin.space/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "phoebethewitch"
}

src/_data/builtwith/RdzANACoy9.json (201 B)

{
  "url": "https://www.splitinfinities.com/",
  "source_url": "https://github.com/splitinfinities/splitinfinities",
  "opened_by": "splitinfinities",
  "_backup_opened_by": "twitter:splitinfinities"
}

src/_data/builtwith/RfbigOALH_.json (128 B)

{
  "url": "https://www.hendricks.rocks/",
  "opened_by": "dennishendricks",
  "_backup_opened_by": "twitter:hendricks_rocks"
}

src/_data/builtwith/Rfm63xRt0n.json (203 B)

{
  "url": "https://www.hockeycomputindo.com/",
  "source_url": "",
  "authors": [
    "mesinkasir"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mesinkasir"
}

src/_data/builtwith/RhPrZHFqVn.json (240 B)

{
  "url": "https://unravelurl.com/",
  "source_url": "https://github.com/saneef/unravel",
  "authors": [],
  "opencollective": "saneef",
  "business_url": "https://saneef.com/",
  "business_name": "Saneef Ansari",
  "opened_by": "saneef"
}

src/_data/builtwith/RmF1Yf7p9W.json (80 B)

{
  "url": "https://www.chercheurd.art/",
  "_backup_opened_by": "csakiistvan"
}

src/_data/builtwith/RpcVscODcO.json (164 B)

{
  "url": "https://www.kloh.ch/403.html",
  "source_url": "https://github.com/kloh-fr/kloh.ch",
  "opened_by": "kloh-fr",
  "_backup_opened_by": "twitter:klohFR"
}

src/_data/builtwith/Rqi_0JohG6.json (265 B)

{
  "url": "https://www.oddbird.net/",
  "opened_by": "MiriSuzanne",
  "_backup_opened_by": "twitter:OddBird",
  "authors": [
    "twitter:OddBird",
    "MiriSuzanne",
    "twitter:JGerigMeyer",
    "twitter:SondraE",
    "twitter:StacyK",
    "twitter:Wlonk"
  ]
}

src/_data/builtwith/RrhdBGRzFS.json (189 B)

{
  "url": "https://www.local.com.pk/",
  "source_url": "",
  "authors": [
    "jabranr"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jabranr"
}

src/_data/builtwith/S-MKt9LCbj.json (172 B)

{
  "url": "https://sfc.blue/",
  "source_url": "https://github.com/briankoser/sfc-listeners-guide",
  "opened_by": "briankoser",
  "_backup_opened_by": "twitter:bmkoser"
}

src/_data/builtwith/S3FixdkeNV.json (109 B)

{
  "url": "https://mharley.dev/",
  "opened_by": "mharleydev",
  "_backup_opened_by": "twitter:mharleydev"
}

src/_data/builtwith/S5HwD0udH6.json (175 B)

{
  "url": "https://precious-prana.com/",
  "source_url": "https://github.com/nhoizey/precious-prana.com",
  "opened_by": "nhoizey",
  "_backup_opened_by": "twitter:nhoizey"
}

src/_data/builtwith/S7BkKWMx-y.json (179 B)

{
  "url": "https://benmyers.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "bendmyers",
  "business_url": "",
  "business_name": "",
  "opened_by": "BenDMyers"
}

src/_data/builtwith/SBSFwwOuKo.json (186 B)

{
  "url": "https://urbanflow.art/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "UrbanFlow.art",
  "opened_by": "ScreenDream"
}

src/_data/builtwith/SGbAj8p8Fz.json (176 B)

{
  "url": "https://sivyour.design/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "EdwardSivyour"
}

src/_data/builtwith/SGtnleMxWq.json (202 B)

{
  "url": "https://www.gifgun.io/",
  "source_url": "",
  "authors": [
    "gleb-svechnikov"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gleb-svechnikov"
}

src/_data/builtwith/SHlPMT6UP0.json (205 B)

{
  "url": "https://deephouse.uk/",
  "source_url": "https://github.com/lovell/deephouse.uk",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "lovell"
}

src/_data/builtwith/SMnb7N3o5U.json (176 B)

{
  "url": "https://torstenknabe.com/",
  "source_url": "https://github.com/torstenknabe/tk-portfolio",
  "opened_by": "torstenknabe",
  "_backup_opened_by": "twitter:torkna"
}

src/_data/builtwith/SPH71Pw821.json (119 B)

{
  "url": "https://daily-dev-tips.com/",
  "opened_by": "rebelchris",
  "_backup_opened_by": "twitter:DailyDevTips1"
}

src/_data/builtwith/SSpV9HSXBX.json (228 B)

{
  "url": "https://mithril-by-examples.js.org/",
  "source_url": "https://github.com/tbreuss/mithril-by-examples",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tbreuss"
}

src/_data/builtwith/STNCBNuhJW.json (102 B)

{
  "url": "https://elisted.org/",
  "opened_by": "smth",
  "_backup_opened_by": "twitter:smthdotuk"
}

src/_data/builtwith/STPDMCgDV-.json (238 B)

{
  "url": "https://www.celinedesign.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "celinedesign",
  "business_url": "https://www.celinedesign.com/",
  "business_name": "CelineDesign",
  "opened_by": "seb-celinedesign"
}

src/_data/builtwith/STUEfHknQq.json (246 B)

{
  "url": "https://wedding.httpster.io/",
  "source_url": "https://github.com/httpsterio/h-s-wedding-photos",
  "authors": [
    "httpsterio"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "httpsterio"
}

src/_data/builtwith/SfEXWWtYVp.json (170 B)

{
  "url": "https://magicball.net/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "elmuerte"
}

src/_data/builtwith/SlQcMnraL2.json (114 B)

{
  "url": "https://thefutureislikepie.com/",
  "opened_by": "wilto",
  "_backup_opened_by": "twitter:redsesame"
}

src/_data/builtwith/SmXGsDQtZQ.json (174 B)

{
  "url": "https://tdarb.org/",
  "source_url": "https://github.com/bradleytaunt/eleventy-taunt",
  "opened_by": "bradleytaunt",
  "_backup_opened_by": "twitter:bradtaunt"
}

src/_data/builtwith/SnTXZs4dRe.json (221 B)

{
  "url": "https://www.stonegate.me/",
  "source_url": "https://github.com/stonega/crane",
  "authors": [
    "stonega"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "stonega"
}

src/_data/builtwith/Sp-jjITsNe.json (171 B)

{
  "url": "https://ujjwal.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ujjwal123123"
}

src/_data/builtwith/Srucq8iaWl.json (205 B)

{
  "url": "https://jamesbasoo.com/",
  "source_url": "https://github.com/jbasoo/jamesbasoo",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jbasoo"
}

src/_data/builtwith/SvsIdfbU1b.json (121 B)

{
  "url": "https://www.belter.io/",
  "opened_by": "duncanmcdougall",
  "_backup_opened_by": "twitter:duncanmcdougall"
}

src/_data/builtwith/SzpT5TFOsU.json (255 B)

{
  "url": "https://chobble.com/",
  "source_url": "https://git.chobble.com/chobble/chobble-site",
  "authors": [],
  "opencollective": "stefan-burke",
  "business_url": "https://chobble.com/",
  "business_name": "Chobble",
  "opened_by": "stefan-burke"
}

src/_data/builtwith/T-GpgilbVQ.json (179 B)

{
  "url": "https://games.sia.codes/",
  "source_url": "https://github.com/siakaramalegos/games",
  "opened_by": "siakaramalegos",
  "_backup_opened_by": "twitter:TheGreenGreek"
}

src/_data/builtwith/T10dQTT-b5.json (209 B)

{
  "url": "https://olivernorred.com/blog",
  "source_url": "https://github.com/olivernorred/olivernorreddotcom",
  "opened_by": "olivernorred",
  "_backup_opened_by": "twitter:olivernorred",
  "authors": []
}

src/_data/builtwith/T1l_7B2T1Q.json (111 B)

{
  "url": "https://rowdy.codes/",
  "opened_by": "rowdyrabouw",
  "_backup_opened_by": "twitter:rowdyrabouw"
}

src/_data/builtwith/T2YxGLEYgh.json (175 B)

{
  "url": "https://www.inkyvoxel.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "inkyvoxel"
}

src/_data/builtwith/T38IbSRunC.json (177 B)

{
  "url": "https://liberte.unices.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "antlossway"
}

src/_data/builtwith/T8lK-Kvwbe.json (175 B)

{
  "url": "https://simonhearne.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simonhearne"
}

src/_data/builtwith/TCOC_so5BY.json (264 B)

{
  "url": "https://activites.nicolas-hoizey.com/",
  "source_url": "https://github.com/nhoizey/activites.nicolas-hoizey.com/",
  "authors": [
    "nhoizey"
  ],
  "opencollective": "nhoizey",
  "business_url": "",
  "business_name": "",
  "opened_by": "nhoizey"
}

src/_data/builtwith/TDACmTnSwz.json (213 B)

{
  "url": "https://jamstack-comments.netlify.app/",
  "source_url": "https://github.com/philhawksworth/jamstack-comments-engine",
  "opened_by": "philhawksworth",
  "_backup_opened_by": "twitter:philhawksworth"
}

src/_data/builtwith/TI7W3TF87M.json (126 B)

{
  "url": "https://www.kajrietberg.nl/",
  "opened_by": "twitter:Kajrietberg",
  "_backup_opened_by": "twitter:Kajrietberg"
}

src/_data/builtwith/TMDb8XPmeB.json (249 B)

{
  "url": "https://mtman.ventures/",
  "source_url": "https://github.com/GeauxWeisbeck4/mtman.ventures",
  "authors": [
    "GeauxWeisbeck4"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "GeauxWeisbeck4"
}

src/_data/builtwith/TM_kJpKdeV.json (104 B)

{
  "url": "https://www.vktr.dev/",
  "opened_by": "vktrwlt",
  "_backup_opened_by": "twitter:vktrwlt"
}

src/_data/builtwith/TPRGHBoOui.json (192 B)

{
  "url": "https://webawesome.com/",
  "source_url": "",
  "authors": [
    "fortawesome"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/TPhltN-5hv.json (229 B)

{
  "url": "https://nicksimson.com/",
  "source_url": "https://github.com/nsmsn/nicksimsondotcom",
  "authors": [
    "nsmsn"
  ],
  "opencollective": "nsmsn",
  "business_url": "",
  "business_name": "",
  "opened_by": "nsmsn"
}

src/_data/builtwith/TPkDiMCOSM.json (184 B)

{
  "url": "https://www.swingswingsubmarine.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Bigaston"
}

src/_data/builtwith/TTJNt15DVJ.json (274 B)

{
  "url": "https://annotator.incubator.apache.org/",
  "source_url": "https://github.com/apache/incubator-annotator-website",
  "authors": [
    "BigBlueHat",
    "Treora"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/TUUcL6m783.json (287 B)

{
  "url": "https://wrapmate.com/",
  "source_url": "",
  "authors": [
    "shawn-wm",
    "ojdx",
    "UenoStation",
    "MarkMcKenna5",
    "kchasepdx",
    "dori-wm",
    "meganbond"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "shawn-wm"
}

src/_data/builtwith/TUc6d4yQP_.json (172 B)

{
  "url": "https://loosethought.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "robitar"
}

src/_data/builtwith/TUsVJeIOuh.json (137 B)

{
  "url": "https://www.poketrainernic.com/",
  "opened_by": "twitter:nraboy",
  "_backup_opened_by": "twitter:nraboy",
  "authors": []
}

src/_data/builtwith/TWbpR6XmAZ.json (201 B)

{
  "url": "https://ma.tthew.berlin/",
  "source_url": "https://github.com/tthew/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tthew"
}

src/_data/builtwith/TXN0EiMkZ9.json (206 B)

{
  "url": "https://games.porg.es/",
  "source_url": "https://github.com/Porges/ways-to-play",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Porges"
}

src/_data/builtwith/T_B7AOs1bq.json (127 B)

{
  "url": "https://briony.stream/",
  "disabled": true,
  "opened_by": "Bassetts",
  "_backup_opened_by": "twitter:bassetts"
}

src/_data/builtwith/Tc1QH0muE-.json (206 B)

{
  "url": "https://grochtdreis.de/",
  "source_url": "https://github.com/jensgro/site-2023",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jensgro"
}

src/_data/builtwith/TilgT0XquZ.json (211 B)

{
  "url": "https://priyanshusinha.in/",
  "source_url": "https://github.com/prynshsnh/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "prynshsnh"
}

src/_data/builtwith/Tn8TGryy4v.json (256 B)

{
  "url": "https://jeromestephan.de/sites/Home/",
  "source_url": "https://github.com/HerzogVonWiesel/porto",
  "authors": [
    "HerzogVonWiesel"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "HerzogVonWiesel"
}

src/_data/builtwith/TnNiiAsoNd.json (216 B)

{
  "url": "https://iamdtms.hu/",
  "source_url": "",
  "authors": [
    "iamdtms"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "Personal landing page of iamdtms.",
  "opened_by": "iamdtms"
}

src/_data/builtwith/Ttndbnw5mD.json (271 B)

{
  "url": "https://fatkitten.dev/",
  "source_url": "https://github.com/StetsonRamey/Fat-Kitten-Agency",
  "authors": [],
  "opencollective": "",
  "business_url": "https://fatkitten.dev/",
  "business_name": "Fat Kitten Web Development",
  "opened_by": "StetsonRamey"
}

src/_data/builtwith/TwBa_10Mdp.json (159 B)

{
  "url": "https://ramigs.dev/",
  "source_url": "https://github.com/ramigs/ramigs.dev",
  "opened_by": "ramigs",
  "_backup_opened_by": "twitter:ramigsDev"
}

src/_data/builtwith/U0_an6aS42.json (191 B)

{
  "url": "https://www.learnwithgurpreet.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "learnwithgurpreet"
}

src/_data/builtwith/U0zBX5oT5R.json (229 B)

{
  "url": "https://classic.spaceninja.com/",
  "source_url": "https://github.com/spaceninja/spaceninja-classic",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "spaceninja"
}

src/_data/builtwith/U4DDyIM3uU.json (155 B)

{
  "url": "https://yetty.netlify.app/",
  "source_url": "https://github.com/ygoex/yetty",
  "opened_by": "ygoex",
  "_backup_opened_by": "twitter:ygoex"
}

src/_data/builtwith/U5RNEuGMRR.json (175 B)

{
  "url": "https://aubreysambor.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "starshaped"
}

src/_data/builtwith/UAwfVhhaN0.json (107 B)

{
  "url": "https://darekkay.com/",
  "opened_by": "darekkay",
  "_backup_opened_by": "twitter:darek_kay"
}

src/_data/builtwith/UFOD6czw97.json (111 B)

{
  "url": "https://array.chat/",
  "opened_by": "hankchizljaw",
  "_backup_opened_by": "twitter:piccalilli_"
}

src/_data/builtwith/UMSmm5UkNS.json (215 B)

{
  "url": "https://renatasalonunique.nl/",
  "source_url": "",
  "authors": [
    "Gr0t3Man"
  ],
  "opencollective": "michel-van-der-kroef",
  "business_url": "",
  "business_name": "",
  "opened_by": "Gr0t3Man"
}

src/_data/builtwith/UNftNP3P_7.json (273 B)

{
  "url": "https://www.nonbreakingspace.co.uk/",
  "source_url": "",
  "authors": [
    "spacedawwwg"
  ],
  "opencollective": "spacedawwwg",
  "business_url": "https://www.nonbreakingspace.co.uk/",
  "business_name": "Nonbreakingspace Ltd",
  "opened_by": "spacedawwwg"
}

src/_data/builtwith/UOLYKURA9t.json (156 B)

{
  "url": "https://zellwk.com/",
  "source_url": "https://github.com/zellwk/zellwk.com",
  "opened_by": "zellwk",
  "_backup_opened_by": "twitter:zellwk"
}

src/_data/builtwith/UPBbghq73j.json (220 B)

{
  "url": "https://developer.chrome.com/",
  "source_url": "https://github.com/GoogleChrome/developer.chrome.com",
  "opened_by": "twitter:ChromiumDev",
  "_backup_opened_by": "twitter:ChromiumDev",
  "featured": true
}

src/_data/builtwith/UQVOutuDqD.json (159 B)

{
  "url": "https://jan.work/",
  "source_url": "https://github.com/coolcut/fruechtl.me",
  "opened_by": "coolcut",
  "_backup_opened_by": "twitter:_coolcut"
}

src/_data/builtwith/UWTN4AAwXe.json (227 B)

{
  "url": "https://veryexcitingtime.com/",
  "source_url": "https://github.com/spaceninja/very-exciting-time",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "spaceninja"
}

src/_data/builtwith/UXfrIDY6Uy.json (228 B)

{
  "url": "https://bristolfurs.co.uk/",
  "source_url": "https://github.com/bristolfurs/bristolfurs-website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "querkmachine"
}

src/_data/builtwith/UYlC3Jdye0.json (175 B)

{
  "url": "https://entitygarden.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "KajKandler"
}

src/_data/builtwith/UbEcm0rxzd.json (111 B)

{
  "url": "https://serviceindustry.tips/en/",
  "opened_by": "dryan",
  "_backup_opened_by": "twitter:dryan"
}

src/_data/builtwith/Ubmau7iVJL.json (207 B)

{
  "url": "https://studioindie.co/",
  "source_url": "",
  "authors": [],
  "opencollective": "saneef",
  "business_url": "https://saneef.com/",
  "business_name": "Saneef Ansari",
  "opened_by": "saneef"
}

src/_data/builtwith/UdjLMAwPeJ.json (246 B)

{
  "url": "https://www.mikestilling.com/",
  "source_url": "https://github.com/stillingdesign/mikestilling.com",
  "authors": [],
  "opencollective": "mike-stilling",
  "business_url": "",
  "business_name": "",
  "opened_by": "stillingdesign"
}

src/_data/builtwith/UeW4Dzugx0.json (163 B)

{
  "url": "https://www.equilibrario.com/en/",
  "opened_by": "ilterra",
  "_backup_opened_by": "twitter:equilibrario",
  "authors": [
    "twitter:_ilterra"
  ]
}

src/_data/builtwith/UiLF3qpgY6.json (204 B)

{
  "url": "https://cssnano.co/",
  "source_url": "https://github.com/cssnano/cssnano",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ludofischer"
}

src/_data/builtwith/UkybK6bwAu.json (69 B)

{
  "url": "https://eu-testbook.com/",
  "opened_by": "csakiistvan"
}

src/_data/builtwith/Ul-ZqHEurk.json (264 B)

{
  "url": "https://www.victoriacutting.co.uk/",
  "source_url": "",
  "authors": [
    "danurbanowicz"
  ],
  "opencollective": "dan-urbanowicz",
  "business_url": "https://danurbanowicz.com/",
  "business_name": "Dan Urbanowicz",
  "opened_by": "danurbanowicz"
}

src/_data/builtwith/UmAajT9K5E.json (75 B)

{
  "url": "https://imotion-factory.com/",
  "opened_by": "saschakrueger"
}

src/_data/builtwith/UsVpARxoYj.json (157 B)

{
  "url": "https://fotis.xyz/",
  "source_url": "https://github.com/fpapado/fotis.xyz",
  "opened_by": "fpapado",
  "_backup_opened_by": "twitter:isfotis"
}

src/_data/builtwith/Uum8gVd-hO.json (156 B)

{
  "url": "https://homan.io/",
  "source_url": "https://github.com/dhoman/homan-io",
  "opened_by": "dhoman",
  "_backup_opened_by": "twitter:derekhoman"
}

src/_data/builtwith/UxcZosyGSi.json (239 B)

{
  "url": "https://hebrewtransliteration.app/",
  "source_url": "https://github.com/charlesLoder/hebrewTransliteration",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "charlesLoder"
}

src/_data/builtwith/UyDfI71Non.json (234 B)

{
  "url": "https://input.relcfp.com/",
  "source_url": "https://github.com/adamdjbrett/input.relcfp.com",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/V0-QbQqpZu.json (165 B)

{
  "url": "https://neehad.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "neehad"
}

src/_data/builtwith/V0BjdhF3sg.json (179 B)

{
  "url": "https://biehler-josef.de/",
  "source_url": "https://github.com/gabbersepp/biehler-josef",
  "opened_by": "gabbersepp",
  "_backup_opened_by": "twitter:JosefBiehler"
}

src/_data/builtwith/V1bOEfGHDB.json (197 B)

{
  "url": "https://11ty-universe.ryanccn.dev/",
  "source_url": "https://github.com/ryanccn/11ty-universe",
  "opened_by": "ryanccn",
  "_backup_opened_by": "twitter:RyanCaoDev",
  "authors": []
}

src/_data/builtwith/V3pVpJkslZ.json (165 B)

{
  "url": "https://www.oscarscampos.com/",
  "disabled": true,
  "opened_by": "twitter:oscarcampos",
  "_backup_opened_by": "twitter:oscarcampos",
  "authors": []
}

src/_data/builtwith/V8LGe0pApf.json (175 B)

{
  "url": "https://jarijokinen.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jarijokinen"
}

src/_data/builtwith/V8c2PvuD71.json (113 B)

{
  "url": "https://satpurusha.com/",
  "opened_by": "SatPurusha",
  "_backup_opened_by": "twitter:sat_purusha"
}

src/_data/builtwith/V8eX1ONrtM.json (122 B)

{
  "url": "https://peterthaleikis.com/",
  "opened_by": "spekulatius",
  "_backup_opened_by": "twitter:spekulatius1984"
}

src/_data/builtwith/V8p-HBnmEc.json (231 B)

{
  "url": "https://blendit.imaginelenses.com/",
  "source_url": "https://github.com/imaginelenses/blenditSite",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "imaginelenses"
}

src/_data/builtwith/V9MGt5fonv.json (229 B)

{
  "url": "https://www.averagenerdpost.com/",
  "source_url": "https://github.com/preppie22/averagenerdpost.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "preppie22"
}

src/_data/builtwith/VBKQR2-m7Y.json (128 B)

{
  "url": "https://www.1896gallery.com/",
  "opened_by": "Accudio",
  "_backup_opened_by": "twitter:accudio",
  "authors": []
}

src/_data/builtwith/VCZlUviFYK.json (211 B)

{
  "url": "https://coreydmccarty.dev/",
  "source_url": "https://github.com/xanderyzwich/xanderyzwich.github.io",
  "opened_by": "xanderyzwich",
  "_backup_opened_by": "twitter:CoreyDMcCarty",
  "authors": []
}

src/_data/builtwith/VJDEfXaX9V.json (176 B)

{
  "url": "https://www.piatkowska.org.pl/",
  "source_url": "https://github.com/fusilli/piatkowska",
  "opened_by": "fusilli",
  "_backup_opened_by": "twitter:piotrswiderek"
}

src/_data/builtwith/VOA1dBpI96.json (253 B)

{
  "url": "https://seasonal.today/",
  "source_url": "https://github.com/dogwonder/seasonal.today",
  "authors": [],
  "opencollective": "https://opencollective.com/rich-holman",
  "business_url": "",
  "business_name": "",
  "opened_by": "dogwonder"
}

src/_data/builtwith/VTBQykWfBd.json (125 B)

{
  "url": "https://vagabondians.com/",
  "source_url": "https://github.com/dixonge/vagabondians",
  "opened_by": "dixonge"
}

src/_data/builtwith/VVu_o3FJLK.json (207 B)

{
  "url": "https://thinkdobecreate.com/",
  "source_url": "https://github.com/5t3ph/tdbc",
  "authors": [],
  "opencollective": "5t3ph",
  "business_url": "",
  "business_name": "",
  "opened_by": "5t3ph"
}

src/_data/builtwith/VWpotx3mMM.json (109 B)

{
  "url": "https://acnorris.uk/",
  "opened_by": "acnorrisuk",
  "_backup_opened_by": "twitter:acnorrisuk"
}

src/_data/builtwith/VhwTUXkcyB.json (173 B)

{
  "url": "https://isaure.maurel.gd/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Bigaston"
}

src/_data/builtwith/Vkcgue2wFp.json (74 B)

{
  "url": "https://www.tripgazer.com/",
  "opened_by": "FrankBechstein"
}

src/_data/builtwith/VmwhnamnEq.json (269 B)

{
  "url": "https://webchronicle.dev/",
  "source_url": "https://github.com/reatlat/webchronicle/",
  "authors": [
    "reatlat"
  ],
  "opencollective": "reatlat",
  "business_url": "https://alex.zappa.dev/",
  "business_name": "Alex Zappa",
  "opened_by": "reatlat"
}

src/_data/builtwith/VmzDvMy_eJ.json (107 B)

{
  "url": "https://www.stjaer.net/",
  "opened_by": "rise05",
  "_backup_opened_by": "twitter:herr_rise"
}

src/_data/builtwith/VvavEIcjxB.json (187 B)

{
  "url": "https://www.elpaigaritinerante.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "paigar",
  "business_url": "",
  "business_name": "",
  "opened_by": "paigar"
}

src/_data/builtwith/W038EgGk-i.json (183 B)

{
  "url": "https://www.dolwensolutions.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "domwakeling"
}

src/_data/builtwith/W4YcJEJxtT.json (179 B)

{
  "url": "https://maprunner.co.uk/hertsway/",
  "source_url": "https://github.com/Maprunner/hertsway",
  "opened_by": "Maprunner",
  "_backup_opened_by": "twitter:MaprunnerGB"
}

src/_data/builtwith/W4iQ1Xb5Bi.json (116 B)

{
  "url": "https://www.wisc.edu/",
  "opened_by": "twitter:UWMadison",
  "_backup_opened_by": "twitter:UWMadison"
}

src/_data/builtwith/WA5DYURkmN.json (190 B)

{
  "url": "https://www.adamdjbrett.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/WAYJnDm0O1.json (211 B)

{
  "url": "https://faceftw.dev/",
  "source_url": "https://github.com/FaceFTW/faceftw.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "FaceFTW"
}

src/_data/builtwith/WAmsiuglNw.json (193 B)

{
  "url": "https://clioandcalliope.com/",
  "source_url": "https://github.com/siakaramalegos/clioandcalliope",
  "opened_by": "siakaramalegos",
  "_backup_opened_by": "twitter:TheGreenGreek"
}

src/_data/builtwith/WBxyPfMqUK.json (170 B)

{
  "url": "https://11ty.rocks/",
  "source_url": "https://github.com/5t3ph/11ty-rocks",
  "opened_by": "5t3ph",
  "_backup_opened_by": "twitter:5t3ph",
  "authors": []
}

src/_data/builtwith/WNsPBDAZhR.json (239 B)

{
  "url": "https://eleventy-excellent.netlify.app/",
  "source_url": "https://github.com/madrilene/eleventy-excellent",
  "authors": [],
  "opencollective": "lene",
  "business_url": "",
  "business_name": "",
  "opened_by": "madrilene"
}

src/_data/builtwith/WTxBZk7j4m.json (123 B)

{
  "url": "https://www.oliviapoumeyrol.com/",
  "opened_by": "marcfilleul",
  "_backup_opened_by": "twitter:marcfilleul"
}

src/_data/builtwith/WYbCy6RrVL.json (265 B)

{
  "url": "https://www.kulturainatura.pl/",
  "leaderboard_excluded": false,
  "source_url": "https://github.com/fusilli/kulturainatura",
  "authors": [],
  "opencollective": "piotr-swiderek",
  "business_url": "",
  "business_name": "",
  "opened_by": "fusilli"
}

src/_data/builtwith/WYjoUOWKN9.json (126 B)

{
  "url": "https://escape-extinction.com/",
  "opened_by": "siakaramalegos",
  "_backup_opened_by": "twitter:TheGreenGreek"
}

src/_data/builtwith/WakGkOeNXQ.json (113 B)

{
  "url": "https://frontendnorth.com/",
  "opened_by": "iparr",
  "_backup_opened_by": "twitter:frontendnorth"
}

src/_data/builtwith/Wbmb4wN03Q.json (169 B)

{
  "url": "https://marcamos.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "marcamos"
}

src/_data/builtwith/WetiFbaDxO.json (211 B)

{
  "url": "https://www.speedlify.dev/",
  "source_url": "https://github.com/zachleat/speedlify",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/Wj7W98HioX.json (235 B)

{
  "url": "https://westwarwicks.club/",
  "source_url": "https://github.com/andystevenson/wwsc.club",
  "authors": [],
  "opencollective": "andy-stevenson",
  "business_url": "",
  "business_name": "",
  "opened_by": "andystevenson"
}

src/_data/builtwith/WqmH1KzhRD.json (195 B)

{
  "url": "https://frankfuchs.net/",
  "source_url": "",
  "authors": [
    "brainseller"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "brainseller"
}

src/_data/builtwith/WwHEH_Z7J9.json (212 B)

{
  "url": "https://zlushiie.pages.dev/",
  "source_url": "https://github.com/Zlushiie/portfolio",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Zlushiie"
}

src/_data/builtwith/WxXE7EyoPr.json (229 B)

{
  "url": "https://petermekhaeil.com/",
  "source_url": "https://github.com/petermekhaeil/petermekhaeil.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "petermekhaeil"
}

src/_data/builtwith/X-RAPzr_WU.json (173 B)

{
  "url": "https://www.erikkroes.nl/",
  "source_url": "https://github.com/erikkroes/erikkroes-nl",
  "opened_by": "erikkroes",
  "_backup_opened_by": "twitter:erikKroes"
}

src/_data/builtwith/X0BXj1P9Gt.json (119 B)

{
  "url": "https://www.hamandhoney.com/",
  "opened_by": "hamandhoney",
  "_backup_opened_by": "twitter:hamandhoney"
}

src/_data/builtwith/X7XFU9A-O0.json (115 B)

{
  "url": "https://yoghaswara.vercel.app/",
  "source_url": "https://github.com/yoghaswara/yoghaswara.github.io"
}

src/_data/builtwith/X9Rz4Rr6x3.json (228 B)

{
  "url": "https://fudge.org/",
  "source_url": "https://github.com/JayCuthrell/fudge-org-eleventy-excellent",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "JayCuthrell"
}

src/_data/builtwith/XDh2l3qYGg.json (199 B)

{
  "url": "https://www.3dprint.gallery/",
  "opened_by": "BrettMN",
  "_backup_opened_by": "twitter:brettmn",
  "business_url": "https://nelson.consulting/",
  "business_name": "Nelson Consulting"
}

src/_data/builtwith/XIMtKlPslH.json (173 B)

{
  "url": "https://franconcapital.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "maxxsh"
}

src/_data/builtwith/XIf4x5hqOd.json (244 B)

{
  "url": "https://thegymnasium.com/",
  "source_url": "https://github.com/gymnasium/gym-eleventy",
  "authors": [
    "rediris",
    "jgagne"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "rediris"
}

src/_data/builtwith/XQ3zjhFpSv.json (185 B)

{
  "url": "https://mikka.md/",
  "source_url": "",
  "authors": [
    "mikka2061"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mikka2061"
}

src/_data/builtwith/XXU1RyEYM9.json (215 B)

{
  "url": "https://anaislemercier.com/",
  "source_url": "https://github.com/bcalou/portfolio-anais/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bcalou"
}

src/_data/builtwith/XZRDPmQGN4.json (244 B)

{
  "url": "https://www.bijouteriebarriere.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "celinedesign",
  "business_url": "https://www.celinedesign.com/",
  "business_name": "CelineDesign",
  "opened_by": "seb-celinedesign"
}

src/_data/builtwith/XaE5wvC7cn.json (221 B)

{
  "url": "https://indrajith.dev/",
  "source_url": "https://github.com/cooljith91112/indrajith.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "cooljith91112"
}

src/_data/builtwith/Xax-UGSvpm.json (173 B)

{
  "url": "https://vincentp.me/",
  "source_url": "https://github.com/vipickering/vincentp",
  "opened_by": "vipickering",
  "_backup_opened_by": "twitter:vincentlistens"
}

src/_data/builtwith/Xeed8QorLE.json (178 B)

{
  "url": "https://parth.ninja/",
  "source_url": "https://github.com/partheus/partheus.github.io",
  "opened_by": "partheus",
  "_backup_opened_by": "twitter:parthshiralkar"
}

src/_data/builtwith/XkeoG_vu5r.json (195 B)

{
  "url": "https://kingdomcode.org.uk/",
  "source_url": "https://github.com/kingdom-code/kingdom-code",
  "opened_by": "jamesdoc",
  "_backup_opened_by": "twitter:kcodeuk",
  "authors": [
  ]
}

src/_data/builtwith/Xmva2hcRxQ.json (242 B)

{
  "url": "https://makotokw.com/",
  "source_url": "https://github.com/makotokw/makotokw.com",
  "authors": [
    "makotokw"
  ],
  "opencollective": "makoto-kawasaki",
  "business_url": "",
  "business_name": "",
  "opened_by": "makotokw"
}

src/_data/builtwith/XozGGxMUn2.json (156 B)

{
  "url": "https://www.shera.gay/",
  "source_url": "https://github.com/higby/shera.gay",
  "opened_by": "higby",
  "_backup_opened_by": "twitter:higby_"
}

src/_data/builtwith/XujW4D1xRS.json (216 B)

{
  "url": "https://www.atlas.bi/",
  "source_url": "https://github.com/atlas-bi/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "christopherpickering"
}

src/_data/builtwith/Xuwgs_cwdh.json (154 B)

{
  "url": "https://dassur.ma/",
  "source_url": "https://github.com/surma/surma.dev",
  "opened_by": "surma",
  "_backup_opened_by": "twitter:DasSurma"
}

src/_data/builtwith/XvEaXKu6um.json (103 B)

{
  "url": "https://www.hno-marienplatz.de/",
  "opened_by": "madrilene",
  "opencollective": "lene"
}

src/_data/builtwith/Y-4kEgmwZk.json (258 B)

{
  "url": "https://www.johnbiggins.net/",
  "source_url": "",
  "authors": [
    "danurbanowicz"
  ],
  "opencollective": "dan-urbanowicz",
  "business_url": "https://danurbanowicz.com/",
  "business_name": "Dan Urbanowicz",
  "opened_by": "danurbanowicz"
}

src/_data/builtwith/Y-m8HZJJLW.json (122 B)

{
  "url": "https://www.mikeaparicio.com/",
  "opened_by": "peruvianidol",
  "_backup_opened_by": "twitter:peruvianidol"
}

src/_data/builtwith/Y6Ff75bwzV.json (190 B)

{
  "url": "https://virga.frontendweekly.tokyo/",
  "source_url": "https://github.com/frontendweekly/virga",
  "opened_by": "studiomohawk",
  "_backup_opened_by": "twitter:frontend_weekly"
}

src/_data/builtwith/YB3EmouqDX.json (182 B)

{
  "url": "https://dockerwebdev.com/",
  "source_url": "https://github.com/craigbuckler/dockerwebdev",
  "opened_by": "craigbuckler",
  "_backup_opened_by": "twitter:craigbuckler"
}

src/_data/builtwith/YDjsTBgHXn.json (112 B)

{
  "url": "https://annualbeta.com/",
  "opened_by": "gabbersepp",
  "_backup_opened_by": "twitter:polarbirke"
}

src/_data/builtwith/YHceX6yffP.json (186 B)

{
  "url": "https://bigaston.me/",
  "source_url": "",
  "authors": [
    "Bigaston"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Bigaston"
}

src/_data/builtwith/YK8YrHng8K.json (179 B)

{
  "url": "https://obspogon.neocities.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Obspogon"
}

src/_data/builtwith/YKRHgW3dOP.json (101 B)

{
  "url": "https://muted.io/",
  "opened_by": "mutedio",
  "_backup_opened_by": "twitter:muted_io"
}

src/_data/builtwith/YLIPxMbxYA.json (214 B)

{
  "url": "https://offbeatbits.com/",
  "source_url": "https://github.com/offbeatbits/offbeatbits/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "lwojcik"
}

src/_data/builtwith/YLaKFutT4y.json (210 B)

{
  "url": "https://torcellini.org/",
  "source_url": "https://github.com/torcellini/torcellini",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Micah-T"
}

src/_data/builtwith/YMUQECZiAk.json (187 B)

{
  "url": "https://jdsteinbach.com/",
  "source_url": "https://github.com/jdsteinbach/jdsteinbach.github.io",
  "opened_by": "jdsteinbach",
  "_backup_opened_by": "twitter:jdsteinbach"
}

src/_data/builtwith/YNIUR2THeW.json (258 B)

{
  "url": "https://stoptxeviction.org/",
  "disabled": true,
  "opened_by": "huphtur",
  "_backup_opened_by": "twitter:StopTXEviction",
  "authors": [
    "twitter:huphtur",
    "twitter:rdebled",
    "twitter:brianschinazi",
    "twitter:LegalServer"
  ]
}

src/_data/builtwith/YO7tYQuntO.json (180 B)

{
  "url": "https://zoepage.github.io/",
  "source_url": "https://github.com/zoepage/zoepage.github.io",
  "opened_by": "zoepage",
  "_backup_opened_by": "twitter:misprintedtype"
}

src/_data/builtwith/YT8Vvq-qtV.json (287 B)

{
  "url": "https://chromatichq.com/",
  "source_url": "",
  "authors": [
    "chrisfree",
    "agarzola",
    "markdorison",
    "michelegrace",
    "danarbello",
    "adamzimmermann"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "chrisfree"
}

src/_data/builtwith/YTf6sN1LmS.json (244 B)

{
  "url": "https://ruby-style-guide.shopify.dev/",
  "source_url": "https://github.com/Shopify/ruby-style-guide",
  "authors": [
    "volmer"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/YTsKGGkKFV.json (114 B)

{
  "url": "https://taylordavidson.com/",
  "opened_by": "tdavidson",
  "_backup_opened_by": "twitter:tdavidson"
}

src/_data/builtwith/YVuTjWLLyb.json (231 B)

{
  "url": "https://blog.davidmoll.net/",
  "source_url": "https://github.com/Akashic101/blog",
  "authors": [
    "Akashic101"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Akashic101"
}

src/_data/builtwith/YYLO54Ir8n.json (198 B)

{
  "url": "https://11ty.recipes/",
  "source_url": "https://github.com/peruvianidol/11ty-recipes",
  "opened_by": "peruvianidol",
  "_backup_opened_by": "twitter:peruvianidol",
  "authors": [
  ]
}

src/_data/builtwith/YaNt92ZGd5.json (196 B)

{
  "url": "https://a-cuca.github.io/",
  "source_url": "",
  "authors": [
    "gericci"
  ],
  "opencollective": "gericci",
  "business_url": "",
  "business_name": "",
  "opened_by": "gericci"
}

src/_data/builtwith/Ycnc6nxeSR.json (193 B)

{
  "url": "https://bujinkancantabria.ninja/",
  "source_url": "https://github.com/AngelGuerra/bujinkan-cantabria",
  "opened_by": "AngelGuerra",
  "_backup_opened_by": "twitter:AngelLGuerra"
}

src/_data/builtwith/YeaQT3Yv2M.json (187 B)

{
  "url": "https://darn.es/",
  "opened_by": "daviddarnes",
  "_backup_opened_by": "twitter:daviddarnes",
  "business_url": "https://darn.es/#contact",
	"business_name": "David Darnes"
}

src/_data/builtwith/YgEJhklUYA.json (194 B)

{
  "url": "https://www.projectmb.com/",
  "source_url": "",
  "authors": [
    "projectmb"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "projectmb"
}

src/_data/builtwith/YgMutekNSJ.json (353 B)

{
  "url": "https://camping-speakers.fr/",
  "source_url": "https://github.com/RdvSpeakers/camping-des-speakers-website",
  "authors": [
    "LostInBrittany",
    "scraly",
    "Steffy29",
    "lucienbill",
    "ys",
    "thomasboni",
    "ptibulle"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "lucienbill"
}

src/_data/builtwith/Yif0zjPIT7.json (180 B)

{
  "url": "https://thomasmariahelzle.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ScreenDream"
}

src/_data/builtwith/YkCZZW3zrZ.json (89 B)

{
  "url": "https://pflry.eu/",
  "_backup_opened_by": "gabbersepp",
  "disabled": true
}

src/_data/builtwith/YkvTo7zFq-.json (159 B)

{
  "url": "https://buttonbuddy.dev/",
  "source_url": "https://github.com/5t3ph/buttonbuddy",
  "opened_by": "5t3ph",
  "_backup_opened_by": "twitter:5t3ph"
}

src/_data/builtwith/YnJsgUv_BG.json (183 B)

{
  "url": "https://www.allaboutken.com/",
  "source_url": "https://github.com/khawkins98/allaboutken-11ty",
  "opened_by": "khawkins98",
  "_backup_opened_by": "twitter:khawkins98"
}

src/_data/builtwith/YrI5z7ScXF.json (112 B)

{
  "url": "https://www.statox.fr/",
  "source_url": "https://github.com/statox/blog",
  "opened_by": "statox"
}

src/_data/builtwith/YuFqWlItw7.json (181 B)

{
  "url": "https://runawayracing.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "chrisbradleyrun"
}

src/_data/builtwith/Z4-kOviFMl.json (165 B)

{
  "url": "https://checkthisout.today/",
  "source_url": "https://github.com/ashur/check-this-out",
  "opened_by": "ashur",
  "_backup_opened_by": "twitter:ashur"
}

src/_data/builtwith/Z9n-0YF1Gr.json (170 B)

{
  "url": "https://www.wildhair.fr/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "innesi"
}

src/_data/builtwith/ZD77XpY6-q.json (211 B)

{
  "url": "https://prateeksurana.me/",
  "source_url": "https://github.com/prateek3255/blog",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "prateek3255"
}

src/_data/builtwith/ZE7JO9Yw1t.json (204 B)

{
  "url": "https://edmill.dev/",
  "source_url": "https://github.com/mllngtn/edmill-11ty",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mllngtn"
}

src/_data/builtwith/ZG7hJCW-9C.json (181 B)

{
  "url": "https://johnskinnerportfolio.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jskinne3"
}

src/_data/builtwith/ZKkWZzlVdI.json (107 B)

{
  "url": "https://www.fundaciongoethe.org/es/",
  "opened_by": "madrilene",
  "opencollective": "lene"
}

src/_data/builtwith/ZQliTJRbZz.json (149 B)

{
  "url": "https://mxb.dev/",
  "source_url": "https://github.com/maxboeck/mxb",
  "opened_by": "maxboeck",
  "_backup_opened_by": "twitter:mxbck"
}

src/_data/builtwith/ZWPwwmRYrM.json (168 B)

{
  "url": "https://corina-rudel.de/",
  "source_url": "https://github.com/fricca/corina-rudel.de",
  "opened_by": "fricca",
  "_backup_opened_by": "twitter:_fricca_"
}

src/_data/builtwith/ZYRe4-AsPk.json (169 B)

{
  "url": "https://inigochoa.me/",
  "source_url": "https://github.com/inigochoa/inigochoa.me",
  "opened_by": "inigochoa",
  "_backup_opened_by": "twitter:inigochoa"
}

src/_data/builtwith/ZZ4F70e6DN.json (232 B)

{
  "url": "https://www.scottmurphytennis.net/",
  "source_url": "https://github.com/bobmonsour/smt_11ty",
  "authors": [],
  "opencollective": "bobmonsour",
  "business_url": "",
  "business_name": "",
  "opened_by": "bobmonsour"
}

src/_data/builtwith/ZfH4IMasOR.json (117 B)

{
  "url": "https://www.mapledesign.co.uk/",
  "opened_by": "pbowyer",
  "_backup_opened_by": "twitter:mapledesign"
}

src/_data/builtwith/ZhfIMb09Ym.json (170 B)

{
  "url": "https://www.zachleat.com/",
  "source_url": "https://github.com/zachleat/zachleat.com",
  "opened_by": "zachleat",
  "_backup_opened_by": "twitter:zachleat"
}

src/_data/builtwith/ZjRCbWLVbS.json (231 B)

{
  "url": "https://danielhieber.info/",
  "source_url": "https://github.com/dwhieb/danielhieber.info",
  "authors": [
    "dwhieb"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dwhieb"
}

src/_data/builtwith/ZotcNn4uUo.json (203 B)

{
  "url": "https://gaiety.life/",
  "source_url": "https://git.gay/gaiety/gaiety-life",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "hergaiety"
}

src/_data/builtwith/ZqRFLyqfv5.json (199 B)

{
  "url": "https://scottpdawson.com/",
  "source_url": "https://github.com/scottpdawson/scottpdawson",
  "opened_by": "scottpdawson",
  "_backup_opened_by": "twitter:scottpdawson",
  "authors": []
}

src/_data/builtwith/ZsdlnHTokm.json (169 B)

{
  "url": "https://tapchamps.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "hakim-d"
}

src/_data/builtwith/ZwO3zG8eJQ.json (71 B)

{
  "url": "https://jaenis.ch/",
  "_backup_opened_by": "csakiistvan"
}

src/_data/builtwith/Zw_AhIh_iy.json (227 B)

{
  "url": "https://lakeback.org/",
  "source_url": "https://github.com/adamdjbrett/lakeback.org/",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/Zz7jSZBPXh.json (84 B)

{
  "url": "https://cafeiso.com/",
  "opened_by": "greatislander",
  "authors": []
}

src/_data/builtwith/_-7vgnh1zr.json (208 B)

{
  "url": "https://stillness.digital/",
  "source_url": "https://github.com/xdesro/stillness/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "xdesro"
}

src/_data/builtwith/_3P9RBHSmN.json (168 B)

{
  "url": "https://shotplot.app/",
  "source_url": "https://github.com/andrewpucci/shotplot",
  "opened_by": "andrewpucci",
  "_backup_opened_by": "twitter:shotplot"
}

src/_data/builtwith/_5VCA0Thsn.json (233 B)

{
  "url": "https://eleventy-explorer.netlify.app/",
  "source_url": "https://github.com/TigersWay/eleventy-explorer",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "TigersWay"
}

src/_data/builtwith/_6e4H643ta.json (232 B)

{
  "url": "https://halide.netlify.app/",
  "source_url": "https://github.com/danurbanowicz/halide",
  "authors": [],
  "opencollective": "danurbanowicz",
  "business_url": "",
  "business_name": "",
  "opened_by": "danurbanowicz"
}

src/_data/builtwith/_E9RGUmYG5.json (205 B)

{
  "url": "https://xn--ime-zza.eu/",
  "source_url": "https://github.com/simevidas/blog",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simevidas"
}

src/_data/builtwith/_FdijEcXOu.json (114 B)

{
  "url": "https://joelamyman.co.uk/",
  "opened_by": "joelamyman",
  "_backup_opened_by": "twitter:JoeLamyman"
}

src/_data/builtwith/_JMZ2Yfgjr.json (244 B)

{
  "url": "https://bullrich.dev/",
  "source_url": "https://github.com/Bullrich/bullrich.github.io",
  "authors": [],
  "opencollective": "bullrich",
  "business_url": "https://bullrich.dev/",
  "business_name": "",
  "opened_by": "Bullrich"
}

src/_data/builtwith/_ODOyDo-Jk.json (226 B)

{
  "url": "https://minimo.io/",
  "source_url": "https://github.com/minimo-io/minimo-11ty",
  "authors": [
    "minimo-io"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "minimo-io"
}

src/_data/builtwith/_QdRIYPaeL.json (208 B)

{
  "url": "https://realdx.online/",
  "source_url": "",
  "authors": [
    "chrisburnell"
  ],
  "opencollective": "chrisburnell",
  "business_url": "",
  "business_name": "",
  "opened_by": "chrisburnell"
}

src/_data/builtwith/_Rtq3u9w-u.json (77 B)

{
  "url": "https://shivjm.blog/",
  "opened_by": "shivjm",
  "authors": []
}

src/_data/builtwith/_TFC63iocr.json (131 B)

{
  "url": "https://www.kareldesmet.be/",
  "source_url": "https://github.com/carlos-ds/personal-web",
  "opened_by": "carlos-ds"
}

src/_data/builtwith/_Uw0jNSHcm.json (216 B)

{
  "url": "https://fuzzylogic.me/",
  "source_url": "https://github.com/fuzzylogicxx/fuzzylogic",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "fuzzylogicxx"
}

src/_data/builtwith/_V3DVBnVFj.json (170 B)

{
  "url": "https://sarahmhigley.com/",
  "source_url": "https://github.com/smhigley/11ty-site",
  "opened_by": "smhigley",
  "_backup_opened_by": "twitter:codingchaos"
}

src/_data/builtwith/_VWYZ4LfJH.json (182 B)

{
  "url": "https://desiredpersona.com/",
  "source_url": "https://github.com/desiredpersona/blog",
  "opened_by": "desiredpersona",
  "_backup_opened_by": "twitter:desiredpersona"
}

src/_data/builtwith/_X1poS-CRk.json (212 B)

{
  "url": "https://performance-kit.netlify.app/",
  "source_url": "https://github.com/code-mattclaffey/performance-kit/tree/v2",
  "opened_by": "code-mattclaffey",
  "_backup_opened_by": "twitter:mattclaffey1"
}

src/_data/builtwith/_Z2xFYBkMz.json (192 B)

{
  "url": "https://www.patrickxchong.com/",
  "source_url": "https://github.com/patrickxchong/patrickxchong.com",
  "opened_by": "patrickxchong",
  "_backup_opened_by": "twitter:Patrick153"
}

src/_data/builtwith/__eastford-news.json (200 B)

{
  "url": "https://eastford.news/",
  "source_url": "https://github.com/EastfordCommunicator/website/",
  "authors": ["Micah-T"],
  "opencollective": "",
  "business_url": "",
  "business_name": ""
}

src/_data/builtwith/_cTrvIT2tq.json (110 B)

{
  "url": "https://lamygram.app/",
  "opened_by": "joelamyman",
  "_backup_opened_by": "twitter:JoeLamyman"
}

src/_data/builtwith/_cy0Rv7nsQ.json (222 B)

{
  "url": "https://alaskahikesearch.com/",
  "source_url": "https://github.com/bcwood/alaskahikesearch-11ty",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bcwood"
}

src/_data/builtwith/_eXWoEaVLX.json (263 B)

{
  "url": "https://11tymeetup.dev/",
  "source_url": "https://github.com/Eleventy-Meetup/website",
  "opened_by": "siakaramalegos",
  "_backup_opened_by": "twitter:TheGreenGreek",
  "authors": [
    "siakaramalegos",
    "5t3ph",
    "twitter:vincefalconi"
  ]
}

src/_data/builtwith/_ifkZzYcik.json (142 B)

{
  "url": "https://spaghetti.directory/",
  "opened_by": "iamkevingreen",
  "_backup_opened_by": "twitter:spaghetti_emoji",
  "authors": []
}

src/_data/builtwith/_q7igA4U7F.json (191 B)

{
  "url": "https://www.console.love/",
  "disabled": true,
  "source_url": "https://github.com/maeligg/console.love",
  "opened_by": "twitter:maelb",
  "_backup_opened_by": "twitter:maelb"
}

src/_data/builtwith/_qwHG2kUzw.json (241 B)

{
  "url": "https://homeding.github.io/",
  "source_url": "https://github.com/HomeDing/homeding.github.io",
  "authors": [
    "mathertel"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mathertel"
}

src/_data/builtwith/_zwjGgFEpv.json (218 B)

{
  "url": "https://ademhatay.com/",
  "source_url": "https://github.com/ademhatay/ademhatay",
  "authors": [],
  "opencollective": "ademhatay",
  "business_url": "",
  "business_name": "",
  "opened_by": "ademhatay"
}

src/_data/builtwith/a--ci1ESvS.json (210 B)

{
  "url": "https://radiocanadamini.ca/",
  "source_url": "https://github.com/jr-b/radiocanadalite",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jr-b"
}

src/_data/builtwith/a0sAn8pIiY.json (174 B)

{
  "url": "https://writteninstone.photo/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ashur"
}

src/_data/builtwith/a1O2n9hI35.json (221 B)

{
  "url": "https://chillies-aberfeldy-website.netlify.app/",
  "source_url": "",
  "authors": [
    "brettdewoody"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "brettdewoody"
}

src/_data/builtwith/a2Jq8vdtlC.json (200 B)

{
  "url": "https://lessonsofacto.com/",
  "source_url": "",
  "authors": [
    "ryantownsend"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ryantownsend"
}

src/_data/builtwith/a8vJqWY6Qa.json (201 B)

{
  "url": "https://kiri-vadivelu.ca/",
  "source_url": "",
  "authors": [
    "kiri-vadivelu"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kiri-vadivelu"
}

src/_data/builtwith/a90bXtJ4Lu.json (224 B)

{
  "url": "https://www.srva.ai/",
  "source_url": "",
  "authors": [
    "reatlat"
  ],
  "opencollective": "reatlat",
  "business_url": "https://alex.zappa.dev/",
  "business_name": "Alex Zappa",
  "opened_by": "reatlat"
}

src/_data/builtwith/aA57zu22wH.json (255 B)

{
  "url": "https://www.alfieaward.com/",
  "source_url": "https://github.com/adamdjbrett/alfieaward.com",
  "authors": [
    "adamdjbrett"
  ],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/aB9cCxv4h_.json (118 B)

{
  "url": "https://tsuwave.studio/",
  "opened_by": "twitter:ajmalafif",
  "_backup_opened_by": "twitter:ajmalafif"
}

src/_data/builtwith/aGwyuxEscF.json (174 B)

{
  "url": "https://www.humankode.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "thecarlo"
}

src/_data/builtwith/aSmNPb3gck.json (101 B)

{
  "url": "https://www.lenesaile.com/en/",
  "opened_by": "madrilene",
  "opencollective": "lene"
}

src/_data/builtwith/aVOx5Krqio.json (198 B)

{
  "url": "https://handmadevalentineexchange.com/",
  "source_url": "",
  "authors": [
    "dryan"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dryan"
}

src/_data/builtwith/aXE7XXyWBO.json (169 B)

{
  "url": "https://frontenddogma.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "j9t"
}

src/_data/builtwith/aZH_8tEVtd.json (266 B)

{
  "url": "https://brooks-html-template.netlify.app/",
  "source_url": "https://github.com/holger1411/brook-dev",
  "authors": [
    "holger1411"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "templatedeck.com",
  "opened_by": "holger1411"
}

src/_data/builtwith/aZStGvoQte.json (158 B)

{
  "url": "https://www.matuzo.at/",
  "source_url": "https://github.com/matuzo/matuzoat",
  "opened_by": "matuzo",
  "_backup_opened_by": "twitter:mmatuzo"
}

src/_data/builtwith/aa9AOfTi6O.json (186 B)

{
  "url": "https://hobbies.alexcarpenter.me/",
  "source_url": "https://github.com/alexcarpenter/hobbies",
  "opened_by": "alexcarpenter",
  "_backup_opened_by": "twitter:hybrid_alex"
}

src/_data/builtwith/al1sCKiZBD.json (74 B)

{
  "url": "https://statebox.org/",
  "_backup_opened_by": "csakiistvan"
}

src/_data/builtwith/aoEMiO2kRh.json (176 B)

{
  "url": "https://plana.digital/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "diogoterremoto"
}

src/_data/builtwith/azcPVVli_j.json (196 B)

{
  "url": "https://wipdeveloper.com/",
  "opened_by": "BrettMN",
  "_backup_opened_by": "twitter:brettmn",
  "business_url": "https://nelson.consulting/",
  "business_name": "Nelson Consulting"
}

src/_data/builtwith/b-CGg0oNDE.json (201 B)

{
  "url": "https://cg21.in/",
  "source_url": "https://github.com/cg21-site/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "arpit-agr"
}

src/_data/builtwith/b-j6BsTOGA.json (181 B)

{
  "url": "https://www.bergqvist.it/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "fredrikbergqvist"
}

src/_data/builtwith/b138b0swx_.json (151 B)

{
  "url": "https://smolcss.dev/",
  "source_url": "https://github.com/5t3ph/smolcss",
  "opened_by": "5t3ph",
  "_backup_opened_by": "twitter:5t3ph"
}

src/_data/builtwith/b66p07D94B.json (246 B)

{
  "url": "https://quire.getty.edu/",
  "source_url": "https://github.com/thegetty/quire/",
  "authors": [
    "mphstudios"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat",
  "featured": true
}

src/_data/builtwith/b86VnGfOJO.json (246 B)

{
  "url": "https://www.virtualcomedycafe.com/",
  "source_url": "https://github.com/adamdjbrett/virtual-comedy-cafe",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/bGaNPEPYvj.json (198 B)

{
  "url": "https://gsap.com/",
  "source_url": "",
  "authors": [
    "cassieevans"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "",
  "featured": true
}

src/_data/builtwith/bS5QyOmc6k.json (116 B)

{
  "url": "https://bostontparty.co.za/",
  "opened_by": "brootaylor",
  "_backup_opened_by": "twitter:brootaylor"
}

src/_data/builtwith/bgr0nqGizY.json (228 B)

{
  "url": "https://vandeventures.netlify.app/",
  "source_url": "https://github.com/spaceninja/dnd-adventures",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "spaceninja"
}

src/_data/builtwith/bmjkv_K5vb.json (142 B)

{
  "url": "https://alesandroortiz.com/",
  "opened_by": "alesandroortiz",
  "_backup_opened_by": "twitter:AlesandroOrtizR",
  "authors": []
}

src/_data/builtwith/bml0Ge_TW4.json (215 B)

{
  "url": "https://www.matthewthom.as/",
  "source_url": "https://github.com/mwt/matthewthomas-11ty/",
  "authors": [],
  "opencollective": "mwt",
  "business_url": "",
  "business_name": "",
  "opened_by": "mwt"
}

src/_data/builtwith/bofIMgL4rR.json (184 B)

{
  "url": "https://www.duetds.com/",
  "opened_by": "twitter:lahi_tapiola",
  "_backup_opened_by": "twitter:lahi_tapiola",
  "authors": [
    "arielsalminen"
  ],
  "featured": true
}

src/_data/builtwith/bpCfs5mVbk.json (115 B)

{
  "url": "https://parts.cuscousainc.com/",
  "opened_by": "nuotsu",
  "_backup_opened_by": "twitter:marutchell"
}

src/_data/builtwith/bpfPbmnmZk.json (193 B)

{
  "url": "https://frontendweekly.tokyo/",
  "source_url": "https://github.com/frontendweekly/frontendweekly",
  "opened_by": "studiomohawk",
  "_backup_opened_by": "twitter:frontend_weekly"
}

src/_data/builtwith/bxLEK7-_Qk.json (161 B)

{
  "url": "https://kack.dev/",
  "source_url": "https://github.com/gabbersepp/kack_dev",
  "opened_by": "gabbersepp",
  "_backup_opened_by": "twitter:KackDev"
}

src/_data/builtwith/bydkHxZXfn.json (235 B)

{
  "url": "https://cover.000000076.xyz/",
  "source_url": "https://github.com/adamdjbrett/11covers-theme",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/c0pc-e43Wk.json (197 B)

{
  "url": "https://tj.ie/",
  "source_url": "https://github.com/tjFogarty/tj-ie",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tjFogarty"
}

src/_data/builtwith/c2j2KyZzfk.json (234 B)

{
  "url": "https://dumbpasswordrules.com/",
  "source_url": "https://github.com/duffn/dumb-password-rules",
  "authors": [
    "duffn"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "duffn"
}

src/_data/builtwith/c3wIiUcvrc.json (183 B)

{
  "url": "https://spyrath.dev/",
  "source_url": "https://github.com/louisefindlay23/portfolio",
  "opened_by": "louisefindlay23",
  "_backup_opened_by": "twitter:louisefindlay23"
}

src/_data/builtwith/c46l6xXIxW.json (123 B)

{
  "url": "https://dnhandcrafted.com/",
  "opened_by": "twitter:dougneiner",
  "_backup_opened_by": "twitter:dougneiner"
}

src/_data/builtwith/c9-IaymktV.json (216 B)

{
  "url": "https://photogabble.co.uk/",
  "source_url": "https://github.com/photogabble/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "carbontwelve"
}

src/_data/builtwith/c9yXO5I3xE.json (302 B)

{
  "url": "https://showmy.chat/",
  "source_url": "https://github.com/BenDMyers/showmy.chat",
  "authors": [
    "BenDMyers",
    "fimion",
    "KenAKAFrosty",
    "NMeuleman",
    "jbolda"
  ],
  "opencollective": "bendmyers",
  "business_url": "",
  "business_name": "",
  "opened_by": "BenDMyers"
}

src/_data/builtwith/cFGNpfDe-u.json (220 B)

{
  "url": "https://veganprestwich.co.uk/",
  "source_url": "https://git.sr.ht/~stfn/vegan-prestwich",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "stefan-burke"
}

src/_data/builtwith/cKLx1S_xMz.json (139 B)

{
  "url": "https://glenn.thedixons.net/",
  "source_url": "https://github.com/dixonge/gtd",
  "opened_by": "dixonge",
  "disabled": true
}

src/_data/builtwith/cQZuN8Ha0X.json (179 B)

{
  "url": "https://horrorrevue.xyz/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "charlibydesign"
}

src/_data/builtwith/cRcJ4DyuMa.json (243 B)

{
  "url": "https://research.000000076.xyz/",
  "source_url": "https://github.com/adamdjbrett/11ty-research-guide",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/cSgvircfee.json (226 B)

{
  "url": "https://www.mathew-paul.nz/",
  "source_url": "https://github.com/matt-auckland/personal-site",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "matt-auckland"
}

src/_data/builtwith/cSkASyDy2w.json (221 B)

{
  "url": "https://ffconf.org/",
  "source_url": "https://github.com/leftlogic/ffconf",
  "opened_by": "twitter:ffconf",
  "_backup_opened_by": "twitter:ffconf",
  "authors": [
    "twitter:rem"
  ],
  "featured": true
}

src/_data/builtwith/cUqSQ5ZDmx.json (165 B)

{
  "url": "https://fightwithtools.dev/",
  "source_url": "https://github.com/AramZS/devblog",
  "opened_by": "AramZS",
  "_backup_opened_by": "twitter:chronotope"
}

src/_data/builtwith/cYP0DKLPU0.json (103 B)

{
  "url": "https://iainbean.com/",
  "opened_by": "inbn",
  "_backup_opened_by": "twitter:iainmbean"
}

src/_data/builtwith/cZ-ILOKiJ8.json (275 B)

{
  "url": "https://events.lunch.dev/",
  "source_url": "https://github.com/LunchDevCommunity/community-calendar",
  "authors": [
    "BenDMyers",
    "chantastic"
  ],
  "opencollective": "bendmyers",
  "business_url": "",
  "business_name": "",
  "opened_by": "BenDMyers"
}

src/_data/builtwith/caEzlDzP6G.json (173 B)

{
  "url": "https://www.tatianamac.com/",
  "source_url": "https://github.com/tatianamac/tm11ty",
  "opened_by": "tatianamac",
  "_backup_opened_by": "twitter:tatianatmac"
}

src/_data/builtwith/cgiKImBqG0.json (190 B)

{
  "url": "https://www.hawksworx.com/",
  "source_url": "https://github.com/philhawksworth/hawksworx.com",
  "opened_by": "philhawksworth",
  "_backup_opened_by": "twitter:philhawksworth"
}

src/_data/builtwith/chfZgNzRWU.json (175 B)

{
  "url": "https://slides.oddbird.net/",
  "opened_by": "MiriSuzanne",
  "_backup_opened_by": "twitter:OddBird",
  "authors": [
    "MiriSuzanne",
    "twitter:OddBird"
  ]
}

src/_data/builtwith/ciPptRUm9A.json (174 B)

{
  "url": "https://spruce.com.ng/",
  "disabled": true,
  "opened_by": "iamspruce",
  "_backup_opened_by": "twitter:sprucekhalifa",
  "authors": [
    "twitter:Spruce"
  ]
}

src/_data/builtwith/ckXQJz3A2b.json (241 B)

{
  "url": "https://chriskirknielsen.com/",
  "source_url": "https://github.com/chriskirknielsen/2020",
  "authors": [],
  "opencollective": "chriskirknielsen",
  "business_url": "",
  "business_name": "",
  "opened_by": "chriskirknielsen"
}

src/_data/builtwith/cm9TfQ6P3E.json (233 B)

{
  "url": "https://martinschneider.me/",
  "source_url": "https://github.com/schneyra/martinschneiderme-11ty",
  "authors": [],
  "opencollective": "schneyra",
  "business_url": "",
  "business_name": "",
  "opened_by": "schneyra"
}

src/_data/builtwith/cmyo_EAV28.json (231 B)

{
  "url": "https://www.lene.dev/",
  "source_url": "https://github.com/madrilene/lene.dev",
  "opencollective": "lene",
  "business_url": "https://www.lenesaile.com/",
  "business_name": "Lene Saile",
  "opened_by": "madrilene"
}

src/_data/builtwith/cnKVCtFe5k.json (183 B)

{
  "url": "https://zacharyparsons.co.uk/",
  "source_url": "https://github.com/zgparsons/zachary-blog",
  "opened_by": "zgparsons",
  "_backup_opened_by": "twitter:originalzedders"
}

src/_data/builtwith/cp0_pjMubo.json (170 B)

{
  "url": "https://swelldiary.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jeffski"
}

src/_data/builtwith/ctI3CZ-NOo.json (199 B)

{
  "url": "https://mattriel.com/",
  "source_url": "https://github.com/mriel/mattriel",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mriel"
}

src/_data/builtwith/ctdfLu4hCM.json (175 B)

{
  "url": "https://jakebeamish.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jakebeamish"
}

src/_data/builtwith/cx2VUipb4e.json (180 B)

{
  "url": "https://krav-maga-karlsruhe.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "robeeeert"
}

src/_data/builtwith/dBVhmIzvca.json (279 B)

{
  "url": "https://11ty-high-performance-latex-blog.euyix.me/",
  "source_url": "https://github.com/xiyueuyix/11ty-high-performance-latex-blog",
  "authors": [
    "xiyueuyix"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "xiyueuyix"
}

src/_data/builtwith/dLN_2kDPpB.json (200 B)

{
  "url": "https://www.11ty.dev/",
  "source_url": "https://github.com/11ty/11ty-website",
  "opened_by": "zachleat",
  "_backup_opened_by": "twitter:eleven_ty",
  "authors": [],
  "featured": true
}

src/_data/builtwith/dLTfdUiVKU.json (203 B)

{
  "url": "https://morganwebdev.com/",
  "source_url": "https://github.com/airbr/one-note",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "airbr"
}

src/_data/builtwith/dNG39bl0yl.json (240 B)

{
  "url": "https://lit.dev/",
  "source_url": "https://github.com/lit/lit.dev",
  "authors": [
    "aomarks",
    "e111077",
    "justinfagnani"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "featured": true
}

src/_data/builtwith/dNsttCjeCD.json (223 B)

{
  "url": "https://www.psycareer.ru/",
  "source_url": "https://github.com/bartoshevich/psycareer-11ty",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bartoshevich"
}

src/_data/builtwith/dW-xO2BMMw.json (314 B)

{
  "url": "https://www.juanfernandes.uk/",
  "source_url": "https://gitlab.com/juanfernandes/juanfernandes-v2",
  "opened_by": "juanfernandes",
  "_backup_opened_by": "twitter:juanfernandes",
  "business_url": "https://www.juanfernandes.uk/contact/",
  "business_name": "Juan Fernandes - Freelance Web Designer"
}

src/_data/builtwith/dXvYQirvYL.json (168 B)

{
  "url": "https://www.innesi.fr/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "innesi"
}

src/_data/builtwith/dZuLtOodNE.json (171 B)

{
  "url": "https://jeffy.info/",
  "source_url": "https://github.com/jeffposnick/jeffy-info",
  "opened_by": "jeffposnick",
  "_backup_opened_by": "twitter:jeffposnick"
}

src/_data/builtwith/dcGs7jUFR8.json (252 B)

{
  "url": "https://chickenwing-gingerbreadman.xyz/",
  "source_url": "https://github.com/darby3/chickenwing-gingerbreadman",
  "authors": [],
  "opencollective": "darby-dixon-iii",
  "business_url": "",
  "business_name": "",
  "opened_by": "darby3"
}

src/_data/builtwith/dfzL6RBeAE.json (246 B)

{
  "url": "https://cats-in-residence.org/",
  "source_url": "https://github.com/superterrific/cats-in-residence",
  "authors": [],
  "opencollective": "superterrific",
  "business_url": "",
  "business_name": "",
  "opened_by": "superterrific"
}

src/_data/builtwith/dgz11nrjob.json (238 B)

{
  "url": "https://ryanccn.dev/",
  "leaderboard_excluded": false,
  "source_url": "https://github.com/ryanccn/ryanccn.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ryanccn"
}

src/_data/builtwith/dhzWIhQ7Mc.json (220 B)

{
  "url": "https://notebook.samfeldstein.xyz/",
  "source_url": "https://github.com/seldstein/notebook",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "seldstein"
}

src/_data/builtwith/djDjLqvMxG.json (178 B)

{
  "url": "https://mikesthoughts.blog/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mikesplaces"
}

src/_data/builtwith/dl1eP6czOL.json (149 B)

{
  "url": "https://crlf.link/",
  "source_url": "https://github.com/croqaz/crlf",
  "opened_by": "croqaz",
  "_backup_opened_by": "twitter:croqaz"
}

src/_data/builtwith/dlif8-XeDb.json (234 B)

{
  "url": "https://ginger.wtf/",
  "source_url": "https://github.com/gingerchew/ginger.wtf-2024",
  "authors": [
    "gingerchew"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gingerchew"
}

src/_data/builtwith/dltKwajsF6.json (255 B)

{
  "url": "https://www.strollmag.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "unabridged-software",
  "business_url": "https://www.unabridgedsoftware.com/contact/",
  "business_name": "Unabridged Software",
  "opened_by": "clottman"
}

src/_data/builtwith/dmsRl_wdGo.json (188 B)

{
  "url": "https://www.simpleerb.com/",
  "source_url": "",
  "authors": [
    "alshie"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Alshie"
}

src/_data/builtwith/dp3uf4iY4y.json (178 B)

{
  "url": "https://hmiller.dev/",
  "source_url": "https://github.com/arthyn/hmillerdev",
  "opened_by": "arthyn",
  "_backup_opened_by": "twitter:hmillerdev",
  "authors": []
}

src/_data/builtwith/dqhnj4BZpu.json (195 B)

{
  "url": "https://lai.nz/",
  "source_url": "https://github.com/jaskfla/lai.nz",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jaskfla"
}

src/_data/builtwith/dr4lsqGm9e.json (234 B)

{
  "url": "https://massaintremy.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "celinedesign",
  "business_url": "https://www.celinedesign.com/",
  "business_name": "CelineDesign",
  "opened_by": "seb-celinedesign"
}

src/_data/builtwith/dsEggmYhOb.json (164 B)

{
  "url": "https://personalsit.es/",
  "source_url": "https://github.com/xdesro/personalsit.es",
  "opened_by": "xdesro",
  "_backup_opened_by": "twitter:xdesro"
}

src/_data/builtwith/duANGdkSeC.json (247 B)

{
  "url": "https://www.unabridgedsoftware.com/",
  "opened_by": "twitter:unabridgedsoft",
  "_backup_opened_by": "twitter:unabridgedsoft",
  "business_url": "https://www.unabridgedsoftware.com/contact/",
  "business_name": "Unabridged Software"
}

src/_data/builtwith/dyBQ7NzKb5.json (211 B)

{
  "url": "https://davidmoll.net/",
  "source_url": "https://github.com/akashic101/portfolio",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Akashic101"
}

src/_data/builtwith/eBHMqdXu3J.json (296 B)

{
  "url": "https://liz.hoeser.dev/",
  "source_url": "https://github.com/Snapstromegon/liz.hoeser.dev",
  "authors": [
    "Snapstromegon",
    "lzhsr"
  ],
  "opencollective": "raphael-hoeser",
  "business_url": "https://www.hoeser.dev/",
  "business_name": "",
  "opened_by": "Snapstromegon"
}

src/_data/builtwith/eE8SpPG1ra.json (255 B)

{
  "url": "https://going.bg/",
  "source_url": "https://github.com/christopherpickering/going-bg",
  "authors": [
    "christopherpickering"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "christopherpickering"
}

src/_data/builtwith/eFVyUF5djE.json (165 B)

{
  "url": "https://orga.cat/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "pereorga"
}

src/_data/builtwith/eIH8U-j0R_.json (136 B)

{
  "url": "https://www.edwardhorsford.com/",
  "opened_by": "twitter:edwardhorsford",
  "_backup_opened_by": "twitter:edwardhorsford"
}

src/_data/builtwith/eK9DKGtNUW.json (177 B)

{
  "url": "https://www.arrozmaria.com.ar/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "eanappi"
}

src/_data/builtwith/eN3zQEywth.json (235 B)

{
  "url": "https://rknight.me/",
  "source_url": "https://github.com/rknightuk/rknight.me",
  "authors": [],
  "opencollective": "rknightuk",
  "business_url": "https://rknight.me/",
  "business_name": "",
  "opened_by": "rknightuk"
}

src/_data/builtwith/eQP2CBMwZa.json (182 B)

{
  "url": "https://www.karapanou.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "anghelos",
  "business_url": "",
  "business_name": "",
  "opened_by": "anghelos"
}

src/_data/builtwith/eS03b3rggs.json (128 B)

{
  "url": "https://2019.nejsconf.com/",
  "opened_by": "zachleat",
  "_backup_opened_by": "twitter:nejsconf",
  "authors": []
}

src/_data/builtwith/eV4wGgG9EV.json (209 B)

{
  "url": "https://switowski.com/",
  "source_url": "https://github.com/switowski/portfolio",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "switowski"
}

src/_data/builtwith/eXHjjzPXO7.json (125 B)

{
  "url": "https://carlevans.dev/",
  "source_url": "https://github.com/carl-evans/portfolio",
  "opened_by": "carl-evans"
}

src/_data/builtwith/eZEmXYp2Io.json (208 B)

{
  "url": "https://mina.codes/",
  "source_url": "https://github.com/minamarkham/cupcake",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "minamarkham"
}

src/_data/builtwith/eabY9dqS3V.json (177 B)

{
  "url": "https://multiline.co/mment/",
  "source_url": "",
  "authors": [],
  "opencollective": "ashur",
  "business_url": "",
  "business_name": "",
  "opened_by": "ashur"
}

src/_data/builtwith/echC88e0JV.json (131 B)

{
  "url": "https://arie.ls/",
  "opened_by": "arielsalminen",
  "_backup_opened_by": "twitter:arielsalminen",
  "authors": [
  ]
}

src/_data/builtwith/ed8JY8iMbG.json (299 B)

{
  "url": "https://fumes.junglestar.org/",
  "source_url": "https://github.com/fumes/fumes.11ty",
  "opened_by": "fumes",
  "_backup_opened_by": "twitter:fumesvoice",
  "authors": [
    "twitter:rokmatwit",
    "twitter:lance_slabbert",
    "twitter:alejandroplesch",
    "twitter:fumesvoice"
  ]
}

src/_data/builtwith/efSpWbGOkV.json (119 B)

{
  "url": "https://alexpage.com.au",
  "disabled": true,
  "source_url": "https://github.com/alex-page/alexpage.dev"
}

src/_data/builtwith/ega9xPSgPJ.json (111 B)

{
  "url": "https://rolandtoth.hu/",
  "opened_by": "twitter:tproli",
  "_backup_opened_by": "twitter:tproli"
}

src/_data/builtwith/elPI7a4SqK.json (109 B)

{
  "url": "https://kula.blog/",
  "_backup_opened_by": "csakiistvan",
  "opened_by": "twitter:krzychukula"
}

src/_data/builtwith/emSmyhyZJN.json (196 B)

{
  "url": "https://wiltomakesfood.com/",
  "source_url": "https://github.com/Wilto/wilto-makes-food",
  "opened_by": "Wilto",
  "_backup_opened_by": "twitter:WiltoMakesFood",
  "authors": [
  ]
}

src/_data/builtwith/enZpMlpeem.json (103 B)

{
  "url": "https://typescale.io/",
  "opened_by": "smth",
  "_backup_opened_by": "twitter:smthdotuk"
}

src/_data/builtwith/ermd0_MVVu.json (179 B)

{
  "url": "https://emilyleatherman.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dleatherman"
}

src/_data/builtwith/evuBPr2JG8.json (75 B)

{
  "url": "https://emojiclipboard.com/",
  "opened_by": "ShadowfaxRodeo"
}

src/_data/builtwith/ezR40dOYLE.json (210 B)

{
  "url": "https://11skeleton.vercel.app/",
  "source_url": "",
  "authors": [
    "PolarHardboiled"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Polarhardboiled"
}

src/_data/builtwith/f2v9NTW1s2.json (234 B)

{
  "url": "https://saeedmirshekari.com/",
  "source_url": "https://github.com/ofallonlabs/saeedmirshekari",
  "authors": [
    "smirs"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "smirs"
}

src/_data/builtwith/f4S_ugJI3e.json (231 B)

{
  "url": "https://uniteduniversalnations.netlify.app/",
  "source_url": "https://github.com/AlphaBeta906/UUN/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AlphaBeta906"
}

src/_data/builtwith/f5-d10SoL7.json (175 B)

{
  "url": "https://www.danjordan.dev/",
  "source_url": "https://github.com/danjordan/danjordan.dev",
  "opened_by": "danjordan",
  "_backup_opened_by": "twitter:danjordan"
}

src/_data/builtwith/f5YQPz8ej3.json (245 B)

{
  "url": "https://11tycolorpicker.netlify.app/",
  "source_url": "https://github.com/tannerdolby/eleventy-color-picker",
  "opened_by": "tannerdolby",
  "_backup_opened_by": "twitter:tannerdolby",
  "authors": [
    "twitter:tannerdolby"
  ]
}

src/_data/builtwith/f5wTQ5Itx7.json (237 B)

{
  "url": "https://2024.stateofthebrowser.com/",
  "source_url": "",
  "authors": [
    "chrisburnell",
    "dletorey"
  ],
  "opencollective": "chrisburnell",
  "business_url": "",
  "business_name": "",
  "opened_by": "chrisburnell"
}

src/_data/builtwith/f7MLtp7UWr.json (190 B)

{
  "url": "https://www.tempertemper.net/",
  "source_url": "https://github.com/tempertemper/tempertemper.net",
  "opened_by": "tempertemper",
  "_backup_opened_by": "twitter:tempertemper"
}

src/_data/builtwith/fAQ3lotq0X.json (183 B)

{
  "url": "https://anchorthemes.com/",
  "source_url": "https://github.com/daviddarnes/anchorthemes.com",
  "opened_by": "daviddarnes",
  "_backup_opened_by": "twitter:DavidDarnes"
}

src/_data/builtwith/fAo5_skwtx.json (63 B)

{
  "url": "https://alextheward.com/",
  "opened_by": "cthos"
}

src/_data/builtwith/fD4ZBG--8M.json (228 B)

{
  "url": "https://erickdavid.net/",
  "source_url": "https://github.com/patrulea/erick-david",
  "authors": [
    "patrulea"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "patrulea"
}

src/_data/builtwith/fFlEI64MO2.json (272 B)

{
  "url": "https://stable.visual-framework.dev/",
  "disabled": true,
  "source_url": "https://github.com/visual-framework/vf-core",
  "opened_by": "khawkins98",
  "_backup_opened_by": "twitter:embl",
  "authors": [
    "twitter:khawkins98",
    "twitter:StuRobson"
  ]
}

src/_data/builtwith/fJItAVtU7D.json (137 B)

{
  "url": "https://progressionapp.com/blog/",
  "opened_by": "twitter:progressionapp",
  "_backup_opened_by": "twitter:progressionapp"
}

src/_data/builtwith/fMzpGyzvtC.json (222 B)

{
  "url": "https://distantcam.github.io/windty/",
  "source_url": "https://github.com/distantcam/windty",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "distantcam"
}

src/_data/builtwith/fVfZV8xgAN.json (215 B)

{
  "url": "https://hydrogen.design/en/",
  "source_url": "https://github.com/hydrogen-css/hydrogen",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "substrae"
}

src/_data/builtwith/fW7Ujs2a7c.json (197 B)

{
  "url": "https://rss-jamstack.netlify.app/",
  "source_url": "https://github.com/philhawksworth/medium-export",
  "opened_by": "philhawksworth",
  "_backup_opened_by": "twitter:philhawksworth"
}

src/_data/builtwith/faUrpdGuTB.json (193 B)

{
  "url": "https://simonorono.com/",
  "source_url": "",
  "authors": [
    "simonorono"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simonorono"
}

src/_data/builtwith/fc741KtNZ9.json (235 B)

{
  "url": "https://royale.apache.org/",
  "source_url": "https://github.com/apache/royale-website",
  "authors": [
    "joshtynjala"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/fdrV9lvhB8.json (210 B)

{
  "url": "https://maxbergstrom.se/",
  "source_url": "https://github.com/maxoftime/its-a-me",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "maxoftime"
}

src/_data/builtwith/fgTMx6bt79.json (114 B)

{
  "url": "https://blythcss.dev/",
  "opened_by": "ryangittings",
  "_backup_opened_by": "twitter:ryangittings"
}

src/_data/builtwith/fm25kIlH11.json (125 B)

{
  "url": "https://www.rajeevedmonds.com/",
  "opened_by": "rajeevedmonds",
  "_backup_opened_by": "twitter:rajeevedmonds"
}

src/_data/builtwith/fpYx7haCU5.json (107 B)

{
  "url": "https://optimised.email/",
  "opened_by": "fershad",
  "_backup_opened_by": "twitter:fershad"
}

src/_data/builtwith/fpfYkpT_sz.json (104 B)

{
  "url": "https://piraces.dev/",
  "opened_by": "piraces",
  "_backup_opened_by": "twitter:piraces_"
}

src/_data/builtwith/fsJXzXB1ZK.json (197 B)

{
  "url": "https://reinier.fyi/",
  "source_url": "https://github.com/reinier/fyi",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "reinier"
}

src/_data/builtwith/ft8l2SHGwi.json (178 B)

{
  "url": "https://martyn.thecooks.net.nz/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "MartyNZ"
}

src/_data/builtwith/g70jg5JsRi.json (180 B)

{
  "url": "https://slay.sh/",
  "source_url": "https://github.com/minamarkham/formation/tree/slay.sh",
  "opened_by": "minamarkham",
  "_backup_opened_by": "twitter:minamarkham"
}

src/_data/builtwith/g8diKsl_5Z.json (74 B)

{
  "url": "https://neptunbrigad.hu/",
  "_backup_opened_by": "zachleat"
}

src/_data/builtwith/gBjChmOT7K.json (210 B)

{
  "url": "https://dwhenson.com/",
  "source_url": "https://github.com/dwhenson/personal-site",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dwhenson"
}

src/_data/builtwith/gGaJ08xTUX.json (194 B)

{
  "url": "https://kristofflalicki.dev/",
  "source_url": "",
  "authors": [
    "klalicki"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "klalicki"
}

src/_data/builtwith/gKQRmeoSbr.json (205 B)

{
  "url": "https://www.makethingsaccessible.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "Make Things Accessible",
  "opened_by": "daz079"
}

src/_data/builtwith/gLgdvA6F3X.json (257 B)

{
  "url": "https://eleventy-classic-blog-starter.netlify.app/",
  "source_url": "https://github.com/TigersWay/eleventy-classic-blog-starter",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "TigersWay"
}

src/_data/builtwith/gMtZ_OaEhS.json (187 B)

{
  "url": "https://mochajs.org/",
  "source_url": "https://github.com/mochajs/mocha",
  "opened_by": "twitter:b0neskull",
  "_backup_opened_by": "twitter:b0neskull",
  "featured": true
}

src/_data/builtwith/gWCyRbjduY.json (215 B)

{
  "url": "https://cantautor.es/",
  "source_url": "https://github.com/madrilene/cantautor.es",
  "authors": [],
  "opencollective": "lene",
  "business_url": "",
  "business_name": "",
  "opened_by": "madrilene"
}

src/_data/builtwith/gcqpRBkKoP.json (240 B)

{
  "url": "https://outcome.doctrineofdiscovery.org/",
  "source_url": "https://github.com/adamdjbrett/outcome",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/gemPBo-EBJ.json (239 B)

{
  "url": "https://emilymccracken.com/",
  "source_url": "https://github.com/smccracken/emilymccracken.com",
  "authors": [],
  "opencollective": "scottmccracken",
  "business_url": "",
  "business_name": "",
  "opened_by": "smccracken"
}

src/_data/builtwith/gqxHrcFHmS.json (183 B)

{
  "url": "https://moderncss.dev/",
  "source_url": "https://github.com/5t3ph/moderncss-dot-dev",
  "opened_by": "5t3ph",
  "_backup_opened_by": "twitter:5t3ph",
  "featured": true
}

src/_data/builtwith/grQRTyZ57H.json (252 B)

{
  "url": "https://www.sobolewski.cz/en/",
  "source_url": "",
  "authors": [],
  "opencollective": "isobolewski",
  "business_url": "https://www.sobolewski.cz/en",
  "business_name": "Ingo Sobolewski | web-engineering",
  "opened_by": "isobolewski"
}

src/_data/builtwith/gzcbqcRIKn.json (77 B)

{
  "url": "https://shivjm.name/",
  "opened_by": "shivjm",
  "authors": []
}

src/_data/builtwith/h-OFmayih4.json (116 B)

{
  "url": "https://spiral11.com/",
  "opened_by": "twitter:Spiral11_",
  "_backup_opened_by": "twitter:Spiral11_"
}

src/_data/builtwith/h0liilZCVF.json (165 B)

{
  "url": "https://mess.gr/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "stellageo"
}

src/_data/builtwith/hFuQpmcaCI.json (265 B)

{
  "url": "https://covid19.ca.gov/",
  "source_url": "https://github.com/cagov/covid19",
  "opened_by": "aaronhans",
  "_backup_opened_by": "twitter:CAdotgov",
  "archived": "https://web.archive.org/web/20240425111802/https://covid19.ca.gov/",
  "disabled": true
}

src/_data/builtwith/hRPAzxKe3d.json (173 B)

{
  "url": "https://manuel-strehl.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Boldewyn"
}

src/_data/builtwith/hTZyQcW4aG.json (128 B)

{
  "url": "https://seccl.tech/",
  "opened_by": "daviddarnes",
  "_backup_opened_by": "twitter:SecclTech",
  "authors": [
  ]
}

src/_data/builtwith/hVi5hXkW-W.json (270 B)

{
  "url": "https://preview.tabler.io/",
  "source_url": "https://github.com/tabler/tabler",
  "authors": [
    "codecalm"
  ],
  "opencollective": "codecalm",
  "business_url": "https://tabler.io/admin-template",
  "business_name": "Tabler",
  "opened_by": "codecalm"
}

src/_data/builtwith/hXIDvP0mna.json (244 B)

{
  "url": "https://hamburg.stefanimhoff.de/",
  "source_url": "https://github.com/kogakure/website-11ty-hamburg.stefanimhoff.de",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kogakure"
}

src/_data/builtwith/hYlpxSIr-8.json (197 B)

{
  "url": "https://localghost.dev/",
  "source_url": "",
  "authors": [
    "sophiekoonin"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "sophiekoonin"
}

src/_data/builtwith/ha6H3OmpqF.json (194 B)

{
  "url": "https://tracker.greenweb.org/",
  "source_url": "",
  "authors": [
    "fershad"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/heAWGEA2Pp.json (109 B)

{
  "url": "https://www.maitriweb.it/",
  "opened_by": "ilterra",
  "_backup_opened_by": "twitter:_ilterra"
}

src/_data/builtwith/hgn8InSqcu.json (257 B)

{
  "url": "https://rootedregalia.com/",
  "source_url": "https://github.com/adamdjbrett/rootedregalia.com",
  "authors": [
    "adamdjbrett"
  ],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/hhutkgsmtI.json (176 B)

{
  "url": "https://www.vitaline.by/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bartoshevich"
}

src/_data/builtwith/hlaRneHRsd.json (102 B)

{
  "url": "https://fixa11y.com/",
  "opened_by": "Kilian",
  "_backup_opened_by": "twitter:fixa11y"
}

src/_data/builtwith/hqCLtzVRb6.json (152 B)

{
  "url": "https://lea-tortay.com/",
  "opened_by": "lea37",
  "_backup_opened_by": "twitter:lea_tortay",
  "business_url": "https://lea-tortay.com/"
}

src/_data/builtwith/hreUHnZ9Fv.json (162 B)

{
  "url": "https://oupspuppetry.gr/",
  "source_url": "https://github.com/tmns/oups-puppetry-2",
  "opened_by": "tmns",
  "_backup_opened_by": "twitter:__tmns"
}

src/_data/builtwith/hsnnsPDaAv.json (203 B)

{
  "url": "https://conf.11ty.dev/",
  "source_url": "https://github.com/11ty/11ty-conf",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/i108fp2N7H.json (258 B)

{
  "url": "https://eleventy-test-bed-dollplayer2501.netlify.app/",
  "source_url": "https://github.com/dollplayer2501/Eleventy-test-bed",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dollplayer2501"
}

src/_data/builtwith/i3D5LYPf7y.json (225 B)

{
  "url": "https://pierre.awaragi.com/",
  "source_url": "https://github.com/awaragi/pierre.awaragi.com",
  "opened_by": "twitter:awaragi",
  "_backup_opened_by": "twitter:awaragi",
  "authors": [
    "twitter:awaragi"
  ]
}

src/_data/builtwith/i89RbQhPz4.json (127 B)

{
  "url": "https://teorana-archive.netlify.app/",
  "opened_by": "marcfilleul",
  "_backup_opened_by": "twitter:marcfilleul"
}

src/_data/builtwith/i9ehzqgV4a.json (249 B)

{
  "url": "https://firebreakfarms.com/",
  "source_url": "",
  "authors": [
    "reatlat",
    "zapalblizh"
  ],
  "opencollective": "reatlat",
  "business_url": "https://alex.zappa.dev/",
  "business_name": "Alex Zappa",
  "opened_by": "reatlat"
}

src/_data/builtwith/iB3nKOkrUW.json (247 B)

{
  "url": "https://tc39.es/",
  "source_url": "https://github.com/tc39/tc39.github.io",
  "authors": [
    "ctcpip",
    "smorimoto"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "",
  "featured": true
}

src/_data/builtwith/iIek2NbYjG.json (189 B)

{
  "url": "https://diyppe.us/",
  "disabled": true,
  "source_url": "https://github.com/kittenlogic/diyppe",
  "opened_by": "kittenlogic",
  "_backup_opened_by": "twitter:EmilyKnowsHTML"
}

src/_data/builtwith/iLiV3We1_2.json (282 B)

{
  "url": "https://zapparov.dev/",
  "source_url": "https://github.com/zapalblizh/zapparov.dev",
  "authors": [
    "zapalblizh"
  ],
  "opencollective": "zapalblizh",
  "business_url": "https://zapparov.dev/",
  "business_name": "Aleksandr Zapparov",
  "opened_by": "zapalblizh"
}

src/_data/builtwith/iMxZ8-GViJ.json (83 B)

{
  "url": "https://coralseacablecompany.com/",
  "_backup_opened_by": "zachleat"
}

src/_data/builtwith/iNSPkyfp30.json (196 B)

{
  "url": "https://bikes.emilyhorsman.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "emily-horsman",
  "business_url": "",
  "business_name": "",
  "opened_by": "emilyhorsman"
}

src/_data/builtwith/iRMo9PVPwT.json (246 B)

{
  "url": "https://hire.wil.to/",
  "source_url": "https://github.com/Wilto/hire.wil.to",
  "opened_by": "Wilto",
  "_backup_opened_by": "twitter:wilto",
  "business_url": "https://hire.wil.to/",
	"business_name": "I’m Mat. I make websites."
}

src/_data/builtwith/iTF75S_FmQ.json (235 B)

{
  "url": "https://blame.design/",
  "source_url": "https://github.com/stillingdesign/blame.design/",
  "authors": [],
  "opencollective": "mike-stilling",
  "business_url": "",
  "business_name": "",
  "opened_by": "stillingdesign"
}

src/_data/builtwith/iTVBEuT0n3.json (223 B)

{
  "url": "https://defiplaza.net/",
  "source_url": "https://github.com/OmegaSyndicate/defiplaza-website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "timanrebel"
}

src/_data/builtwith/iU8uJ4an55.json (114 B)

{
  "url": "https://worldwideweb.cern.ch/",
  "opened_by": "twitter:CERN",
  "_backup_opened_by": "twitter:CERN"
}

src/_data/builtwith/iUM4y-hNMj.json (178 B)

{
  "url": "https://catgirlin.space/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "phoebethewitch"
}

src/_data/builtwith/iYOYeGUEYF.json (278 B)

{
  "url": "https://50licenseplates.com/",
  "source_url": "https://github.com/dleatherman/license-plates",
  "authors": [],
  "opencollective": "dan-leatherman",
  "business_url": "https://permalightnyc.com/",
  "business_name": "Permalight NYC",
  "opened_by": "dleatherman"
}

src/_data/builtwith/ib1q9Epo3P.json (169 B)

{
  "url": "https://jobboardbox.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kuwts"
}

src/_data/builtwith/icDKzWykD3.json (201 B)

{
  "url": "https://eleventy-gallery.netlify.app/",
  "source_url": "https://github.com/tannerdolby/eleventy-photo-gallery",
  "opened_by": "tannerdolby",
  "_backup_opened_by": "twitter:tannerdolby"
}

src/_data/builtwith/ih4HMCL5Qe.json (170 B)

{
  "url": "https://www.tabulate.io/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jereze"
}

src/_data/builtwith/ijTDK_FmiP.json (172 B)

{
  "url": "https://mohitkarekar.com/",
  "source_url": "https://github.com/mohitk05/my-website",
  "opened_by": "mohitk05",
  "_backup_opened_by": "twitter:MohitKarekar"
}

src/_data/builtwith/ipmk5INstJ.json (82 B)

{
  "url": "https://artificial.design/",
  "opened_by": "twitter:VeryArtificial"
}

src/_data/builtwith/ittLMPqrba.json (243 B)

{
  "url": "https://esif.dev/",
  "source_url": "https://github.com/zachleat/educational-sensational-inspirational-foundational",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/ivCY-5V_M5.json (119 B)

{
  "url": "https://www.ambiance-feu.fr/",
  "opened_by": "marcfilleul",
  "_backup_opened_by": "twitter:marcfilleul"
}

src/_data/builtwith/j19ZWQA2hh.json (225 B)

{
  "url": "https://helenchong.dev/",
  "source_url": "https://github.com/helenclx/helenclx.github.io",
  "authors": [],
  "opencollective": "helenclx",
  "business_url": "",
  "business_name": "",
  "opened_by": "helenclx"
}

src/_data/builtwith/j8mFxi_Kmc.json (179 B)

{
  "url": "https://nicolas-hoizey.photo/",
  "source_url": "https://github.com/nhoizey/nicolas-hoizey.photo",
  "opened_by": "nhoizey",
  "_backup_opened_by": "twitter:nhoizey"
}

src/_data/builtwith/jEoh5ZOrNM.json (149 B)

{
  "url": "https://pdx.ashur.cab/",
  "source_url": "https://github.com/ashur/pdx",
  "opened_by": "ashur",
  "_backup_opened_by": "twitter:ashur"
}

src/_data/builtwith/jEyWGCbWlM.json (227 B)

{
  "url": "https://kevin.gimbel.dev/ops/",
  "source_url": "https://github.com/kevingimbel/kevin.gimbel.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "KevinGimbel"
}

src/_data/builtwith/jHPwGVUhqz.json (141 B)

{
  "url": "https://dsmun.in",
  "disabled": true,
  "source_url": "https://github.com/dsmun-conf/website",
  "opened_by": "shreyasminocha"
}

src/_data/builtwith/jJHXwX5H70.json (187 B)

{
  "url": "https://www.silvestar.codes/",
  "source_url": "https://github.com/maliMirkec/personal-website",
  "opened_by": "maliMirkec",
  "_backup_opened_by": "twitter:malimirkeccita"
}

src/_data/builtwith/jMOPbZAoYs.json (242 B)

{
  "url": "https://openspellingbee.xyz/",
  "source_url": "https://github.com/Gyanreyer/open-spelling-bee",
  "authors": [
    "Gyanreyer"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Gyanreyer"
}

src/_data/builtwith/jPFQ2iX5re.json (209 B)

{
  "url": "https://amberwilson.co.uk/",
  "source_url": "https://github.com/ambrwlsn/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ambrwlsn"
}

src/_data/builtwith/jSLi6g8c5j.json (187 B)

{
  "url": "https://carlovan.com/",
  "source_url": "",
  "authors": [
    "thecarlo"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "thecarlo"
}

src/_data/builtwith/jgQhxRd_GH.json (141 B)

{
  "url": "https://books.thedixons.net/",
  "disabled": true,
  "source_url": "https://github.com/dixonge/books",
  "opened_by": "dixonge"
}

src/_data/builtwith/jmQL5MqQFS.json (262 B)

{
  "url": "https://www.realproducersmag.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "unabridged-software",
  "business_url": "https://www.unabridgedsoftware.com/contact/",
  "business_name": "Unabridged Software",
  "opened_by": "clottman"
}

src/_data/builtwith/joUmdHTzne.json (187 B)

{
  "url": "https://www.mauropfister.ch/",
  "source_url": "https://github.com/MauroPfister/personal-site",
  "opened_by": "MauroPfister",
  "_backup_opened_by": "twitter:mauro_pfister"
}

src/_data/builtwith/jzYZ8xfs-4.json (213 B)

{
  "url": "https://imacrayon.com/",
  "source_url": "https://github.com/imacrayon/imacrayon.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "imacrayon"
}

src/_data/builtwith/k1pNMd2TPK.json (171 B)

{
  "url": "https://reluctant.io/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jornmineur"
}

src/_data/builtwith/k2lQcwP1IK.json (212 B)

{
  "url": "https://mefody.dev/",
  "source_url": "https://github.com/MeFoDy/mefody.dev",
  "authors": [],
  "opencollective": "dark_mefody",
  "business_url": "",
  "business_name": "",
  "opened_by": "MeFoDy"
}

src/_data/builtwith/k7OrhBNSP0.json (182 B)

{
  "url": "https://bored.horse/",
  "source_url": "",
  "authors": [
    "tdhftw"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tdhftw"
}

src/_data/builtwith/kH2L_rQFGU.json (237 B)

{
  "url": "https://www.sarrosenvironmental.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "https://chantillywebdesign.com/",
  "business_name": "Chantilly Web Design",
  "opened_by": "mikeritter"
}

src/_data/builtwith/kPV31cHBDJ.json (231 B)

{
  "url": "https://jdadamsguitars.com/",
  "source_url": "https://github.com/bobmonsour/jdadamsguitars",
  "authors": [],
  "opencollective": "bobmonsour",
  "business_url": "",
  "business_name": "",
  "opened_by": "bobmonsour"
}

src/_data/builtwith/kQUFI52aNC.json (298 B)

{
  "url": "https://2022.barcampomaha.org/",
  "source_url": "",
  "authors": [
    "kittee",
    "splitinfinities"
  ],
  "opencollective": "unabridged-software",
  "business_url": "https://www.unabridgedsoftware.com/contact/",
  "business_name": "Unabridged Software",
  "opened_by": "clottman"
}

src/_data/builtwith/kREpAZKYW4.json (123 B)

{
  "url": "https://souradip.com/",
  "opened_by": "souramoo",
  "_backup_opened_by": "twitter:souramoo",
  "authors": []
}

src/_data/builtwith/kWJ6lYvaAg.json (215 B)

{
  "url": "https://blog.frost.kiwi/",
  "source_url": "https://github.com/FrostKiwi/treasurechest",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "FrostKiwi"
}

src/_data/builtwith/k_KP0LBLDm.json (217 B)

{
  "url": "https://eastford.news/",
  "source_url": "https://github.com/EastfordCommunicator/website/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Micah-T"
}

src/_data/builtwith/kiZr3-6Sbf.json (226 B)

{
  "url": "https://www.kandji.io/",
  "source_url": "",
  "authors": [
    "itsmeara",
    "sergehf",
    "reatlat"
  ],
  "opencollective": "itsmeara",
  "business_url": "",
  "business_name": "",
  "opened_by": "ItsMeAra"
}

src/_data/builtwith/kp9TUfPdXf.json (238 B)

{
  "url": "https://contrast-11ties.netlify.app/",
  "source_url": "https://github.com/BenDMyers/contrast-11ties",
  "authors": [],
  "opencollective": "bendmyers",
  "business_url": "",
  "business_name": "",
  "opened_by": "BenDMyers"
}

src/_data/builtwith/ksqdTADwFO.json (314 B)

{
  "url": "https://designsystem.webstandards.ca.gov/",
  "source_url": "https://github.com/cagov/design-system",
  "authors": [
    "xjensen",
    "aaronhans",
    "m-sullivan7",
    "zakiya"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat",
  "featured": true
}

src/_data/builtwith/kuDrXYCATx.json (171 B)

{
  "url": "https://www.marabyte.com/",
  "source_url": "https://github.com/marabyte/marabyte.com",
  "opened_by": "Marabyte",
  "_backup_opened_by": "twitter:marabyte_"
}

src/_data/builtwith/kudiQV7rnG.json (170 B)

{
  "url": "https://workingdraft.de/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Schepp"
}

src/_data/builtwith/kvsjE6XoKx.json (198 B)

{
  "url": "https://stanlemon.com/",
  "source_url": "https://github.com/stanlemon/stanlemon.github.com",
  "opened_by": "stanlemon",
  "_backup_opened_by": "twitter:stanlemon",
  "authors": [
  ]
}

src/_data/builtwith/kwNLRQpQWQ.json (226 B)

{
  "url": "https://castmill.com/",
  "source_url": "https://github.com/OptimalBits/castmill.com",
  "authors": [
    "manast"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "manast"
}

src/_data/builtwith/kyhz-E4eUo.json (185 B)

{
  "url": "https://binyam.in/",
  "source_url": "https://github.com/binyamin/binyam.in",
  "opened_by": "binyamin",
  "_backup_opened_by": "twitter:binyamingreen",
  "authors": [
  ]
}

src/_data/builtwith/l2naSNqRht.json (184 B)

{
  "url": "https://www.madebymike.com.au/",
  "source_url": "https://github.com/madebymike/madebymike",
  "opened_by": "MadeByMike",
  "_backup_opened_by": "twitter:MikeRiethmuller"
}

src/_data/builtwith/l4MfrRBWIE.json (221 B)

{
  "url": "https://storybot.dev/",
  "source_url": "https://github.com/CodingBull-dev/Story-Bot/",
  "authors": [],
  "opencollective": "bullrich",
  "business_url": "",
  "business_name": "",
  "opened_by": "Bullrich"
}

src/_data/builtwith/l7RBe7xXbI.json (208 B)

{
  "url": "https://icons.theforgesmith.com/",
  "opened_by": "swaroopsm",
  "_backup_opened_by": "twitter:forge_icons",
  "authors": [
    "swaroopsm",
		"twitter:forge_icons",
    "twitter:sd_saideep"
  ]
}

src/_data/builtwith/l7V2oltyiz.json (199 B)

{
  "url": "https://www.behindthesource.co.uk/",
  "source_url": "https://gitlab.com/mikestreety-sites/behind-the-source",
  "opened_by": "mikestreety",
  "_backup_opened_by": "twitter:mikestreety"
}

src/_data/builtwith/l7d3ZfZQV5.json (278 B)

{
  "url": "https://alexandersandberg.com/",
  "leaderboard_excluded": false,
  "source_url": "https://github.com/alexandersandberg/alexandersandberg.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "alexandersandberg"
}

src/_data/builtwith/lTb7Zs_Pfc.json (219 B)

{
  "url": "https://jmsalazar.dev/",
  "source_url": "https://github.com/jmsalazardev/jmsalazar.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jmsalazardev"
}

src/_data/builtwith/lZrS0fIOru.json (166 B)

{
  "url": "https://blog.tomayac.com/",
  "source_url": "https://github.com/tomayac/blogccasion",
  "opened_by": "tomayac",
  "_backup_opened_by": "twitter:tomayac"
}

src/_data/builtwith/lbKc2Kd27s.json (117 B)

{
  "url": "https://infrequently.org/",
  "opened_by": "slightlyoff",
  "_backup_opened_by": "twitter:slightlylate"
}

src/_data/builtwith/lcT-KZoT03.json (217 B)

{
  "url": "https://approx.blue/",
  "source_url": "",
  "authors": [],
  "opencollective": "silvestar-bistrovic",
  "business_url": "https://www.silvestar.codes/",
  "business_name": "",
  "opened_by": "maliMirkec"
}

src/_data/builtwith/ldliBCiWfX.json (178 B)

{
  "url": "https://vranjan.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "vranjan",
  "business_url": "",
  "business_name": "",
  "opened_by": "Vranjan7077"
}

src/_data/builtwith/le1z8v1zdr.json (206 B)

{
  "url": "https://joomla-spa.netlify.app/",
  "source_url": "https://github.com/dgrammatiko/com_frontpage",
  "opened_by": "dgrammatiko",
  "_backup_opened_by": "twitter:dgrammatiko",
  "authors": [
  ]
}

src/_data/builtwith/lffjOi3Y06.json (73 B)

{
  "url": "https://deletescape.ch/",
  "_backup_opened_by": "zachleat"
}

src/_data/builtwith/lfkRXkgsZq.json (163 B)

{
  "url": "https://fettblog.eu/",
  "source_url": "https://github.com/ddprrt/ddprrt.github.io",
  "opened_by": "ddprrt",
  "_backup_opened_by": "twitter:ddprrt"
}

src/_data/builtwith/lkB3fZaLBs.json (138 B)

{
  "url": "https://ask.netlify.com/",
  "opened_by": "philhawksworth",
  "_backup_opened_by": "twitter:philhawksworth",
  "authors": []
}

src/_data/builtwith/loYec0ixJ0.json (173 B)

{
  "url": "https://andreiaramos.pt/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "procha136"
}

src/_data/builtwith/lpaIjC2-Yu.json (178 B)

{
  "url": "https://seoslides.page/",
  "source_url": "https://github.com/workeffortwaste/seoslides",
  "opened_by": "workeffortwaste",
  "_backup_opened_by": "twitter:defaced"
}

src/_data/builtwith/lrpOsOUeq3.json (104 B)

{
  "url": "https://fotis.photos/",
  "opened_by": "fpapado",
  "_backup_opened_by": "twitter:isfotis"
}

src/_data/builtwith/lw_h3LJPp9.json (221 B)

{
  "url": "https://bennypowers.dev/",
  "source_url": "https://github.com/bennypowers/bennypowers.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bennypowers"
}

src/_data/builtwith/lxugh8CChx.json (122 B)

{
  "url": "https://vitraggroup.com/",
  "opened_by": "sachinsancheti1",
	"_backup_opened_by": "twitter:sachinsancheti1"
}

src/_data/builtwith/lyRIJPKbWW.json (229 B)

{
  "url": "https://tionosulis.github.io/",
  "source_url": "https://github.com/tionosulis/tionosulis.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tionosulis"
}

src/_data/builtwith/m-8_LPlJ06.json (176 B)

{
  "url": "https://www.tomroseveare.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "tomrsvr"
}

src/_data/builtwith/m-g06kKG4_.json (178 B)

{
  "url": "https://www.nulle-part.fr/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "benoitlaunay"
}

src/_data/builtwith/m6HyIsAQ7Y.json (297 B)

{
  "url": "https://docs.shutter.sh/",
  "disabled": true,
  "archived": "https://web.archive.org/web/20201130140746/https://docs.shutter.sh/",
  "source_url": "https://github.com/shuttersh/shutter/tree/master/docs",
  "opened_by": "twitter:shuttersh",
  "_backup_opened_by": "twitter:shuttersh"
}

src/_data/builtwith/m7kO0d-i-f.json (221 B)

{
  "url": "https://crinkles.dev/",
  "source_url": "https://github.com/kevtiq/crinkles.dev",
  "authors": [
    "kevtiq"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kevtiq"
}

src/_data/builtwith/m9e3rgnoaI.json (172 B)

{
  "url": "https://darius.codes/",
  "source_url": "https://github.com/dkruythoff/darius-codes",
  "opened_by": "dkruythoff",
  "_backup_opened_by": "twitter:dkruythoff"
}

src/_data/builtwith/mDoJEbiSui.json (128 B)

{
  "url": "https://www.beccishep.co.uk/",
  "opened_by": "Accudio",
  "_backup_opened_by": "twitter:accudio",
  "authors": []
}

src/_data/builtwith/mDyWAW5B83.json (166 B)

{
  "url": "https://laybl.app/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "garylake"
}

src/_data/builtwith/mEkKbUkIS9.json (180 B)

{
  "url": "https://blog.sanketpathak.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "sanketpath"
}

src/_data/builtwith/mFKKIiLXMz.json (115 B)

{
  "url": "https://mlcommons.org/en/",
  "opened_by": "maxackerman",
  "_backup_opened_by": "twitter:commons_ml"
}

src/_data/builtwith/mSKmShZh_6.json (178 B)

{
  "url": "https://dipanjanbiswas.design/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dzoneink"
}

src/_data/builtwith/mSUDtTBUdY.json (71 B)

{
  "url": "https://artbarcelonamag.com/",
  "opened_by": "iturbides"
}

src/_data/builtwith/mTVdgWr9Nz.json (176 B)

{
  "url": "https://saneef.com/",
  "opened_by": "saneef",
  "_backup_opened_by": "twitter:saneef",
  "business_url": "https://saneef.com/",
	"business_name": "Saneef Ansari"
}

src/_data/builtwith/mWHZ-DpKVp.json (152 B)

{
  "url": "https://www.chris-snowden.me/",
  "source_url": "https://github.com/Recidvst/chris-snowden.me",
  "opened_by": "Recidvst",
  "authors": []
}

src/_data/builtwith/mhbBz_HAMv.json (112 B)

{
  "url": "https://unslump.me/",
  "opened_by": "twitter:bseymour",
  "_backup_opened_by": "twitter:bseymour"
}

src/_data/builtwith/mrGfihmY5_.json (119 B)

{
  "url": "https://www.marciobda.com.br/en/",
  "opened_by": "marciobda",
  "_backup_opened_by": "twitter:marciobda"
}

src/_data/builtwith/mtWsH1Ud5s.json (188 B)

{
  "url": "https://ericraslich.com/",
  "source_url": "https://github.com/rasliche/ericraslich",
  "opened_by": "rasliche",
  "_backup_opened_by": "twitter:rasliche",
  "authors": [
  ]
}

src/_data/builtwith/mw01ry1TvV.json (209 B)

{
  "url": "https://www.freerk.dev/",
  "source_url": "https://gitlab.com/fzakfeld/freerk.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "fzakfeld"
}

src/_data/builtwith/mwbJTw0JiK.json (282 B)

{
  "url": "https://design-guide.publishing.service.gov.uk/",
  "source_url": "https://github.com/alphagov/govuk-design-guide",
  "authors": [
    "nnagewad",
    "ChristineWuerth"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/myx_Z9D0KC.json (158 B)

{
  "url": "https://wirgen.dev/",
  "source_url": "https://github.com/wirgen/wirgen-dev",
  "opened_by": "wirgen",
  "_backup_opened_by": "twitter:wirgen89"
}

src/_data/builtwith/n-n1d5vucf.json (224 B)

{
  "url": "https://www.aleksandrhovhannisyan.com/",
  "source_url": "https://github.com/AleksandrHovhannisyan/aleksandrhovhannisyan.com",
  "opened_by": "AleksandrHovhannisyan",
  "_backup_opened_by": "twitter:hovhaDovah"
}

src/_data/builtwith/n1tJ50IcBo.json (193 B)

{
  "url": "https://davidreedgracie.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "dan-leatherman",
  "business_url": "",
  "business_name": "",
  "opened_by": "dleatherman"
}

src/_data/builtwith/n4dhI0QLXM.json (186 B)

{
  "url": "https://agiletto.se/",
  "source_url": "",
  "authors": [
    "jorgen-k"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jorgen-k"
}

src/_data/builtwith/n8iIWq5AvU.json (213 B)

{
  "url": "https://pepelsbey.dev/",
  "source_url": "https://github.com/pepelsbey/pepelsbey.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "pepelsbey"
}

src/_data/builtwith/nDeUO0rizX.json (293 B)

{
  "url": "https://freshjuice.dev/",
  "source_url": "https://github.com/freshjuice-dev/freshjuice.dev",
  "authors": [
    "reatlat",
    "zapalblizh"
  ],
  "opencollective": "reatlat",
  "business_url": "https://alex.zappa.dev/",
  "business_name": "Alex Zappa",
  "opened_by": "reatlat"
}

src/_data/builtwith/nMKjpiB6AL.json (129 B)

{
  "url": "https://jackhowa.com/",
  "source_url": "https://github.com/JackHowa/JackHowa.github.io",
  "opened_by": "JackHowa"
}

src/_data/builtwith/nPBstLzoci.json (87 B)

{
  "url": "https://www.hairscalpcenter.com/en/",
  "_backup_opened_by": "gabbersepp"
}

src/_data/builtwith/nR6t3IBhqt.json (218 B)

{
  "url": "https://spaceninja.com/",
  "source_url": "https://github.com/spaceninja/spaceninja.com/",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "spaceninja"
}

src/_data/builtwith/nWQR9rI1zw.json (172 B)

{
  "url": "https://fedmentor.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "grace-snow"
}

src/_data/builtwith/nXYGi7sQkQ.json (306 B)

{
  "leaderboard_excluded": true,
  "url": "https://cryptography-algorithms.netlify.app/",
  "source_url": "https://github.com/AleksandrHovhannisyan/11ty-serverless-cryptography",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AleksandrHovhannisyan"
}

src/_data/builtwith/nXz6bByCc0.json (193 B)

{
  "url": "https://dogsof.dev/",
  "source_url": "https://github.com/peruvianidol/dogsofdev",
  "opened_by": "peruvianidol",
  "_backup_opened_by": "twitter:peruvianidol",
  "authors": [
  ]
}

src/_data/builtwith/nfPXGdSM3l.json (207 B)

{
  "url": "https://brd.mn/",
  "source_url": "https://github.com/dustykeyboard/brd.mn",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "dustykeyboard"
}

src/_data/builtwith/njPriuOak0.json (171 B)

{
  "url": "https://archipylago.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Hamatti"
}

src/_data/builtwith/nkPQWeHZ2N.json (203 B)

{
  "url": "https://tim.oerlemans.dev/",
  "source_url": "https://github.com/timoerlemans/timoerlemans.nl",
  "opened_by": "timoerlemans",
  "_backup_opened_by": "twitter:timoerlemans",
  "authors": []
}

src/_data/builtwith/nlFDPk34t2.json (172 B)

{
  "url": "https://kushagra.dev/",
  "source_url": "https://github.com/chinchang/kushagra.dev",
  "opened_by": "chinchang",
  "_backup_opened_by": "twitter:chinchang457"
}

src/_data/builtwith/noKjUOs305.json (187 B)

{
  "url": "https://ripandis.com/",
  "source_url": "",
  "authors": [
    "riipandi"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "riipandi"
}

src/_data/builtwith/nxA3Hp6zaX.json (274 B)

{
  "url": "https://httpster.io/",
  "source_url": "https://github.com/httpsterio/httpster.io",
  "opened_by": "httpsterio",
  "_backup_opened_by": "twitter:httpsterio",
  "business_url": "https://httpster.io/hire-me",
  "business_name": "Sami Singh - Full Stack Creative"
}

src/_data/builtwith/nxdVhaz82X.json (196 B)

{
  "url": "https://www.j0k3r.net/",
  "source_url": "https://github.com/j0k3r/blog",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "j0k3r"
}

src/_data/builtwith/o2IPr7e3N7.json (217 B)

{
  "url": "https://heyflow.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "silvestar-bistrovic",
  "business_url": "https://www.silvestar.codes/",
  "business_name": "",
  "opened_by": "maliMirkec"
}

src/_data/builtwith/o2tyjbgtXc.json (195 B)

{
  "url": "https://www.justus.ws/",
  "source_url": "https://github.com/justusthane/11ty-justus.ws",
  "opened_by": "justusthane",
  "_backup_opened_by": "twitter:justusthane",
  "authors": []
}

src/_data/builtwith/o53SwP_s0x.json (219 B)

{
  "url": "https://micah.torcellini.org/",
  "source_url": "https://github.com/Micah-T/micah-torcellini",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Micah-T"
}

src/_data/builtwith/o7tgkX_1P_.json (103 B)

{
  "url": "https://fffuel.co/",
  "opened_by": "mutedio",
  "_backup_opened_by": "twitter:ffffffuel"
}

src/_data/builtwith/o9VNhIAlzR.json (166 B)

{
  "url": "https://pustelto.com/",
  "source_url": "https://github.com/Pustelto/personal_web",
  "opened_by": "Pustelto",
  "_backup_opened_by": "twitter:pustelto"
}

src/_data/builtwith/oCzH4NBGT1.json (192 B)

{
  "url": "https://jules.poulain.dev/",
  "source_url": "",
  "authors": [
    "bigaston"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Bigaston"
}

src/_data/builtwith/oN8CM-dedu.json (168 B)

{
  "url": "https://rkblog.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "riklaunim"
}

src/_data/builtwith/oQC1h6z362.json (184 B)

{
  "url": "https://ghost-v3.netlify.app/",
  "source_url": "https://github.com/bauhouse/eleventy-starter-ghost",
  "opened_by": "bauhouse",
  "_backup_opened_by": "twitter:bauhouse"
}

src/_data/builtwith/oSN7ncZWoM.json (169 B)

{
  "url": "https://shimma.info/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ichimonji"
}

src/_data/builtwith/oTYhbkj1jl.json (215 B)

{
  "url": "https://thanksforthereply.com/",
  "disabled": true,
  "source_url": "https://github.com/hankchizljaw/thanksforthereply.com",
  "opened_by": "hankchizljaw",
  "_backup_opened_by": "twitter:piccalilli_"
}

src/_data/builtwith/oVrFiUoEWg.json (74 B)

{
  "url": "https://darrenhickling.com/",
  "opened_by": "WhatIsHeDoing"
}

src/_data/builtwith/og9qSgicnO.json (117 B)

{
  "url": "https://www.allotmentbook.co.uk/",
  "opened_by": "B-Liam",
  "_backup_opened_by": "twitter:LiamBulson"
}

src/_data/builtwith/okJDEacjj5.json (181 B)

{
  "url": "https://www.chrissy.dev/",
  "source_url": "https://github.com/chrissy-dev/chrissy.dev",
  "opened_by": "chrissy-dev",
  "_backup_opened_by": "twitter:scottishstoater"
}

src/_data/builtwith/orH3MhGZXI.json (183 B)

{
  "url": "https://www.martingunnarsson.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gunnarsson"
}

src/_data/builtwith/osaXe963HX.json (183 B)

{
  "url": "https://www.tkackielodzkie.pl/",
  "source_url": "https://github.com/fusilli/tkackielodzkie.pl",
  "opened_by": "fusilli",
  "_backup_opened_by": "twitter:piotrswiderek"
}

src/_data/builtwith/oxdNQxkG3K.json (114 B)

{
  "url": "https://geolytix.com/",
  "opened_by": "ryangittings",
  "_backup_opened_by": "twitter:ryangittings"
}

src/_data/builtwith/p1yR8Ps2B5.json (180 B)

{
  "url": "https://gourmonds.de/",
  "source_url": "https://github.com/gourmonds/website",
  "opened_by": "dlehmann",
  "_backup_opened_by": "twitter:gourmonds",
  "authors": []
}

src/_data/builtwith/p3U-vry9x-.json (188 B)

{
  "url": "https://www.amykhar.dev/",
  "source_url": "",
  "authors": [
    "amykhar"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "amykhar"
}

src/_data/builtwith/p8FPJ8_iFZ.json (174 B)

{
  "url": "https://glyph.parth.ninja/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "partheus"
}

src/_data/builtwith/p8qua2_ohV.json (216 B)

{
  "url": "https://pxl.media/",
  "source_url": "https://github.com/craigerskine/pxl.media",
  "authors": [],
  "opencollective": "qrayg",
  "business_url": "",
  "business_name": "",
  "opened_by": "craigerskine"
}

src/_data/builtwith/pB9S-BsiR0.json (136 B)

{
  "url": "https://www.var-amenagement-developpement.fr/",
  "opened_by": "marcfilleul",
  "_backup_opened_by": "twitter:marcfilleul"
}

src/_data/builtwith/pHEorXKDkh.json (106 B)

{
  "url": "https://eaton-works.com/",
  "opened_by": "EatonZ",
  "_backup_opened_by": "twitter:XeEaton"
}

src/_data/builtwith/pHVbJLuO4U.json (191 B)

{
  "url": "https://codeadrian.github.io/",
  "source_url": "https://github.com/codeAdrian/codeAdrian.github.io",
  "opened_by": "codeAdrian",
  "_backup_opened_by": "twitter:adrianbecedev"
}

src/_data/builtwith/pUriVoF-DY.json (120 B)

{
  "url": "https://saschadiercks.de/",
  "opened_by": "saschadiercks",
  "_backup_opened_by": "twitter:saschadiercks"
}

src/_data/builtwith/pad0anWcA6.json (108 B)

{
  "url": "https://mattlacey.com/",
  "opened_by": "mattlacey",
  "_backup_opened_by": "twitter:laceysnr"
}

src/_data/builtwith/pct8pXKrVM.json (192 B)

{
  "url": "https://danleatherman.com/",
  "source_url": "https://github.com/dleatherman/danleatherman-eleventy",
  "opened_by": "dleatherman",
  "_backup_opened_by": "twitter:danleatherman"
}

src/_data/builtwith/pg-gXKLjMp.json (230 B)

{
  "url": "https://www.vess.co.nz/",
  "source_url": "https://github.com/MartyNZ/Vess-Restoration",
  "authors": [
    "MartyNZ"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "MartyNZ"
}

src/_data/builtwith/ph8zA8bo-5.json (200 B)

{
  "url": "https://razorux.com/",
  "source_url": "",
  "authors": [
    "AnalyzePlatypus"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AnalyzePlatypus"
}

src/_data/builtwith/phoM3DQJkr.json (204 B)

{
  "url": "https://guardians-foundation.org/",
  "source_url": "https://gitlab.com/guardians-foundation/website",
  "opened_by": "ChadoNihi",
  "_backup_opened_by": "twitter:ChadoNihi",
  "authors": []
}

src/_data/builtwith/pkY5YC99Zv.json (211 B)

{
  "url": "https://softiron.com/",
  "source_url": "",
  "authors": [
    "adamduncan",
    "Pete-Robelou"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamduncan"
}

src/_data/builtwith/pqkCxzmGq-.json (119 B)

{
  "url": "https://syntackle.com/",
  "opened_by": "murtuzaalisurti",
  "_backup_opened_by": "twitter:murtuza_surti"
}

src/_data/builtwith/pr3L0Ut2Ud.json (110 B)

{
  "url": "https://heydonworks.com/",
  "opened_by": "Heydon",
  "_backup_opened_by": "twitter:heydonworks"
}

src/_data/builtwith/pvNjRETfzX.json (228 B)

{
  "url": "https://dme-ing.fr/",
  "source_url": "",
  "authors": [],
  "opencollective": "celinedesign",
  "business_url": "https://www.celinedesign.com/",
  "business_name": "CelineDesign",
  "opened_by": "seb-celinedesign"
}

src/_data/builtwith/pvqSDfWmbO.json (174 B)

{
  "url": "https://officeglow.online/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jcmendez"
}

src/_data/builtwith/pxD7MmyB33.json (186 B)

{
  "url": "https://reubenlillie.com/",
  "source_url": "https://gitlab.com/reubenlillie/reubenlillie.com",
  "opened_by": "reubenlillie",
  "_backup_opened_by": "twitter:reubenlillie"
}

src/_data/builtwith/q-y7wR0dS1.json (107 B)

{
  "url": "https://mdemegl.io/",
  "opened_by": "marisademeglio",
  "_backup_opened_by": "twitter:mdmgl"
}

src/_data/builtwith/q7BmF1EsHc.json (239 B)

{
  "url": "https://hominidsoftware.com/",
  "source_url": "https://github.com/DougReeder/hominid-web",
  "authors": [
    "DougReeder"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "DougReeder"
}

src/_data/builtwith/q8YaGTOD_k.json (241 B)

{
  "url": "https://www.gites-lafourcade.fr/",
  "source_url": "",
  "authors": [],
  "opencollective": "celinedesign",
  "business_url": "https://www.celinedesign.com/",
  "business_name": "CelineDesign",
  "opened_by": "seb-celinedesign"
}

src/_data/builtwith/qDp7E-DSlG.json (175 B)

{
  "url": "https://brootaylor.com/",
  "source_url": "https://github.com/brootaylor/brootaylor-v2",
  "opened_by": "brootaylor",
  "_backup_opened_by": "twitter:brootaylor"
}

src/_data/builtwith/qF40bJeJCy.json (203 B)

{
  "url": "https://design.saschadiercks.de/",
  "source_url": "https://github.com/saschadiercks/design-system-with-11ty",
  "opened_by": "saschadiercks",
  "_backup_opened_by": "twitter:saschadiercks"
}

src/_data/builtwith/qIAHecLT14.json (232 B)

{
  "url": "https://claytonerrington.com/",
  "source_url": "https://github.com/cjerrington/cjerrington.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "cjerrington"
}

src/_data/builtwith/qeOK3z61I2.json (204 B)

{
  "url": "https://perrodinero.blog/",
  "source_url": "https://github.com/davidojedalopez/perro-dinero",
  "opened_by": "davidojedalopez",
  "_backup_opened_by": "twitter:DavidOjedaL",
  "authors": []
}

src/_data/builtwith/qgoBqBTz5-.json (186 B)

{
  "url": "https://www.itforedrag.dk/",
  "disabled": true,
  "source_url": "https://github.com/ebdrup/foredrag",
  "opened_by": "ebdrup",
  "_backup_opened_by": "twitter:allanebdrup"
}

src/_data/builtwith/qjyEqb-Kba.json (226 B)

{
  "url": "https://bite-sized-a11y.com/",
  "source_url": "https://github.com/conedevelopment/bite-sized-a11y",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamlaki"
}

src/_data/builtwith/qnuwDPVmYw.json (226 B)

{
  "url": "https://blog.helenchong.omg.lol/en/",
  "source_url": "https://github.com/helenclx/helenchong-blog",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "helenclx"
}

src/_data/builtwith/qpcO3vZKBA.json (176 B)

{
  "url": "https://huphtur.nl/",
  "source_url": "https://github.com/huphtur/huphtur.nl",
  "opened_by": "huphtur",
  "_backup_opened_by": "twitter:huphtur",
  "authors": []
}

src/_data/builtwith/qy2-VlmXgR.json (178 B)

{
  "url": "https://fberriman.com/blog/",
  "opened_by": "slightlyoff",
  "_backup_opened_by": "twitter:phae",
  "authors": [
    "twitter:phae",
    "twitter:slightlylate"
  ]
}

src/_data/builtwith/r1c-ZGfvja.json (190 B)

{
  "url": "https://darthmall.net/",
  "source_url": "",
  "authors": [
    "darthmall"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "darthmall"
}

src/_data/builtwith/r3oa8xYo25.json (247 B)

{
  "url": "https://covidtracking.com/",
  "source_url": "https://github.com/COVID19Tracking/website",
  "opened_by": "twitter:COVID19Tracking",
  "_backup_opened_by": "twitter:COVID19Tracking",
  "authors": [
    "wilto"
  ],
  "disabled": true
}

src/_data/builtwith/r4VRVtKp2_.json (164 B)

{
  "url": "https://ecsspert.com/",
  "source_url": "https://github.com/zoreet/ecsspert",
  "opened_by": "zoreet",
  "_backup_opened_by": "twitter:vladzinculescu"
}

src/_data/builtwith/rB4WFBYvpW.json (173 B)

{
  "url": "https://www.lautakuntapodcast.fi/",
  "source_url": "https://github.com/msaari/lautakunta.fi",
  "opened_by": "msaari",
  "authors": [
    "twitter:msaari"
  ]
}

src/_data/builtwith/rK1AcgKOEf.json (223 B)

{
  "url": "https://nathanupchurch.com/",
  "source_url": "https://upchur.ch/gitea/n_u/nathanupchurch.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "N-Upchurch"
}

src/_data/builtwith/rM7pZ6pPNv.json (226 B)

{
  "url": "https://docs.getchip.cc/",
  "source_url": "https://codeberg.org/jgarber/docs.getchip.cc",
  "authors": [],
  "opencollective": "jgarber",
  "business_url": "",
  "business_name": "",
  "opened_by": "jgarber623"
}

src/_data/builtwith/rMsXeWuNU8.json (245 B)

{
  "url": "https://spatialmovi.es/",
  "source_url": "https://github.com/rdela/spatialmovi.es",
  "authors": [],
  "opencollective": "ricky",
  "business_url": "https://artact.io/",
  "business_name": "Artist Activist",
  "opened_by": "rdela"
}

src/_data/builtwith/rOqei16xAw.json (205 B)

{
  "url": "https://bayton.org/",
  "source_url": "https://github.com/jasonbayton/11ty",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jasonbayton"
}

src/_data/builtwith/rPpKiVtMky.json (161 B)

{
  "url": "https://levimcg.com/",
  "source_url": "https://github.com/levimcg/levimcg.com",
  "opened_by": "levimcg",
  "_backup_opened_by": "twitter:levimcg"
}

src/_data/builtwith/rTHbawWCCs.json (215 B)

{
  "url": "https://lilypond-in-markdown.netlify.app/",
  "source_url": "https://github.com/pianomanfrazier/lilypond-in-markdown",
  "opened_by": "pianomanfrazier",
  "_backup_opened_by": "twitter:pianomanfrazier"
}

src/_data/builtwith/rY6LCWgchp.json (218 B)

{
  "url": "https://kromatic.fr/",
  "source_url": "https://github.com/romain-koenig/kromatic2023",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "romain-koenig"
}

src/_data/builtwith/raIIJBXnbw.json (279 B)

{
  "url": "https://fossgaming.codeberg.page/",
  "source_url": "https://codeberg.org/FOSSgaming/pages-data",
  "authors": [
    "gurkenlabs",
    "nightm4re94"
  ],
  "opencollective": "matthias-wilke",
  "business_url": "",
  "business_name": "",
  "opened_by": "nightm4re94"
}

src/_data/builtwith/rf_wDcoLtC.json (168 B)

{
  "url": "https://gemma.ee/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gemmagarner"
}

src/_data/builtwith/ri51F-9ls8.json (211 B)

{
  "url": "https://florian.ec/",
  "source_url": "https://git.sr.ht/~fec/florian.ec",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "florianeckerstorfer"
}

src/_data/builtwith/rilcfUQ9sV.json (219 B)

{
  "url": "https://cam.macfar.land/",
  "source_url": "https://github.com/distantcam/cam.macfar.land",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "distantcam"
}

src/_data/builtwith/rpkf6RrR5H.json (273 B)

{
  "url": "https://2024.xoxofest.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "",
  "archived": "https://web.archive.org/web/20240810025356/https://2024.xoxofest.com/",
  "disabled": true
}

src/_data/builtwith/rq5CnXEHNv.json (153 B)

{
  "url": "https://duncan.dev/",
  "source_url": "https://github.com/duncan/website",
  "opened_by": "duncan",
  "_backup_opened_by": "twitter:duncan"
}

src/_data/builtwith/rr0y4DmC-u.json (173 B)

{
  "url": "https://ivoputzer.blog/",
  "source_url": "https://github.com/ivoputzer/ivoputzer.blog",
  "opened_by": "ivoputzer",
  "_backup_opened_by": "twitter:ivoputzer"
}

src/_data/builtwith/rsFtiWnt5a.json (245 B)

{
  "url": "https://docs.flutter.dev/",
  "source_url": "https://github.com/flutter/website",
  "authors": [
    "parlough"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat",
  "featured": true
}

src/_data/builtwith/rt3nS2Qjdz.json (256 B)

{
  "url": "https://arielsalminen.com/",
  "source_url": "",
  "authors": [
    "arielsalminen"
  ],
  "opencollective": "arielsalminen",
  "business_url": "https://arielsalminen.com/",
  "business_name": "Ariel S. Design",
  "opened_by": "arielsalminen"
}

src/_data/builtwith/ru6tfPCacM.json (81 B)

{
  "url": "https://soldierpackers.com/",
  "disabled": true,
  "opened_by": ""
}

src/_data/builtwith/rxR4N6Du4E.json (195 B)

{
  "url": "https://childcare-vouchers.uk/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "https://jabran.me/",
  "business_name": "",
  "opened_by": "jabranr"
}

src/_data/builtwith/rx_1Xwh6Ye.json (233 B)

{
  "url": "https://courtnotes.netlify.app/",
  "source_url": "https://github.com/CourtneyFradreck/CourtNotes",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "CourtneyFradreck"
}

src/_data/builtwith/ry3TgGQMZ1.json (213 B)

{
  "url": "https://velvetcache.org/",
  "source_url": "https://github.com/jmhobbs/velvetcache.org",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "jmhobbs"
}

src/_data/builtwith/s0AFOWLcio.json (120 B)

{
  "url": "https://schnittstellengestalter.de/",
  "opened_by": "solemone",
  "_backup_opened_by": "twitter:solemone"
}

src/_data/builtwith/s9Ev6QNxXg.json (281 B)

{
  "url": "https://www.foxdog.io/",
  "source_url": "https://github.com/kylepfeeley/foxdog",
  "authors": [
    "kylepfeeley"
  ],
  "opencollective": "kylepfeeley",
  "business_url": "https://www.foxdog.io/",
  "business_name": "Foxdog Collective",
  "opened_by": "kylepfeeley"
}

src/_data/builtwith/sDPG1eXx6l.json (123 B)

{
  "url": "https://robinrendle.com/",
  "opened_by": "twitter:robinrendle",
  "_backup_opened_by": "twitter:robinrendle"
}

src/_data/builtwith/sJuY_Ynh-R.json (189 B)

{
  "url": "https://async-alpine.dev/",
  "source_url": "",
  "authors": [],
  "opencollective": "alistair-shepherd",
  "business_url": "",
  "business_name": "",
  "opened_by": "Accudio"
}

src/_data/builtwith/sLRbf9SbuN.json (208 B)

{
  "url": "https://jamescowebdesigns.com/",
  "source_url": "",
  "authors": [
    "jamestsetsekas"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "JamesTsetsekas"
}

src/_data/builtwith/sP-hZjIeL4.json (210 B)

{
  "url": "https://jessicakeoshian.com/",
  "source_url": "https://github.com/Gyanreyer/jess",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Gyanreyer"
}

src/_data/builtwith/sQt7G2zjY5.json (213 B)

{
  "url": "https://carteakey.dev/",
  "source_url": "https://github.com/carteakey/carteakey.dev",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "carteakey"
}

src/_data/builtwith/sRAbeLEQRO.json (132 B)

{
  "url": "https://bight.dev/",
  "opened_by": "greatislander",
  "_backup_opened_by": "twitter:bightconsulting",
  "authors": []
}

src/_data/builtwith/sYUsFIvz3x.json (181 B)

{
  "url": "https://www.hoeser.dev/",
  "source_url": "https://github.com/Snapstromegon/hoeser.dev",
  "opened_by": "Snapstromegon",
  "_backup_opened_by": "twitter:Snapstromegon"
}

src/_data/builtwith/sdU7khL8GM.json (231 B)

{
  "url": "https://angular.pridontetradze.com/",
  "source_url": "https://github.com/CondensedMilk7/ng-guide",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "CondensedMilk7"
}

src/_data/builtwith/sfjFAnWxqU.json (202 B)

{
  "url": "https://gurumedia.com/",
  "source_url": "",
  "authors": [
    "AnalyzePlatypus"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AnalyzePlatypus"
}

src/_data/builtwith/siLZ7TDCS_.json (183 B)

{
  "url": "https://luciano.laratel.li/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "LucianoLaratelli"
}

src/_data/builtwith/skq7AbBmQe.json (276 B)

{
  "url": "https://fordv8foundation.org/",
  "source_url": "https://github.com/Early-Ford-V8-Foundation/fordv8foundation.org",
  "authors": [
    "adamdjbrett"
  ],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/snSn42ru_-.json (209 B)

{
  "url": "https://jak2k.schwanenberg.name/",
  "source_url": "https://github.com/Jak2k/website",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Jak2k"
}

src/_data/builtwith/spH2XNN03v.json (210 B)

{
  "url": "https://demo.xiyu.pro/",
  "source_url": "https://github.com/xiyuvi/eleventy-cn-blog",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "xiyuvi"
}

src/_data/builtwith/swtzzfPU9m.json (135 B)

{
  "url": "https://nonsponsored.com/",
  "opened_by": "nonsponsored",
  "_backup_opened_by": "twitter:nonsponsored",
  "authors": []
}

src/_data/builtwith/t0yekpY2D0.json (179 B)

{
  "url": "https://kleinfreund.de/",
  "source_url": "https://github.com/kleinfreund/kleinfreund.de",
  "opened_by": "kleinfreund",
  "_backup_opened_by": "twitter:kleinfreund"
}

src/_data/builtwith/t1FngmKly-.json (187 B)

{
  "url": "https://v5.chriskrycho.com/",
  "source_url": "https://github.com/chriskrycho/v5.chriskrycho.com",
  "opened_by": "chriskrycho",
  "_backup_opened_by": "twitter:chriskrycho"
}

src/_data/builtwith/t5azPH8JfI.json (123 B)

{
  "url": "https://www.boldandfriendly.de/",
  "opened_by": "mrolfsen",
  "_backup_opened_by": "twitter:michaelsupdates"
}

src/_data/builtwith/t9-3Q4bUte.json (252 B)

{
  "url": "http://www.grupapir.pl/",
  "leaderboard_excluded": false,
  "source_url": "https://github.com/fusilli/grupapir",
  "authors": [],
  "opencollective": "piotr-swiderek",
  "business_url": "",
  "business_name": "",
  "opened_by": "fusilli"
}

src/_data/builtwith/tE1sgXFgyg.json (238 B)

{
  "url": "https://www.francoamericanmowing.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "https://chantillywebdesign.com/",
  "business_name": "Chantilly Web Design",
  "opened_by": "mikeritter"
}

src/_data/builtwith/tEpXGEYj5J.json (181 B)

{
  "url": "https://declanbyrd.co.uk/",
  "source_url": "https://github.com/declanbyrd/declanbyrd.co.uk",
  "opened_by": "declanbyrd",
  "_backup_opened_by": "twitter:declan_byrd"
}

src/_data/builtwith/tHVsPhLC9g.json (154 B)

{
  "url": "https://savjee.be/",
  "source_url": "https://github.com/Savjee/savjee.be",
  "opened_by": "Savjee",
  "_backup_opened_by": "twitter:savjee"
}

src/_data/builtwith/tMOGuSAF2_.json (117 B)

{
  "url": "https://www.star-shaped.org/",
  "opened_by": "starshaped",
  "_backup_opened_by": "twitter:starshaped"
}

src/_data/builtwith/tNqF9L78Pf.json (311 B)

{
  "url": "https://team-oberberg.blog/",
  "source_url": "https://github.com/Snapstromegon/team-oberberg.blog",
  "authors": [
    "Snapstromegon"
  ],
  "opencollective": "raphael-hoeser",
  "business_url": "https://www.hoeser.dev/",
  "business_name": "",
  "opened_by": "Snapstromegon",
  "disabled": true
}

src/_data/builtwith/tSEbEWvU7x.json (213 B)

{
  "url": "https://theo-courant.com/",
  "source_url": "",
  "authors": [
    "TigersWay",
    "theo-courant"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "TigersWay"
}

src/_data/builtwith/tTIbTelVWI.json (184 B)

{
  "url": "https://chromatic.live/",
  "opened_by": "markdorison",
  "_backup_opened_by": "twitter:ChromaticHQ",
  "authors": [
    "twitter:markdorison",
    "twitter:agarzola"
  ]
}

src/_data/builtwith/tTJbq7YVbT.json (174 B)

{
  "url": "https://www.solidstart.info/",
  "source_url": "https://github.com/erikkroes/solidStart",
  "opened_by": "erikkroes",
  "_backup_opened_by": "twitter:erikKroes"
}

src/_data/builtwith/tVoSjY1Ra7.json (166 B)

{
  "url": "https://gericci.me/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gericci"
}

src/_data/builtwith/tWHIbzQ0RF.json (190 B)

{
  "url": "https://yoncetheme.com/",
  "source_url": "https://github.com/minamarkham/yonce/tree/yoncetheme.com",
  "opened_by": "minamarkham",
  "_backup_opened_by": "twitter:minamarkham"
}

src/_data/builtwith/t_VT-KDbxC.json (200 B)

{
  "url": "https://paulrobertlloyd.com/",
  "source_url": "https://github.com/paulrobertlloyd/paulrobertlloyd-v4",
  "opened_by": "paulrobertlloyd",
  "_backup_opened_by": "twitter:paulrobertlloyd"
}

src/_data/builtwith/tf2e3acRuw.json (250 B)

{
  "url": "https://www.globe.church/",
  "source_url": "https://github.com/theglobechurch/globe-static",
  "authors": [
    "jamesdoc"
  ],
  "opencollective": "@MazOneTwoOne",
  "business_url": "",
  "business_name": "",
  "opened_by": "jamesdoc"
}

src/_data/builtwith/tiRD_s3NY6.json (171 B)

{
  "url": "https://maprunner.co.uk/",
  "source_url": "https://github.com/Maprunner/maprunner",
  "opened_by": "Maprunner",
  "_backup_opened_by": "twitter:MaprunnerGB"
}

src/_data/builtwith/tlswpUxVB8.json (202 B)

{
  "url": "https://v8.dev/",
  "source_url": "https://github.com/v8/v8.dev",
  "opened_by": "twitter:v8js",
  "_backup_opened_by": "twitter:v8js",
  "authors": [
    "mathias"
  ],
  "featured": true
}

src/_data/builtwith/tnPKs1PVy8.json (195 B)

{
  "url": "https://www.andreacorinti.com/",
  "source_url": "https://github.com/andreacorinti/andreacorinti.com",
  "opened_by": "andreacorinti",
  "_backup_opened_by": "twitter:AndreaCorinti"
}

src/_data/builtwith/tpAXw2bBSQ.json (174 B)

{
  "url": "https://bnijenhuis.nl/",
  "source_url": "https://github.com/bnijenhuis/bnijenhuis-nl",
  "opened_by": "bnijenhuis",
  "_backup_opened_by": "twitter:bnijenhuis"
}

src/_data/builtwith/tpxpTCuexy.json (242 B)

{
  "url": "https://cloudcannon.com/",
  "source_url": "",
  "authors": [
    "mneumegen",
    "David-Large"
  ],
  "opencollective": "cloudcannon1",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat",
  "featured": true
}

src/_data/builtwith/tuI3cNtmR2.json (186 B)

{
  "url": "https://blog.felipestanzani.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "felipestanzani"
}

src/_data/builtwith/tvRXu06H6D.json (107 B)

{
  "url": "https://genehack.blog/",
  "opened_by": "genehack",
  "_backup_opened_by": "twitter:genehack"
}

src/_data/builtwith/tvpO71sNgi.json (226 B)

{
  "url": "https://singleservingsites.cool/",
  "source_url": "https://github.com/huphtur/single-serving-sites",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "huphtur"
}

src/_data/builtwith/tzTKYP4mfz.json (116 B)

{
  "url": "https://www.geo-syntax.com/",
  "opened_by": "coryasilva",
  "_backup_opened_by": "twitter:coryasilva"
}

src/_data/builtwith/u5N9G901F7.json (198 B)

{
  "url": "https://chetanmittaldev.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "chetanmittaldev",
  "business_url": "",
  "business_name": "",
  "opened_by": "chetanmittaldev"
}

src/_data/builtwith/uA8cikHBnd.json (117 B)

{
  "url": "https://maximorlov.com/",
  "opened_by": "Maximization",
  "_backup_opened_by": "twitter:_maximization"
}

src/_data/builtwith/uAZPzHv3dc.json (137 B)

{
  "url": "https://nordhealth.com/",
  "opened_by": "arielsalminen",
  "_backup_opened_by": "twitter:nordhealthhq",
  "authors": [
  ]
}

src/_data/builtwith/uEQKOzC4kR.json (243 B)

{
  "url": "https://www.caseyocampo.com/",
  "source_url": "https://github.com/caseyocampo/blog-eleventy-tailwind",
  "authors": [],
  "opencollective": "caseyocampo",
  "business_url": "",
  "business_name": "",
  "opened_by": "caseyocampo"
}

src/_data/builtwith/uNliKWw9c_.json (162 B)

{
  "url": "https://hans.gerwitz.com/",
  "source_url": "https://github.com/gerwitz/hgc-v12",
  "opened_by": "gerwitz",
  "_backup_opened_by": "twitter:gerwitz"
}

src/_data/builtwith/uRXEN7Dz9g.json (177 B)

{
  "url": "https://www.teppohaste.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "teppohaste"
}

src/_data/builtwith/u_dd3eln7F.json (278 B)

{
  "url": "https://www.axcora.com/",
  "source_url": "",
  "authors": [
    "mesinkasir"
  ],
  "opencollective": "creativitas",
  "business_url": "https://www.fiverr.com/creativitas/design-your-modern-website-using-jekyll",
  "business_name": "",
  "opened_by": "mesinkasir"
}

src/_data/builtwith/ubIxibEirC.json (128 B)

{
  "url": "https://germanfrelo.dev/",
  "source_url": "https://github.com/germanfrelo/website",
  "opened_by": "germanfrelo"
}

src/_data/builtwith/udClOENC0i.json (247 B)

{
  "url": "https://clhenrick.github.io/color-legend-element/",
  "source_url": "https://github.com/clhenrick/color-legend-element",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "clhenrick"
}

src/_data/builtwith/ufKL51653J.json (114 B)

{
  "url": "https://bentleydavis.com/",
  "opened_by": "twitter:BntlyD",
  "_backup_opened_by": "twitter:BntlyD"
}

src/_data/builtwith/ufRmXM9ZYL.json (121 B)

{
  "url": "https://timothymiller.dev/",
  "opened_by": "WebInspectInc",
  "_backup_opened_by": "twitter:webinspectinc"
}

src/_data/builtwith/ugNERpVWJM.json (194 B)

{
  "url": "https://amorgunov.com/",
  "source_url": "https://github.com/noveogroup-amorgunov/amorgunov.com",
  "opened_by": "noveogroup-amorgunov",
  "_backup_opened_by": "twitter:_amorgunov"
}

src/_data/builtwith/ujjyv_bdHy.json (198 B)

{
  "url": "https://www.mattnortham.com/",
  "source_url": "https://github.com/mattnortham/ma11northam",
  "opened_by": "mattnortham",
  "_backup_opened_by": "twitter:mattnortham",
  "authors": []
}

src/_data/builtwith/uwqJBIb_8y.json (177 B)

{
  "url": "https://quentin.delcourt.be/",
  "source_url": "https://gitlab.com/kant312/quentin-delcourt-be",
  "opened_by": "kant312",
  "_backup_opened_by": "twitter:kant312"
}

src/_data/builtwith/uzZ3h1VBB_.json (170 B)

{
  "url": "https://barsan.kz/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "bartoshevich"
}

src/_data/builtwith/uzZSa4bpnB.json (122 B)

{
  "url": "https://doddle.agency/",
  "opened_by": "GrantSmithDoddle",
  "_backup_opened_by": "twitter:granttransition"
}

src/_data/builtwith/v0_13ywbTh.json (211 B)

{
  "url": "https://davidrhoden.com/",
  "source_url": "https://github.com/davidrhoden/davidrhoden-basic-netlify",
  "opened_by": "davidrhoden",
  "_backup_opened_by": "twitter:davidrhoden",
  "authors": [
  ]
}

src/_data/builtwith/v0_y4yhveT.json (203 B)

{
  "url": "https://spellcheck.fun/",
  "source_url": "https://github.com/ashur/spellcheck",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ashur"
}

src/_data/builtwith/vDlTSuwXTR.json (171 B)

{
  "url": "https://tinyrumble.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "yuanzhou"
}

src/_data/builtwith/vF6UUyl0py.json (219 B)

{
  "url": "https://sport-game-catalog.netlify.app/",
  "source_url": "",
  "authors": [
    "AnalyzePlatypus"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "AnalyzePlatypus"
}

src/_data/builtwith/vKYBjdXaJx.json (224 B)

{
  "url": "https://stebre.ch/en/",
  "source_url": "https://github.com/stebrech/stebre-site",
  "authors": [],
  "opencollective": "stefan-brechbuhl",
  "business_url": "",
  "business_name": "",
  "opened_by": "stebrech"
}

src/_data/builtwith/vLS37BN6gQ.json (222 B)

{
  "url": "https://doineedbuntingtoday.com/",
  "source_url": "https://github.com/CodeFoodPixels/doineedbuntingtoday",
  "opened_by": "CodeFoodPixels",
  "_backup_opened_by": "twitter:CodeFoodPixels",
  "authors": [
  ]
}

src/_data/builtwith/vRrNYWwVYB.json (233 B)

{
  "url": "https://ghassan.blog/",
  "source_url": "https://github.com/ghassanmas/ghassan.blog",
  "authors": [
    "ghassanmas"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "ghassanmas"
}

src/_data/builtwith/vUW-W3t6Dy.json (217 B)

{
  "url": "https://atomic.financial/",
  "source_url": "",
  "authors": [
    "stillingdesign"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat",
  "featured": true
}

src/_data/builtwith/vWljN8by4A.json (222 B)

{
  "url": "https://saulcorona.com/",
  "source_url": "https://github.com/saul-corona/saulcorona-com-v3",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "saul-corona"
}

src/_data/builtwith/veWLr-6Dvt.json (230 B)

{
  "url": "https://craigerskine.com/",
  "source_url": "https://github.com/craigerskine/craigerskine.com",
  "authors": [],
  "opencollective": "qrayg",
  "business_url": "",
  "business_name": "",
  "opened_by": "craigerskine"
}

src/_data/builtwith/vj66w1rFY5.json (176 B)

{
  "url": "https://www.wearedeepspace.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kuwts"
}

src/_data/builtwith/vkpaGwVdRR.json (238 B)

{
  "url": "https://carlotrimarchi.it/",
  "source_url": "https://github.com/carlotrimarchi/carlotrimarchi.github.io",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "carlotrimarchi"
}

src/_data/builtwith/vpS6uhQTrP.json (186 B)

{
  "url": "https://cathydutton.co.uk/",
  "source_url": "https://github.com/cathydutton/cathydutton.co.uk",
  "opened_by": "cathydutton",
  "_backup_opened_by": "twitter:cathy_dutton"
}

src/_data/builtwith/vxwCtogs59.json (171 B)

{
  "url": "https://www.expong.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simoncox"
}

src/_data/builtwith/w1ehyGNGDg.json (186 B)

{
  "url": "https://multilingual.lea-tortay.com/",
  "source_url": "https://github.com/lea37/eleventy-multilingual",
  "opened_by": "lea37",
  "_backup_opened_by": "twitter:lea_tortay"
}

src/_data/builtwith/w2LLhKCTyG.json (167 B)

{
  "url": "https://hamatti.org/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "Hamatti"
}

src/_data/builtwith/w389OT-i1T.json (196 B)

{
  "url": "https://legonotlegos.com/",
  "source_url": "https://github.com/robsterlini/legonotlegos",
  "opened_by": "robsterlini",
  "_backup_opened_by": "twitter:robsterlini",
  "authors": []
}

src/_data/builtwith/w6ACv3lFjx.json (167 B)

{
  "url": "https://bruijn.me/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "laurens94"
}

src/_data/builtwith/w781AOMvVz.json (194 B)

{
  "url": "https://pracowniawschodnia.pl/",
  "source_url": "",
  "authors": [],
  "opencollective": "TomekMelissa",
  "business_url": "",
  "business_name": "",
  "opened_by": "TomekMelissa"
}

src/_data/builtwith/w7GbhmpGuQ.json (248 B)

{
  "url": "https://research.cloudflare.com/",
  "source_url": "https://github.com/cloudflare/research.cloudflare.com",
  "authors": [
    "vgonc"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/w7vqR2fhAf.json (157 B)

{
  "url": "https://sindre.is/",
  "source_url": "https://github.com/boyum/sindre-is",
  "opened_by": "boyum",
  "_backup_opened_by": "twitter:sindreboyum"
}

src/_data/builtwith/wLC73f-etX.json (215 B)

{
  "url": "https://www.tgiles.dev/",
  "source_url": "https://github.com/TGiles/static-site",
  "authors": [],
  "opencollective": "tim-giles",
  "business_url": "",
  "business_name": "",
  "opened_by": "TGiles"
}

src/_data/builtwith/wP8zHpF18i.json (210 B)

{
  "url": "https://lazargosic.net/",
  "source_url": "https://github.com/LazarQt/lazargosicnet",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "LazarQt"
}

src/_data/builtwith/wPnwEm_SJF.json (179 B)

{
  "url": "https://robinbakker.nl/",
  "source_url": "https://github.com/robinbakker/robinbakker.nl",
  "opened_by": "robinbakker",
  "_backup_opened_by": "twitter:robinbakker"
}

src/_data/builtwith/wRHM3-owZz.json (233 B)

{
  "url": "https://www.interroban.gg/",
  "source_url": "https://github.com/LkeMitchll/interroban.gg",
  "authors": [],
  "opencollective": "guest-8991c3a9",
  "business_url": "",
  "business_name": "",
  "opened_by": "LkeMitchll"
}

src/_data/builtwith/wRU2wnpGBc.json (175 B)

{
  "url": "https://davidjohnmead.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "davidmead"
}

src/_data/builtwith/wY_RL7JqsD.json (125 B)

{
  "url": "https://markboulton.co.uk/",
  "opened_by": "twitter:markboulton",
  "_backup_opened_by": "twitter:markboulton"
}

src/_data/builtwith/wgqPJKOXVR.json (204 B)

{
  "url": "https://midia.ogarcia.es/",
  "source_url": "https://gitlab.com/oscc-es/midia",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "oscc-es"
}

src/_data/builtwith/whaygvQnb_.json (210 B)

{
  "url": "https://htmlrecipes.dev/",
  "source_url": "https://github.com/5t3ph/htmlrecipes",
  "authors": [],
  "opencollective": "5t3ph",
  "business_url": "",
  "business_name": "",
  "opened_by": "5t3ph"
}

src/_data/builtwith/wivvO5MTJ_.json (115 B)

{
  "url": "https://markdorison.com/",
  "opened_by": "markdorison",
  "_backup_opened_by": "twitter:markdorison"
}

src/_data/builtwith/wrWtO6ekAB.json (154 B)

{
  "url": "https://www.higby.io/",
  "source_url": "https://github.com/higby/higby.io",
  "opened_by": "higby",
  "_backup_opened_by": "twitter:higby_"
}

src/_data/builtwith/wsdTIvHqQ7.json (171 B)

{
  "url": "https://mattrad.uk/",
  "source_url": "https://github.com/mattradford/mattrad-uk",
  "opened_by": "mattradford",
  "_backup_opened_by": "twitter:mattradford"
}

src/_data/builtwith/ww222CRi28.json (134 B)

{
  "url": "https://ajmalafif.design/",
  "disabled": true,
  "opened_by": "csakiistvan",
  "_backup_opened_by": "twitter:ajmalafif"
}

src/_data/builtwith/x04KqRbIzQ.json (219 B)

{
  "url": "https://www.devlinmcclure.com/",
  "source_url": "https://codeberg.org/devlin/portfolio-new",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "devmcclu"
}

src/_data/builtwith/x1parjObbp.json (183 B)

{
  "url": "https://sglazov.ru/",
  "source_url": "",
  "authors": [
    "sglazov"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "sglazov"
}

src/_data/builtwith/x8Hwj_joZQ.json (167 B)

{
  "url": "https://ttntm.me/",
  "source_url": "https://github.com/ttntm/ttntm",
  "opened_by": "ttntm",
  "_backup_opened_by": "twitter:thet0m",
  "authors": [
  ]
}

src/_data/builtwith/x9CRFgU7Xb.json (186 B)

{
  "url": "https://cezaraugusto.net/",
  "source_url": "https://github.com/cezaraugusto/cezaraugusto.com",
  "opened_by": "cezaraugusto",
  "_backup_opened_by": "twitter:cezaraugusto"
}

src/_data/builtwith/xAGv-kl76q.json (224 B)

{
  "url": "https://aila.social/",
  "source_url": "https://github.com/adamdjbrett/aila-social",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/xC2FpHY4MA.json (212 B)

{
  "url": "https://making-ui.dev/",
  "source_url": "https://github.com/fogelek/making-ui",
  "authors": [],
  "opencollective": "fogelek",
  "business_url": "",
  "business_name": "",
  "opened_by": "fogelek"
}

src/_data/builtwith/xCedEVKGUU.json (180 B)

{
  "url": "https://gregoryhammond.ca/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "gregoryhammond"
}

src/_data/builtwith/xFXMIQxdvb.json (221 B)

{
  "url": "https://www.ciccarello.me/",
  "source_url": "https://github.com/aciccarello/ciccarello.me",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "aciccarello"
}

src/_data/builtwith/xNKqv5GY6u.json (246 B)

{
  "url": "https://www.themidgeekcrisis.app/",
  "source_url": "https://github.com/adamdjbrett/themidgeekcrisis-app",
  "authors": [],
  "opencollective": "adamdjbrett",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/xNtxbJKgkO.json (213 B)

{
  "url": "https://000000076.xyz/",
  "source_url": "https://github.com/adamdjbrett/000000076",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "adamdjbrett"
}

src/_data/builtwith/xQ5KwfFL2r.json (217 B)

{
  "url": "https://danurbanowicz.com/",
  "source_url": "",
  "authors": [
    "danurbanowicz"
  ],
  "opencollective": "dan-urbanowicz",
  "business_url": "",
  "business_name": "",
  "opened_by": "danurbanowicz"
}

src/_data/builtwith/xQFORuU0HS.json (235 B)

{
  "url": "https://roodesign.co.uk/",
  "source_url": "https://github.com/roobottom/roodesign-2019",
  "authors": [
    "roobottom"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "roobottom"
}

src/_data/builtwith/xRY91aY4ZG.json (140 B)

{
  "url": "https://badlydrawnben.com/",
  "opened_by": "badlydrawnben",
  "_backup_opened_by": "twitter:charitybiscuits",
  "authors": []
}

src/_data/builtwith/xY5Q6Zluex.json (278 B)

{
  "url": "https://compagnonnage-repas.org/",
  "source_url": "https://framagit.org/reseau-repas/compagnonnage-repas.org/",
  "authors": [
    "thom4parisot"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "dƩtour.studio",
  "opened_by": "thom4parisot"
}

src/_data/builtwith/xaiN7L7YXP.json (237 B)

{
  "url": "https://www.spencerharston.com/",
  "source_url": "https://github.com/sphars/spencerharston.com",
  "authors": [
    "sphars"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "sphars"
}

src/_data/builtwith/xjehhz7GuM.json (239 B)

{
  "url": "https://przemekmiros.pl/",
  "source_url": "https://github.com/PrzemekMiros/portfolio",
  "authors": [
    "PrzemekMiros"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "PrzemekMiros"
}

src/_data/builtwith/xmvZj97axd.json (180 B)

{
  "url": "https://spirits.bischoff.wtf/",
  "source_url": "https://github.com/medienlampe/aethel",
  "opened_by": "medienlampe",
  "_backup_opened_by": "twitter:TheTalesOfImmo"
}

src/_data/builtwith/xqnPAb1K-W.json (149 B)

{
  "url": "https://eleventy-paper.netlify.app/",
  "opened_by": "Javascripty",
  "_backup_opened_by": "twitter:Eduardo__Uribe",
  "disabled": true
}

src/_data/builtwith/xsbB8i05ZH.json (284 B)

{
  "url": "https://digitalhumanities.mit.edu/",
  "opened_by": "twitter:mike_wagz",
  "_backup_opened_by": "twitter:MIT",
  "authors": [
      "twitter:mike_wagz"
  ],
  "disabled": true,
  "archived": "https://web.archive.org/web/20240802073535/https://digitalhumanities.mit.edu/"
}

src/_data/builtwith/xuOESYDEkU.json (204 B)

{
  "url": "https://balestraroma.com/en/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "https://normadesign.it/",
  "business_name": "Norma",
  "opened_by": "VicFleur"
}

src/_data/builtwith/xwLuQZl_m9.json (119 B)

{
  "url": "https://educationlinks.fyi/",
  "opened_by": "hankchizljaw",
  "_backup_opened_by": "twitter:piccalilli_"
}

src/_data/builtwith/xx_5uzHDz4.json (120 B)

{
  "url": "https://gerencialeite.com.br/",
  "opened_by": "rodrigoknol",
  "_backup_opened_by": "twitter:rodrigoknol"
}

src/_data/builtwith/xxsIAxkqgk.json (297 B)

{
  "url": "https://quinndombrowski.com/",
  "source_url": "https://github.com/quinnanya/quinnanya.github.io",
  "authors": [
    "quinnanya"
  ],
  "opencollective": "quinnanya",
  "business_url": "https://quinndombrowski.com/",
  "business_name": "Quinn Dombrowski",
  "opened_by": "quinnanya"
}

src/_data/builtwith/y2lqjDjyfj.json (219 B)

{
  "url": "https://akkordeonvirtuosi.de/",
  "source_url": "https://github.com/FrostKiwi/MusicianPage",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "FrostKiwi"
}

src/_data/builtwith/y5Ls3c4zdR.json (195 B)

{
  "url": "https://jonas.brusman.se/",
  "source_url": "https://github.com/himynameisjonas/jonas.brusman.se",
  "opened_by": "himynameisjonas",
  "_backup_opened_by": "twitter:himynameisjonas"
}

src/_data/builtwith/yBziO3pm0Z.json (196 B)

{
  "url": "https://designremotely.co/",
  "source_url": "",
  "authors": [],
  "opencollective": "alistairtweedie",
  "business_url": "",
  "business_name": "",
  "opened_by": "alistairtweedie"
}

src/_data/builtwith/yCoNOdUoHq.json (207 B)

{
  "url": "https://my.stuffandthings.lol/",
  "source_url": "https://github.com/reddmo/stuff",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "reddmo"
}

src/_data/builtwith/yHiwNN6RJX.json (153 B)

{
  "url": "https://oisin.io/",
  "source_url": "https://github.com/oisinq/oisin.io",
  "opened_by": "oisinq",
  "_backup_opened_by": "twitter:oisinq_"
}

src/_data/builtwith/yR-VYP9sTt.json (212 B)

{
  "url": "https://okuno.osaka/",
  "source_url": "https://github.com/FrostKiwi/FullPage-Video",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "FrostKiwi"
}

src/_data/builtwith/yRabY34bvs.json (181 B)

{
  "url": "https://www.danielortegamoral.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "oscc-es"
}

src/_data/builtwith/yRn3dWnl9R.json (179 B)

{
  "url": "https://disjfa.github.io/eleventy-encore/",
  "source_url": "https://github.com/disjfa/eleventy-encore",
  "opened_by": "disjfa",
  "_backup_opened_by": "gabbersepp"
}

src/_data/builtwith/ySeeLnXd7d.json (183 B)

{
  "url": "https://getzeropoint.com/",
  "source_url": "https://github.com/MWDelaney/getzeropoint.com",
  "opened_by": "MWDelaney",
  "_backup_opened_by": "twitter:michaelwdelaney"
}

src/_data/builtwith/yUumAFdmuo.json (250 B)

{
  "url": "https://programrestoran.axcora.com/",
  "source_url": "https://github.com/mesinkasir/landingpage11ty",
  "authors": [
    "mesinkasir"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "mesinkasir"
}

src/_data/builtwith/yXfSw36YmA.json (239 B)

{
  "url": "https://platforms.barnardos.org.uk/",
  "source_url": "https://github.com/barnardos/platforms-and-standards",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "derekjohnson"
}

src/_data/builtwith/yaBpbrgKQu.json (104 B)

{
  "url": "https://pavelkvach.com/",
  "opened_by": "pkvach",
  "_backup_opened_by": "twitter:pkvach"
}

src/_data/builtwith/ye26HraDxv.json (212 B)

{
  "url": "https://akademia.instytutsprawobywatelskich.pl/",
  "source_url": "https://github.com/instytut-spraw-obywatelskich/akademia",
  "opened_by": "fusilli",
  "_backup_opened_by": "twitter:piotrswiderek"
}

src/_data/builtwith/yiMED5Aq-u.json (156 B)

{
  "url": "https://daslaf.dev/",
  "source_url": "https://github.com/daslaf/daslaf.com",
  "opened_by": "daslaf",
  "_backup_opened_by": "twitter:daslaf"
}

src/_data/builtwith/yj84Ue2yMP.json (180 B)

{
  "url": "https://code-crumbs.pplaissy.fr/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "pplaissy"
}

src/_data/builtwith/ykHlp09SZD.json (188 B)

{
  "url": "https://speedscanner.org/",
  "source_url": "https://github.com/Accudio/speedscanner.org",
  "opened_by": "Accudio",
  "_backup_opened_by": "twitter:accudio",
  "authors": []
}

src/_data/builtwith/ymcPsyWsQH.json (217 B)

{
  "url": "https://flamedfury.com/",
  "source_url": "https://github.com/flamedfury/flamedfury.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "flamedfury"
}

src/_data/builtwith/ytmGv56dS1.json (204 B)

{
  "url": "https://www.mattknight.io/",
  "source_url": "",
  "authors": [
    "abstractvector"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "abstractvector"
}

src/_data/builtwith/yvh9k-_eNC.json (200 B)

{
  "url": "https://devsites.netlify.app/",
  "source_url": "https://github.com/zgparsons/usefulwebdev",
  "opened_by": "zgparsons",
  "_backup_opened_by": "twitter:originalzedders",
  "authors": []
}

src/_data/builtwith/yvuZiiG37b.json (248 B)

{
  "url": "https://extensionworkshop.com/",
  "source_url": "https://github.com/mozilla/extension-workshop/",
  "authors": [
    "muffinresearch"
  ],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "zachleat"
}

src/_data/builtwith/yxNJVKWgWF.json (124 B)

{
  "url": "https://reedinpartnership.co.uk",
  "opened_by": "ryangittings",
  "_backup_opened_by": "twitter:ryangittings"
}

src/_data/builtwith/yxa3i2BWUU.json (166 B)

{
  "url": "https://geshan.com.np/",
  "source_url": "https://github.com/geshan/geshan.github.com",
  "opened_by": "geshan",
  "_backup_opened_by": "twitter:geshan"
}

src/_data/builtwith/yzLC6obm_l.json (178 B)

{
  "url": "https://marcoslooten.com/",
  "source_url": "https://github.com/mslooten/marcoslooten.com",
  "opened_by": "mslooten",
  "_backup_opened_by": "twitter:marcoslooten"
}

src/_data/builtwith/z0mbDCnHP-.json (186 B)

{
  "url": "https://www.lingfieldosteopaths.co.uk/",
  "source_url": "",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "simoncox"
}

src/_data/builtwith/z1jOzK9yBO.json (237 B)

{
  "url": "https://kirillunlimited.com/",
  "source_url": "https://github.com/kirillunlimited/kirillunlimited.com",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "kirillunlimited"
}

src/_data/builtwith/z32ZMw7Asl.json (174 B)

{
  "url": "https://mrmowji.com/",
  "source_url": "https://github.com/mrmowji/blog",
  "opened_by": "mrmowji",
  "_backup_opened_by": "twitter:mrmowji",
  "authors": [
  ]
}

src/_data/builtwith/z6xRAEBWWq.json (109 B)

{
  "url": "https://propernoun.smth.uk/",
  "opened_by": "smth",
  "_backup_opened_by": "twitter:smthdotuk"
}

src/_data/builtwith/z7wWovi6Xj.json (248 B)

{
  "url": "https://bram.is/",
  "source_url": "",
  "authors": [
    "bramsmulders"
  ],
  "opencollective": "",
  "business_url": "https://bram.is/available/",
  "business_name": "bram.is - Front-end UI developer",
  "opened_by": "bramsmulders"
}

src/_data/builtwith/zD_oG1ciUn.json (194 B)

{
  "url": "https://davidojeda.dev/",
  "source_url": "https://github.com/davidojedalopez/blog",
  "opened_by": "davidojedalopez",
  "_backup_opened_by": "twitter:DavidOjedaL",
  "authors": []
}

src/_data/builtwith/zF8s6fWy7d.json (234 B)

{
  "url": "https://www.slrconsulting.com/",
  "source_url": "",
  "authors": [],
  "opencollective": "ryan-gittings",
  "business_url": "https://gittings.studio/",
  "business_name": "Gittings Studio",
  "opened_by": "ryangittings"
}

src/_data/builtwith/zKsZPbDIxv.json (98 B)

{
  "url": "https://smth.uk/",
  "opened_by": "smth",
  "_backup_opened_by": "twitter:smthdotuk"
}

src/_data/builtwith/zS-fwm-ULT.json (198 B)

{
  "url": "https://okitavera.me/",
  "source_url": "https://github.com/okitavera/okitavera.netlify.app",
  "opened_by": "okitavera",
  "_backup_opened_by": "twitter:okitavera",
  "disabled": true
}

src/_data/builtwith/zSGwGUrdch.json (213 B)

{
  "url": "https://www.opt-out.ai/",
  "source_url": "https://github.com/Known-Privacy/oom",
  "authors": [],
  "opencollective": "",
  "business_url": "",
  "business_name": "",
  "opened_by": "brendanroberts"
}

src/_data/builtwith/zVBzLTxQBW.json (181 B)

{
  "url": "https://arpit.tk/",
  "source_url": "https://github.com/arpitbatra123/personal-website",
  "opened_by": "arpitbatra123",
  "_backup_opened_by": "twitter:arpitbatra123"
}

src/_data/builtwith/zXFt1Ku_kD.json (131 B)

{
  "url": "https://joomla-needed-fixes.netlify.app/",
  "opened_by": "dgrammatiko",
  "_backup_opened_by": "twitter:dgrammatiko"
}

src/_data/builtwith/zdEVYrYPDX.json (226 B)

{
  "url": "https://11tytailwindjit.netlify.app/",
  "source_url": "https://github.com/kkgthb/11ty-tailwind-jit",
  "opened_by": "kkgthb",
  "_backup_opened_by": "twitter:KatieKodes",
  "authors": [
    "twitter:MDarrik"
  ]
}

src/_data/builtwith/ziFKR5b0qR.json (279 B)

{
  "url": "https://creativitas.dev/",
  "source_url": "",
  "authors": [
    "mesinkasir"
  ],
  "opencollective": "creativitas",
  "business_url": "https://www.fiverr.com/creativitas/design-your-modern-website-using-jekyll",
  "business_name": "",
  "opened_by": "mesinkasir"
}

src/_data/builtwith/zmw_BaRSG3.json (250 B)

{
  "url": "https://www.mllongworth.com/",
  "source_url": "",
  "authors": [
    "marcfilleul"
  ],
  "opencollective": "marcfilleul",
  "business_url": "https://www.marcfilleul.fr/",
  "business_name": "Marc FILLEUL",
  "opened_by": "marcfilleul"
}

src/_data/builtwith/znYFtGDeFW.json (231 B)

{
  "url": "https://transition-creative.co.uk/",
  "opened_by": "GrantSmithDoddle",
  "_backup_opened_by": "twitter:grantsmith1974",
  "business_url": "https://transition-creative.co.uk/",
  "business_name": "Transition Creative"
}

src/_data/builtwith/zpc3ZDygk6.json (103 B)

{
  "url": "https://redfang.net/",
  "opened_by": "tkroo",
  "_backup_opened_by": "twitter:motorfang"
}

src/_data/config.js (391 B)

export default {
  outdated: false,
  prerelease: false,
  githubEdit: 'https://github.com/sibyllinesoft/sibyllinesoft.github.io/tree/main/',
  now: new Date(),
  env: process.env.NODE_ENV,
  site: {
    title: 'Sibylline Software',
    description: 'Your trusted partner for innovative digital solutions',
    url: 'https://sibyllinesoft.github.io',
    author: 'Sibylline Software'
  }
};

src/_data/templatetypes.json (1.1 KiB)

[{
	"name": "HTML",
	"ext": "html",
	"url": "/docs/languages/html/"
},{
	"name": "Markdown",
	"ext": "md",
	"url": "/docs/languages/markdown/"
},{
	"name": "WebC",
	"ext": "webc",
	"url": "/docs/languages/webc/"
},{
	"name": "JavaScript",
	"ext": "11ty.js",
	"url": "/docs/languages/javascript/"
},{
	"name": "Liquid",
	"ext": "liquid",
	"url": "/docs/languages/liquid/"
},{
	"name": "Nunjucks",
	"ext": "njk",
	"url": "/docs/languages/nunjucks/"
},{
	"name": "Handlebars",
	"ext": "hbs",
	"url": "/docs/languages/handlebars/"
},{
	"name": "Mustache",
	"ext": "mustache",
	"url": "/docs/languages/mustache/"
},{
	"name": "EJS",
	"ext": "ejs",
	"url": "/docs/languages/ejs/"
},{
	"name": "Haml",
	"ext": "haml",
	"url": "/docs/languages/haml/"
},{
	"name": "Pug",
	"ext": "pug",
	"url": "/docs/languages/pug/"
},{
	"name": "TypeScript",
	"ext": "ts",
	"url": "/docs/languages/typescript/"
},{
	"name": "JSX",
	"ext": "jsx",
	"url": "/docs/languages/jsx/"
},{
	"name": "MDX",
	"ext": "mdx",
	"url": "/docs/languages/mdx/"
},{
	"name": "Sass",
	"ext": "scss",
	"url": "/docs/languages/sass/"
},{
	"name": "Custom",
	"ext": "*",
	"url": "/docs/languages/custom/"
}]

src/_eleventy/collections.js (916 B)

/**
 * Custom Eleventy collections for the Sibylline Software website
 */

export default {
  /**
   * Published articles collection - only shows articles with published: true
   * @param {CollectionAPI} collectionApi - Eleventy collection API
   * @returns {Array} Array of published articles in reverse chronological order
   */
  articles: (collectionApi, paths) => {
    return collectionApi.getFilteredByGlob(paths.articles)
      .filter(item => item.data.published === true)
      .reverse();
  },

  /**
   * All articles collection - includes both published and unpublished articles
   * Useful for admin purposes and drafts review
   * @param {CollectionAPI} collectionApi - Eleventy collection API
   * @returns {Array} Array of all articles in reverse chronological order
   */
  allArticles: (collectionApi, paths) => {
    return collectionApi.getFilteredByGlob(paths.articles)
      .reverse();
  }
};

src/_eleventy/filters.js (1.2 KiB)

/**
 * Custom Eleventy filters for the Sibylline Software website
 */

export default {
  /**
   * Format a date object into a readable string
   * @param {Date|string} dateObj - Date to format
   * @returns {string} Formatted date string or empty string if invalid
   */
  readableDate: (dateObj) => {
    if (!dateObj) {
      return '';
    }
    const date = new Date(dateObj);
    if (isNaN(date.getTime())) {
      return '';
    }
    return date.toLocaleDateString();
  },

  /**
   * Format a date object into HTML date string (YYYY-MM-DD format)
   * @param {Date|string} dateObj - Date to format
   * @returns {string} HTML date string or empty string if invalid
   */
  htmlDateString: (dateObj) => {
    if (!dateObj) {
      return '';
    }
    const date = new Date(dateObj);
    if (isNaN(date.getTime())) {
      return '';
    }
    return date.toISOString().split('T')[0];
  },

  /**
   * Get the first n elements of an array
   * @param {Array} array - Source array
   * @param {number} n - Number of elements to take (negative values take from end)
   * @returns {Array} Array slice
   */
  head: (array, n) => {
    if (n < 0) {
      return array.slice(n);
    }
    return array.slice(0, n);
  }
};

src/_eleventy/passthrough.js (791 B)

/**
 * Passthrough copy configuration for the Sibylline Software website
 * Defines which files and directories should be copied directly to the output
 */

export default {
  /**
   * Configure all passthrough copy rules
   * @param {EleventyConfig} eleventyConfig - Eleventy configuration object
   * @param {Object} paths - Centralized paths configuration
   */
  setup: (eleventyConfig, paths) => {
    // Copy static assets
    eleventyConfig.addPassthroughCopy(paths.css);
    eleventyConfig.addPassthroughCopy(paths.img);
    eleventyConfig.addPassthroughCopy(paths.js);
    eleventyConfig.addPassthroughCopy(paths.styles);
    
    // Copy CNAME and other root files for GitHub Pages
    paths.rootFiles.forEach(file => {
      eleventyConfig.addPassthroughCopy(file);
    });
  }
};

src/_includes/11tybundle.njk (800 B)

{% if bundle %}
<p>Ɨ{{ bundle | length }} resources via <strong><a href="https://11tybundle.dev/">11tybundle.dev</a></strong> curated by {% indieweblink "Bob Monsour", "https://www.bobmonsour.com/" %}.</p>
<ul class="list-bare">
	{%- for link in bundle | head(5) %}
	<li>{% indieweblink link.Title, link.Link %} — <em>{{ link.Author }} ({{ link.Date | newsDate("yyyy") }})</em></li>
	{%- endfor %}
</ul>
{% if bundle.length > 5 %}
<details>
	<summary><strong><em>Expand to see {{ (bundle | length) - 5 }} more resources.</em></strong></summary>
	<ul class="list-bare">
		{%- for link in bundle | headafter(5) %}
		<li>{% indieweblink link.Title, link.Link %} — <em>{{ link.Author }} ({{ link.Date | newsDate("yyyy") }})</em></li>
		{%- endfor %}
	</ul>
</details>
{% endif %}
{% endif %}

src/_includes/community-contributed.njk (597 B)

<div class="sites-vert">
  <div class="lo-grid">
{% for entry in communityLinks -%}
  {%- set site = entry | convertCommunityLinkToSiteCard %}
  {% include "site-card.njk" %}
{%- endfor %}
{%- if communityLinksKey %}
{%- for key, entry in community %}
{%- if entry.key == communityLinksKey -%}
  {%- set site = entry | convertCommunityLinkToSiteCard %}
  {% include "site-card.njk" %}
{%- endif %}
{%- endfor %}
{%- endif %}
    <div class="lo-c-center">
      +&#160;<a href="{{ config.githubEdit }}src/_data/community/" class="elv-externalexempt nowrap">Add yours!</a>
    </div>
  </div>
</div>

src/_includes/components/active-background.js (865 B)

window.customElements.define(
  'active-background',
  class extends HTMLElement {
    activate(color) {
      this.classList.add('active');
      this.style.display = 'block';
      this.style.transition = '600ms background-color';
      this.style.backgroundColor = color;
    }

    deactivate() {
      this.classList.remove('active');
      this.style.backgroundColor = 'transparent';
    }

    connectedCallback() {
      for(const el of this.querySelectorAll('[data-active-background]')) {
        el.addEventListener('mouseenter', () => this.activate(el.getAttribute('data-active-background')));
        el.addEventListener('mouseleave', () => this.deactivate());

        el.addEventListener('focusin', () => this.activate(el.getAttribute('data-active-background')));
        el.addEventListener('focusout', () => this.deactivate());
      }
    }
  }
);

src/_includes/components/announcement.css (664 B)

.announcement {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	background-color: #111;
	font-weight: 500;
	padding: 0.25em 1em;
	text-align: center;
	line-height: 1;
}
@media (min-width: 48em) {
	/* 768px */
	.announcement {
		font-size: 1em;
		font-size: clamp(1em, 2vw, 1.25em);
	}
}
.announcement > a,
.announcement > span {
	display: inline-block;
	padding: 0.35em 0;
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.announcement a:hover {
	text-decoration: underline;
}
.announcement,
.announcement a,
.announcement a:visited {
	color: #eee;
}
.announcement a:after {
	display: none;
}

src/_includes/components/article-card.njk (1.3 KiB)

{# Article Card Component - expects 'article' from parent context #}

<article class="article-card-component" onclick="window.location.href='{{ article.url }}'" style="cursor: pointer;">
  <div class="article-image-sidebar">
    <img src="{{ article.data.image or '/img/default-article.jpg' }}" alt="{{ article.data.title }}">
    <div class="article-image-overlay"></div>
  </div>
  
  <div class="article-content-area">
    <div class="article-header">
      <h3 class="article-card-title"><a href="{{ article.url }}">{{ article.data.title }}</a></h3>
      <div class="article-card-meta">{% if article.data.tags %}
        <div class="article-card-tags">{% for tag in article.data.tags %}{% if tag != "articles" %}
            <span class="article-tag">{{ tag }}</span>{% endif %}{% endfor %}
        </div>{% endif %}
      </div>
    </div><div class="article-snippet">
      <time class="date-badge" datetime="{{ article.date | htmlDateString }}"><i data-lucide="calendar"></i> {{ article.date | readableDate }}</time>
      <p class="article-card-excerpt">{{ article.data.description or "Explore this article to discover insights and perspectives that could transform your understanding of the topic." }}</p>
    </div><div class="article-card-footer">
      <span class="article-card-hint">Click to learn more</span>
    </div>
  </div>
</article>

src/_includes/components/avatars.css (934 B)

.icon,
.avatar,
blockquote img {
	height: 1.3em;
	width: 1.3em;
	display: inline-block;
	vertical-align: text-top;
	margin-left: 2px;
	margin-right: 6px;
}
main .icon[height] {
	height: 1.3em;
	width: 1.3em;
	object-fit: cover;
}
.avatar-large {
	height: 1.5em;
	width: 1.5em;
}
.avatar,
blockquote img {
	border-radius: 50%;
}
.avatar-indieweb {
	border-radius: 0.25em;
}
.icon,
.avatar {
	vertical-align: middle;
}
ul:not(.list-bare):not(.inlinelist) > li > a > .avatar {
	width: auto;
	height: 1.111111111111em; /* 20px /18 */
	vertical-align: top;
	margin-left: 4px;
	margin-right: 4px;
}
ul:not(.list-bare):not(.inlinelist) > li > a > .avatar-large {
	width: 1.444444444444em; /* 26px /18 */
	height: 1.444444444444em; /* 26px /18 */
	object-fit: contain;
	margin-right: 0.3888888888889em; /* 7px /18 */
}
blockquote .bio-source {
	white-space: nowrap;
}

h1 .avatar {
	height: 0.7em;
	width: 0.7em;
	vertical-align: baseline;
}

src/_includes/components/breadcrumb.css (759 B)

.breadcrumb ol,
.breadcrumb ul {
	--fl-gap-h: 0.5em;
	list-style-type: none;
	padding: 0;
	margin: 0;
}
.breadcrumb li {
	font-size: 0.8333333333333em; /* 15px /18 */
	white-space: nowrap;
}
.breadcrumb.breadcrumb li {
	padding-top: 0;
	padding-bottom: 0;
}
/* Restore list semantics for voiceover:
 * https://unfetteredthoughts.net/2017/09/26/voiceover-and-list-style-type-none/
 */
.breadcrumb li:before {
	content: "\200B";
}
.breadcrumb li:after {
	--breadcrumb-arrow-size: 0.4em;
	display: inline-block;
	margin-left: var(--fl-gap-h);
	content: "";
	width: 0;
	height: 0;
	border-top: var(--breadcrumb-arrow-size) solid transparent;
	border-bottom: var(--breadcrumb-arrow-size) solid transparent;
	border-left: var(--breadcrumb-arrow-size) solid #bbb;
}

src/_includes/components/business-network.css (589 B)

/* Business Network */
.business-network-primary.business-network-primary {
	--fl-stackpoint: 37.5em; /* 600px /16 */
	--fl-gap-v: 1em;
}
.business-network-sites {
	padding-top: 1em;
	padding-bottom: 3em;
}
.business-network-sites:not(:last-child) {
	margin-bottom: 3em;
	border-bottom: 1px solid #666;
}
.business-network-name {
	font-size: 1.5em;
}
.business-network-available {
	padding-left: 3.230769230769em; /* 42px /13 */
	font-size: 0.7222222222222em; /* 13px /18 */
}
.business-network-hire {
	text-align: center;
}
.business-network-hire a[href] {
	padding: 0.5rem 2em 0.4rem;
}

src/_includes/components/button.html (1.9 KiB)

{# 
  Unified Button Component
  Usage examples:
  - Primary: include "components/button.html", text: "Discover What's Possible", icon: "mail", href: "#discovery"
  - Secondary: include "components/button.html", text: "Learn My Approach", icon: "user", href: "/about/", variant: "secondary" 
  - Dark: include "components/button.html", text: "Get Started", variant: "dark"
#}

{% set buttonClass = "btn-primary" %}
{% if variant == "secondary" %}
  {% set buttonClass = "btn-secondary" %}
{% elif variant == "dark" %}
  {% set buttonClass = "btn-dark" %}
{% endif %}

{% if href %}
<a class="btn-unified {{ buttonClass }}{% if size %} btn-{{ size }}{% endif %}{% if block %} btn-block{% endif %}{% if additionalClasses %} {{ additionalClasses }}{% endif %}"
   href="{{ href }}"
   {% if target %}target="{{ target }}"{% endif %}
   {% if rel %}rel="{{ rel }}"{% endif %}
   {% if id %}id="{{ id }}"{% endif %}
   {% if ariaLabel %}aria-label="{{ ariaLabel }}"{% endif %}
   {% if dataAttributes %}
     {% for attr, value in dataAttributes %}
       data-{{ attr }}="{{ value }}"
     {% endfor %}
   {% endif %}>
  <span class="btn-inner">
    {{ text }}
    {% if icon %}
      <i data-lucide="{{ icon }}"></i>
    {% endif %}
  </span>
</a>
{% else %}
<button class="btn-unified {{ buttonClass }}{% if size %} btn-{{ size }}{% endif %}{% if block %} btn-block{% endif %}{% if additionalClasses %} {{ additionalClasses }}{% endif %}"
        {% if type %}type="{{ type }}"{% endif %}
        {% if id %}id="{{ id }}"{% endif %}
        {% if disabled %}disabled{% endif %}
        {% if ariaLabel %}aria-label="{{ ariaLabel }}"{% endif %}
        {% if dataAttributes %}
          {% for attr, value in dataAttributes %}
            data-{{ attr }}="{{ value }}"
          {% endfor %}
        {% endif %}>
  <span class="btn-inner">
    {{ text }}
    {% if icon %}
      <i data-lucide="{{ icon }}"></i>
    {% endif %}
  </span>
</button>
{% endif %}

src/_includes/components/callout.css (6.1 KiB)

/* Warning */
.elv-callout {
	--callout-primary: hsl(195, 100%, 75%);
	--callout-primarytext: #000;
	--callout-secondary: #dff7ff;
	line-height: 1.5;
	margin-inline: -1rem;
	margin-block: 1em;
	background-color: var(--callout-secondary);
	border: 3px solid var(--callout-border, var(--callout-primary));
}
details .elv-callout {
	margin-left: 0;
	margin-right: 0;
}
.elv-callout-box {
	--callout-primary: #dff7ff;
	--callout-primarytext: #000;
	--callout-secondary: #f2fcff;
}
@media (min-width: 55em) {
	/* 880px */
	.elv-callout {
		border-radius: 0.3em;
	}
}
@media (prefers-color-scheme: dark) {
	.elv-callout {
		--callout-primary: hsl(195, 100%, 22%);
		--callout-secondary: hsl(195, 100%, 12%);
		--callout-primarytext: #fff;
	}
	.elv-callout,
	.elv-callout a {
		color: #fff;
	}
}
table .elv-callout {
	margin-left: 0;
	margin-right: 0;
	margin-bottom: 1em;
}

.elv-callout-c {
	padding: 0.75em 1em; /* 12px 16px /16 */
}

.elv-callout-c > p:first-child,
.elv-callout-c > ul:first-child,
.elv-callout-c > ol:first-child {
	margin-top: 0;
}
.elv-callout-c > p:last-child,
.elv-callout-c > ul:last-child,
.elv-callout-c > ol:last-child {
	margin-bottom: 0;
}


.elv-callout {
	display: flex;
	flex-direction: column;
}

.elv-callout-demo {
	position: relative;
}
.elv-callout-label {
	align-self: flex-start;
	font-size: 0.9375em; /* 15px /16 */
	font-weight: 600;
}
.elv-callout-label,
.elv-callout-demo:before,
.elv-callout-demo:after {
	margin: 0;
	margin-right: 0.5em;
	border-radius: 0 0 0.3em 0;
	align-items: center;
	padding: 0 0.55em;
}
.elv-callout-demo:before,
.elv-callout-demo:after {
	display: inline-flex;
	position: absolute;
	left: 0;
	top: 0;
	font-size: 0.8125em; /* 13px /16 */
	font-weight: 800;
}
.elv-callout-label,
.elv-callout-demo:before,
.elv-callout:not(.elv-callout-demo) :not(pre) > code {
	background-color: var(--callout-tag, var(--callout-primary));
	color: var(--callout-primarytext);
}
.elv-callout a,
.elv-callout :visited {
	color: var(--callout-primarytext);
}
.elv-callout pre {
	margin-top: 1em;
	margin-bottom: 1em;
}

.elv-callout-label:first-child:last-child {
	font-size: 1.2em;
	background-color: transparent;
}

/* Error */
.elv-callout-error {
	--callout-primary: hsl(0, 100%, 77%);
	--callout-secondary: hsl(0, 100%, 90%);
}
@media (prefers-color-scheme: dark) {
	.elv-callout-error {
		--callout-primary: hsl(0, 100%, 22%);
		--callout-secondary: hsl(0, 100%, 12%);
	}
}
/* Warning */
.elv-callout-warn {
	--callout-primary: hsl(60, 100%, 62%);
	--callout-secondary: hsl(60, 100%, 85%);
}
@media (prefers-color-scheme: dark) {
	.elv-callout-warn {
		--callout-primary: hsl(53, 100%, 29%);
		--callout-secondary: hsl(53, 100%, 13%);
	}
}
/* Demo */
.elv-callout-demo {
	--callout-primary: transparent;
	--callout-secondary: hsl(270deg 50% 90%);
	--callout-tag: rebeccapurple;
	--callout-border: rebeccapurple;
	overflow: hidden;
	padding-left: 3.888888888889em; /* 70px /18 */
}
@media (prefers-color-scheme: dark) {
	.elv-callout-demo {
		--callout-primary: hsl(270deg 50% 30%);
		--callout-secondary: hsl(270deg 50% 30%);
		--callout-tag: hsl(270deg 50% 85%);
		--callout-primarytext: #fff;
		--callout-border: rebeccapurple;
	}
	.elv-callout-demo code {
		background-color: hsl(270deg 50% 15%);
	}
}
.elv-callout-demo:after {
	display: none;
}
@media (min-width: 37.5em) {
	/* 600px */
	.elv-callout-demo {
		padding-right: 3.888888888889em; /* 70px /18 */
	}
	.elv-callout-demo:after {
		display: block;
	}
}
.elv-callout-demo:before,
.elv-callout-demo:after {
	content: "DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO ";
	content: "DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO DEMO " / " Demo ";
	width: min-content;
	overflow: hidden;
	top: -2em;
	bottom: -1em;
	border-radius: 0;
	background-color: var(--callout-primary);
	color: var(--callout-tag);
	font-weight: 700;
	transform: skewY(-13deg);
	padding: 0 0.2857142857143em; /* 4px /14 */
	margin: 0;
}
.elv-callout-demo:after {
	right: 0;
	left: auto;
	margin-right: 0;
	margin-left: 0.5em;
	transform: skewY(13deg);
}

/* Style the content inside of the callout */
.elv-callout > :first-child {
	margin-top: 0;
}
.elv-callout > :last-child {
	margin-bottom: 0;
}

/* Sticky callout is for legacy docs versions */
body > .elv-callout-sticky .elv-callout-label {
	display: none;
}
body > .elv-callout-sticky .elv-callout {
	margin: 0;
	border-left: 0;
	border-right: 0;
	border-radius: 0;
	margin-bottom: 1em;
}
body > .elv-callout-sticky .elv-callout-c {
	text-align: center;
	text-wrap: balance;
}
@media (min-height: 43.75em) { /* 700px */
	body > .elv-callout-sticky {
		position: sticky;
		top: 0;
		z-index: 12;
		box-shadow: 0 3px 0 0 rgba(0, 0, 0, 0.08);
	}
}

/* in left nav */
.elv-toc .elv-callout {
	margin-block-start: 0;
}
.elv-toc .elv-callout-c {
	flex-grow: 1;
}
.elv-toc .elv-callout-label {
	margin-inline-end: 0;
}
@media (max-width: 54.9375em) { /* 880px - 1 */
	.elv-toc .elv-callout {
		border-inline-width: 0;
	}
	.elv-toc .elv-callout {
		display: none;
	}
}
@media (min-width: 55em) { /* 880px */
	.elv-toc .elv-callout:first-child {
		display: flex;
		flex-direction: row;
	}
	.elv-toc .elv-callout-label,
	.elv-toc .elv-callout-c {
		padding-inline-start: 1.25rem; /* 20px /16 */
	}
	.elv-toc .elv-callout {
		margin-right: 0;
		margin-left: -1rem;
		font-size: 0.875em; /* 14px /16 */
		line-height: 2;
	}
}
@media (min-width: 55em) and (max-width: 70.625em) {
	/* 880px–1130px */
	.elv-toc .elv-callout {
		border-left: 0;
		border-top-left-radius: 0;
		border-bottom-left-radius: 0;
	}
}

.versions-callout small {
	margin-inline-start: .5em;
}

src/_includes/components/code-more.css (1.4 KiB)

.highlight-line {
	display: inline-block;

	/* del, ins, mark default styles */
	text-decoration: none;
	color: inherit;
}

/* allow highlighting empty lines */
.highlight-line:empty:before {
	content: " ";
}

.highlight-line {
	min-width: 100%;
}
.highlight-line .highlight-line {
	min-width: 0;
}

.highlight-line-isdir {
	color: #b0b0b0;
	background-color: #222;
}
.highlight-line-active {
	background-color: #444;
	background-color: hsla(0, 0%, 27%, 0.8);
}
.highlight-line-add {
	background-color: #45844b;
}
.highlight-line-remove {
	background-color: #902f2f;
}

[data-preprefix-cmdhomedir] .highlight-line:first-child:before {
	color: #aaa;
	content: "~ $ ";
}
[data-preprefix-eleventysample] .highlight-line:first-child:before {
	color: #aaa;
	content: "~/eleventy-sample $ ";
}
[data-preprefix-lastlinegreen] .highlight-line:last-child,
[data-preprefix-lastlinegreen] .highlight-line:last-child * {
	color: #0dbc79 !important;
}

pre[class*="language-diff-"] {
	padding-left: 0;
	padding-right: 0;
}
.token.deleted {
	background-color: hsl(350deg 100% 88% / 20%);
}
.token.inserted {
	background-color: hsl(120deg 73% 75% / 20%);
}
.token.inserted:not(.prefix),
.token.deleted:not(.prefix) {
	display: block;
}
.token.prefix.unchanged,
.token.prefix.inserted,
.token.prefix.deleted {
	-webkit-user-select: none;
	user-select: none;
	margin-right: 0.5em;
	padding: 0 0.2em;
}

src/_includes/components/code.css (1.0 KiB)

/* Syntax highlighting and Code blocks */
pre {
	display: block;
	padding: 0.75rem 1rem;
	margin: 1em -1rem;
	line-height: 1.5;

	overflow-x: auto;
	font-family: Roboto Mono, Consolas, Monaco, Andale Mono, Ubuntu Mono,
		monospace;

	-moz-tab-size: 2;
	-o-tab-size: 2;
	tab-size: 2;

	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;

	background-color: #272822;
	color: #fff;
}

.fl > * > pre {
	margin-top: 0;
}
pre code {
	border-radius: 0;
}
pre > code {
	background-color: inherit;
	padding: 0;
	font-family: inherit;
}
pre + pre[class*="language-"] {
	margin-top: 1em;
}
pre + .note {
	font-size: 0.6666666666667em; /* 16px /24 */
	margin-top: -2.875em; /* 46px /16 */
	margin-bottom: 2.5em; /* 40px /16 */
	text-align: right;
}
@media (prefers-color-scheme: dark) {
	pre {
		background-color: #000;
		color: #fff;
	}
	pre code {
		color: unset;
	}
}
@media (min-width: 37.5em) {
	/* 600px */
	pre {
		font-size: 1em; /* 16px /16 */
	}
}
@media (min-width: 55em) {
	/* 880px */
	pre {
		border-radius: 0.3em;
	}
}

src/_includes/components/codetitle.css (1.4 KiB)

.codetitle {
	clear: right;
	float: right;
	padding: 0.25em 0 0.25em 0.5em;
	border-radius: 0.25em 0.25em 0 0;
	font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
	font-size: 0.75em; /* 12px /16 */
}
@media (max-width: 31.1875em) { /* 499px */
	.codetitle-right-md {
		float: none;
		clear: both;
		padding-inline-start: 0;
	}
	.codetitle-right-md + is-land > seven-minute-tabs {
		margin-block-start: .5em;
	}
}
.codetitle-left {
	float: left;
	clear: left;
	padding-left: 0;
	padding-right: 0.5em;
}
.codetitle b {
	text-transform: uppercase;
	font-size: 0.6875rem; /* 11px /16 */
	margin-right: 0.5em;
	color: #666;
	font-weight: 100;
}
@media (prefers-color-scheme: dark) {
	.codetitle b {
		color: #aaa;
	}
}
.codetitle + pre {
	clear: both;
}
.codetitle + pre,
.codetitle + .minilink + pre {
	margin-top: 0;
}
.codetitle + div:has(> is-land) {
	clear: both;
}
.codetitle + div:has(> is-land) :is(eleventy-editor, pre) {
	margin-top: 0;
}
.codetitle + .minilink {
	float: right;
	margin: 0 2em 0 0;
	padding: 0.25em 0;
	background-color: transparent;
	border-width: 0;
	box-shadow: none;
	font-size: 0.75em; /* 12px /16 */
	font-weight: 100;
}
.codetitle + .minilink:before {
	content: "šŸ’« ";
}
.codetitle-left + .minilink {
	float: left;
	margin-left: 1em;
	margin-right: 0;
	position: relative;
	bottom: -2px;
}
.codetitle-left + .codetitle-left {
	clear: none;
	margin-left: 2em;
}

src/_includes/components/details-force-state.js (1.2 KiB)

class DetailsForceState extends HTMLElement {
  forceState(details, forceClosed) {
    let isSectionActive;
    if(forceClosed) {
      isSectionActive = false;
    } else {
      // Start all sections collapsed by default
      isSectionActive = false;
      const titleNode = details.previousElementSibling;
      if(document.location.pathname === '/' && !titleNode) {
        isSectionActive = true;
      }
      // Keep sections collapsed even if they contain active pages
      // Users can manually expand sections they need
    }

    if (isSectionActive) {
      if(!details.open) {
        details.setAttribute('open', 'open');
      }
    } else {
      if(details.open) {
        details.removeAttribute('open');
      }
    }
  }

  connectedCallback() {
    const details = this.querySelectorAll(':scope details');
    const forceClosed = this.getAttribute('data-force-closed');
    for(const d of details) {
      const mm1 = window.matchMedia(forceClosed);
      this.forceState(d, mm1.matches);
      mm1.addListener(e => {
        this.forceState(d, e.matches);
      });
    }
  }
}

if ('customElements' in window) {
  customElements.define('details-force-state', DetailsForceState);
}

src/_includes/components/disabled-form.js (227 B)

window.customElements.define(
  'disabled-form',
  class extends HTMLElement {
    connectedCallback() {
      for(const el of this.querySelectorAll('[disabled]')) {
        el.removeAttribute('disabled');
      }
    }
  }
);

src/_includes/components/docs-toc.njk (2.0 KiB)

<div class="elv-toc" data-pagefind-ignore>
{%- set calloutTitle %}<a href="/blog/">Blog</a>{% endset %}
{%- for post in collections.sidebarHighlight %}
{%- callout "", "html", calloutTitle %}
<a href="{{ post.url }}" class="elv-toc-callout-link"><strong>{{ post.data.title }}</strong></a>
{%- endcallout %}
{%- endfor %}

{%- set versionsTitle = "<a href='/docs/versions/'>Versions</a>" %}
{%- callout "box", "html", versionsTitle -%}
	<dl class="versions-callout">
		<dt>Stable</dt>
		<dd><a href="https://github.com/11ty/eleventy/releases/tag/v{{ npmVersions.latest }}" class="elv-externalexempt"><code>{{ npmVersions.latest }}</code>{# <small>{{ githubReleases[ npmVersions.latest | normalizeVersion ].date | timeDiff }}</small> #}</a></dd>
		{%- if semverGreaterThan(npmVersions.beta, npmVersions.latest) %}
		<dt>Beta</dt>
		<dd><a href="https://github.com/11ty/eleventy/releases/tag/v{{ npmVersions.beta }}" class="elv-externalexempt"><code>{{ npmVersions.beta }}</code>{# <small>{{ githubReleases[ npmVersions.beta | normalizeVersion ].date | timeDiff }}</small> #}</a></dd>
		{%- endif %}
		{%- if semverGreaterThan(npmVersions.canary, npmVersions.latest) and semverGreaterThan(npmVersions.canary, npmVersions.beta) %}
		<dt>Canary</dt>
		<dd><a href="https://github.com/11ty/eleventy/releases/tag/v{{ npmVersions.canary }}" class="elv-externalexempt"><code>{{ npmVersions.canary }}</code>{# <small>{{ githubReleases[ npmVersions.canary | normalizeVersion ].date | timeDiff }}</small> #}</a></dd>
		{%- endif %}
	</dl>
{%- endcallout %}

<details-force-state class="elv-toc-c" data-force-closed="(max-width: 54.9375em)">
	{%- if eleventyNavigation -%}
		{%- set navKey = eleventyNavigation.key -%}
	{%- endif -%}
	<div id="skip-nav">
		{{ "Eleventy Documentation,Ecosystem" | navFiltered | eleventyNavigationToHtml({ activeKey: navKey, listClass: 'elv-toc-list', activeListItemClass: 'elv-toc-active', useTopLevelDetails: true, anchorElementWithoutHref: "span" }) | safe }}
	</div>
</details-force-state>
</div>

src/_includes/components/editor.css (1.6 KiB)

/* Only pre-JS */
is-land--eleventy-editor {
	cursor: pointer;
}
/* Only constrain height with JS (we’re enhancing from <pre>) */
is-land--eleventy-editor pre {
	max-height: 45vh;
	overflow: hidden;
}
is-land--eleventy-editor pre:before {
	content: "";
	pointer-events: none;
	position: absolute;
	inset: 0;
	background-color: var(--edit-curtain);
}

/* pre-JS and no-JS */
:is(is-land--eleventy-editor, eleventy-editor:not(:defined)) {
	--edit-bg: rgba(0,0,0,.4);
	--edit-color: #fff;
	display: block;
	position: relative;
}

:is(is-land--eleventy-editor, eleventy-editor:not(:defined)):hover {
	--edit-curtain: rgba(255,255,255,.1);
	--edit-bg: rgb(255, 216, 72);
	--edit-color: #000;
}

:is(is-land--eleventy-editor, eleventy-editor:not(:defined)):hover pre {
	outline: 4px solid var(--edit-bg);
}

:is(is-land--eleventy-editor, eleventy-editor:not(:defined)) pre {
	position: relative;
	margin: 1em -1rem;
}

:is(is-land--eleventy-editor, eleventy-editor:not(:defined)):after {
	pointer-events: none;
	position: absolute;
	content: "Run";
	top: 0;
	right: -1rem;
	font-weight: 600;
	line-height: 1;
	padding: .75rem;
	background-color: var(--edit-bg);
	color: var(--edit-color);
	border-top-right-radius: .3em;
	border-bottom-left-radius: .3em;
}

:is(is-land--eleventy-editor, eleventy-editor:not(:defined))[label]:after {
	content: attr(label);
}

eleventy-editor:defined {
	margin: 1em -1rem;
}
@media (max-width: 54.9375em) { /* 879px */
	eleventy-editor {
		--border-radius: 0;
	}
}

/* No-JS */
eleventy-editor:not(:defined):after,
eleventy-editor:not(:defined)[label]:after {
	content: "Run requires JavaScript"
}

src/_includes/components/embeds.css (1.0 KiB)

lite-youtube,
is-land--lite-youtube {
	max-width: 100%;
	border-radius: 0.5em;
	overflow: hidden;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: 0 0;
}
/* Plugin bug: clicking the red youtube play icon in the center would navigate to youtube.com */
lite-youtube:defined > .lty-playbtn {
	pointer-events: none;
}

/* Related video list */
.youtube-related {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	margin: 2em 0;
}
.youtube-related > * {
	flex-grow: 1;
	flex-basis: 12em;
}
.youtube-related > :first-child:last-child {
	max-width: 22em;
}
.elv-callout .youtube-related {
	margin: 0.5em 0;
}
.elv-callout .youtube-related > :first-child:last-child {
	max-width: 14em;
}

/* Watch on YouTube link */
lite-youtube + a[href],
is-land--lite-youtube + a[href] {
	display: block;
	text-align: center;
	font-size: 0.875em; /* 14px /16 */
	margin-top: 0.2857142857143em; /* 4px /14 */
}

/* Fluid is-land videos */
is-land.fluid,
is-land.fluid is-land--lite-youtube,
is-land.fluid lite-youtube {
	display: block;
	aspect-ratio: 16 / 9;
}

src/_includes/components/facepile.css (3.4 KiB)

/* Featured sites */
.facepile {
	margin-top: 2em;
	margin-bottom: 3em;
	line-height: 2;
	padding: 0 0 0 25px;
}
.facepile > a {
	display: inline-block;
	margin-left: -25px;
}
.supporters-silver .facepile {
	text-align: center;
	text-wrap: balance; /* Not supported with display: inline-block on FF yet */
}
.supporters-silver .facepile > a ~ a {
	margin-left: 0;
}
.supporters-silver .facepile .avatar {
	border-radius: .25em;
	border-width: 0;
	box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.08);
}

.facepile > a:focus,
.facepile > a:hover {
	opacity: 1;
	position: relative;
	z-index: 1;
}
.facepile .avatar {
	width: 24px;
	height: 24px;
	width: calc(24px + 4vw);
	height: calc(24px + 4vw);
	max-width: 50px;
	max-height: 50px;
	margin-bottom: 6px;
	color: #fff;
	border: 2px solid;
	transition: border 0.3s;
	object-fit: contain;
}
@media (prefers-color-scheme: dark) {
	.facepile .avatar {
		color: #222;
	}
}
.facepile-supporters .avatar {
	width: calc(24px + 2vw);
	height: calc(24px + 2vw);
}
.facepile > a:after {
	content: "";
	position: absolute;
	border-radius: 50%;
	z-index: -1;
	pointer-events: none;
	opacity: 0;
}
.facepile > a:focus:after,
.facepile > a:hover:after {
	left: -24px; /* Right - 4px */
	right: -20px;
	top: -24px; /* Right - 4px */
	bottom: -20px;
	opacity: 0.6;
	background-color: currentColor;
	background-image: linear-gradient(
		238deg,
		#ff0000,
		#ff8000,
		#ffff00,
		#80ff00,
		#00ff00,
		#00ff80,
		#00ffff,
		#0080ff,
		#0000ff,
		#8000ff,
		#ff0080
	);
	background-size: 1200% 1200%;
	background-position: 0 80%;
}
.facepile > a:nth-child(11n + 1):focus:after,
.facepile > a:nth-child(11n + 1):hover:after {
	background-position: 0% 80%;
}
.facepile > a:nth-child(11n + 2):focus:after,
.facepile > a:nth-child(11n + 2):hover:after {
	background-position: 9% 80%;
}
.facepile > a:nth-child(11n + 3):focus:after,
.facepile > a:nth-child(11n + 3):hover:after {
	background-position: 18% 80%;
}
.facepile > a:nth-child(11n + 4):focus:after,
.facepile > a:nth-child(11n + 4):hover:after {
	background-position: 27% 80%;
}
.facepile > a:nth-child(11n + 5):focus:after,
.facepile > a:nth-child(11n + 5):hover:after {
	background-position: 36% 80%;
}
.facepile > a:nth-child(11n + 6):focus:after,
.facepile > a:nth-child(11n + 6):hover:after {
	background-position: 45% 80%;
}
.facepile > a:nth-child(11n + 7):focus:after,
.facepile > a:nth-child(11n + 7):hover:after {
	background-position: 54% 80%;
}
.facepile > a:nth-child(11n + 8):focus:after,
.facepile > a:nth-child(11n + 8):hover:after {
	background-position: 63% 80%;
}
.facepile > a:nth-child(11n + 9):focus:after,
.facepile > a:nth-child(11n + 9):hover:after {
	background-position: 72% 80%;
}
.facepile > a:nth-child(11n + 10):focus:after,
.facepile > a:nth-child(11n + 10):hover:after {
	background-position: 81% 80%;
}
.facepile > a:nth-child(11n + 11):focus:after,
.facepile > a:nth-child(11n + 11):hover:after {
	background-position: 90% 80%;
}

.facepile-fake .avatar {
	background-color: #eee;
}

/* Filter out gold sponsors when the giant logos are adjacent (in the footer, everywhere but the home page) */
.facepile-supporters [data-supporters-tier="gold-sponsor"],
.facepile-supporters [data-supporters-tier="silver-sponsor"] {
	display: none;
}
[show-gold-sponsors] .facepile-supporters [data-supporters-tier="gold-sponsor"],
[show-silver-sponsors] .facepile-supporters [data-supporters-tier="silver-sponsor"] {
	display: inline-block;
}

.facepile > a:has(img.avatar:not([src])) {
	display: none;
}

src/_includes/components/flex-luthor/flex-luthor-separators.css (992 B)

/* Separators */
@supports (clip-path: inset(0px 0px)) or (-webkit-clip-path: inset(0px 0px)) {
	.fl-separator-v,
	.fl-separator-h {
		-webkit-clip-path: inset(0 0 0 0);
		clip-path: inset(0 0 0 0);
	}
	.fl-separator-v > *,
	.fl-separator-h > * {
		position: relative;
	}
	.fl-separator-h > *:before {
		content: "";
		position: absolute;
		left: calc(-0.5 * var(--fl-gap-h, 0) - 0.5px);
		top: 0;
		bottom: 0;
		border-left: 1px solid
			var(
				--fl-separator-h-color,
				var(--fl-separator-color, rgba(162, 208, 239, 0.35))
			);
	}
	.fl-separator-v > *:after {
		content: "";
		position: absolute;
		left: 0;
		top: calc(-0.5 * var(--fl-gap-v, 0) - 1px);
		right: 0;
		border-top: 1px solid
			var(
				--fl-separator-v-color,
				var(--fl-separator-color, rgba(162, 208, 239, 0.35))
			);
	}
	.fl-separator-v *:before {
		top: calc(-0.5 * var(--fl-gap-h, 0));
		bottom: calc(-0.5 * var(--fl-gap-h, 0) + 1px);
	}
	.fl-separator-v > *:after {
		left: calc(-1 * var(--fl-gap-v, 0));
	}
}

src/_includes/components/flex-luthor/flex-luthor.css (1.1 KiB)

/* Layout component code */
.fl {
	/* The custom properties should not inherit from parent layouts */
	--fl-stackpoint: initial;
	--fl-gap-h: 1em; /* This needs to have a unit for calc() below */
	--fl-gap-v: 0.5em; /* This needs to have a unit for calc() below */
	display: flex;
	flex-wrap: wrap;
	gap: var(--fl-gap-v, 0px) var(--fl-gap-h, 0px);
}
.fl > * {
	/* if a margin is in play, account for this in our stackpoint calculations */
	/* notably this will also work if a stackpoint is not used. */
	--fl-gap-mod: calc(
		var(--fl-stackpoint, -1 * var(--fl-gap-h, 0px)) - var(--fl-stackpoint, 0px)
	);
	--fl-stackpoint-calc: calc(
		(var(--fl-stackpoint, 100%) - 100% + var(--fl-gap-mod, 0px)) * 999
	);

	flex-grow: 1;
	/* This will always have a value, due to CSS variable defaults set in .fl above */
	flex-basis: var(--fl-stackpoint-calc);
}
/* Prefer to wrap cells before content */
.fl-nowrap > *,
.fl-cell-wrap {
	/* or for an individual cell */
	flex-basis: auto;
}

/* Flex layout inline */
.fl-inline > * {
	flex-grow: 0;
}

/* Debug */
.fl-debug > * {
	outline: 1px dotted rgba(0, 0, 0, 0.4);
	outline-offset: -1px;
}

.fl-center {
	align-items: center;
}

src/_includes/components/fonts.css (889 B)

@font-face {
	font-family: BenchNine;
	src: url("/css/fonts/benchnine-bold.woff2") format("woff2");
	font-weight: 700;
	font-display: swap;
	unicode-range: U+20-7E,U+D6,U+D8,U+E9,U+F4,U+F6,U+F8,U+15A,U+200B,U+2014,U+2019,U+2026;
}

/* latin */
@font-face {
	font-family: Roboto Mono;
	src: url("/css/fonts/robotomono-regular.woff2") format('woff2');
	font-display: swap;
	unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* latin-ext */
@font-face {
	font-family: Roboto Mono;
	font-display: swap;
	src: url("/css/fonts/robotomono-regular-ext.woff2") format('woff2');
	unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

src/_includes/components/forms.css (1.7 KiB)

label.radio-align,
input[type="radio"] + label {
	vertical-align: middle;
}
input[type="checkbox"] {
	width: 1.4em;
	height: 1.4em;
}

/* Big primary button */
.btn-form,
.btn-primary {
	cursor: pointer;
	border: 2px solid;
	font-size: 1em;
	text-align: center;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	background-color: inherit;
}
@media (prefers-color-scheme: dark) {
	.btn-form {
		background-color: #000;
		border-color: transparent;
	}
}
.btn-form {
	border-radius: 1em;
	padding-left: 0.75em;
	padding-right: 0.75em;
	box-shadow: 0 4px 3px -3px #000;
}
.btn-primary {
	display: block;
	border-radius: 1.5em;
	margin: 0;
	padding: 0.5em 1em 0.4em;
	box-shadow: 0 8px 6px -6px #000;
}

.btn-form:hover,
.btn-form:focus,
.btn-primary:hover {
	border-color: transparent;
	background-color: #222;
	color: #fff;
}
@media (prefers-color-scheme: dark) {
	.btn-form:focus,
	.btn-form:hover {
		background-color: #fff;
		color: #222;
	}
}
.btn-primary:hover {
	border-color: rgba(255, 255, 255, 0.3);
}
.btn-primary span {
	text-transform: none;
}
.btn-c {
	margin-left: auto;
	margin-right: auto;
}
@media (min-width: 20em) {
	.btn-primary {
		font-size: 6vw;
	}
	.btn-primary-sm,
	.btn-primary-standard {
		font-size: 1.4em;
	}
}
@media (min-width: 28.125em) {
	/* 450px */
	.btn-primary-sm {
		font-size: 5.6vw;
	}
	.btn-primary-standard {
		font-size: 4vw;
	}
}
@media (min-width: 53.125em) {
	/* 850px */
	.btn-primary-sm {
		font-size: 2.666666666667em; /* 48px /18 */
	}
	.btn-primary-standard {
		font-size: 1.666666666667em; /* 30px /18 */
	}
}
@media (min-width: 87.5em) {
	/* 1400px */
	.btn-primary {
		font-size: 5.25em; /* 84px /16 */
	}
}
.btn-primary-nogrow {
	font-size: 1.4em;
}

src/_includes/components/grid-layout.css (340 B)

/* Grid alternative */
.lo-grid {
	--lo-grid-repeat: auto-fit;
	display: grid;
	margin: 0;
	grid-template-columns: repeat(
		var(--lo-grid-repeat),
		minmax(var(--lo-c-minwidth), 1fr)
	);
	grid-row-gap: var(--fl-gap-v, 0);
	grid-column-gap: var(--fl-gap-h, 0);
}
.lo-grid-fill {
	--lo-grid-repeat: auto-fill;
}
.lo-grid > * {
	margin: 0;
}

src/_includes/components/header.css (5.3 KiB)

/* Header */
.elv-menu {
	background-color: rgba(255, 255, 255, .65);
	color: var(--color);
	border: 1px solid var(--border-color);
	border-left: none;
	border-right: none;
	backdrop-filter: blur(15px);
}
.elv-header-docs .elv-menu:has(active-background.active) {
	/* let the backdrop-filter work with active-background too */
	background-color: transparent;
}
:where(.elv-menu) a,
:where(.elv-menu) a:visited,
:where(.elv-menu) a[href] {
	color: inherit;
}
/* Dark mode menu on home page */
.elv-header-default .elv-menu {
	background-color: #222;
	border-color: transparent;
}
.elv-header-default .elv-menu {
	color: var(--color_dark);
}
@media (prefers-color-scheme: dark) {
	.elv-menu {
		background-color: rgba(0,0,0,.65);
	}
}
.elv-header {
	position: relative;
}
.elv-hed,
.elv-nav-header {
	width: 100%;
	margin: 0 auto;
}
.elv-nav-header {
	padding-left: 1rem;
	padding-right: 1rem;
}
@media (min-width: 55em) { /* 880px */
	.elv-nav-header {
		margin-block-end: 1rem;
	}
}
.elv-nav-menu {
	padding-left: 1rem;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	margin-left: auto;
	margin-right: auto;
}
@media (min-width: 55em) { /* 880px */
	.elv-nav-menu.elv-nav-menu {
		flex-wrap: nowrap;
		white-space: nowrap;
	}
}
.elv-hed,
.elv-nav-header,
.elv-nav-menu {
	max-width: calc(var(--layout-max));
}
.elv-nav-menu-logo {
	display: block;
	width: 2em;
	height: 2em;
	max-height: 2em;
	background-color: #222;
	text-align: center;
	border-radius: .15em;
}
.elv-nav-menu-logo svg {
	width: auto;
	height: 2em;
	transform: scale(1.25);
}
/* Full width logo */
.elv-header-default .elv-nav-header {
	max-width: none;
}

/* Make room for the possum */
.elv-nav-menu {
	padding-right: 1rem;
}
@media (min-width: 34.4375em) and (max-width: 74.9375em) { /* 551px–1199px */
	.elv-header-docs .elv-nav-menu {
		padding-right: 4em;
	}
}
/* Sticky */
@media (min-width: 55em) and (min-height: 37.5em) { /* 880px Ɨ 600px */
	/* Take care with the sticky toc too */
	.elv-header.elv-header-docs {
		position: sticky;
		top: 0;
		z-index: 2;
	}
	:root:has(.elv-header.elv-header-docs, :target) {
		scroll-padding-top: 3.75em; /* 60px /16 */
	}
	/* Leave extra room for tabs links */
	:root:has(.elv-header.elv-header-docs, [role="tabpanel"]:target) {
		scroll-padding-top: 6em;
	}
}

.elv-nav-menu {
	--search-bg: rgba(255,255,255,.8);
	--search-icon: rgba(0,0,0,.4);
	--search-border: rgba(0,0,0,.2);
	--search-text: #000;
	--search-radius: 1rem;
}
@media (prefers-color-scheme: dark) {
	.elv-nav-menu {
		--search-bg: rgba(0,0,0,.8);
		--search-icon: rgba(255,255,255,.4);
		--search-border: rgba(255,255,255,.2);
		--search-text: #fff;
	}
}
.elv-header-default .elv-nav-menu {
	--search-bg: rgba(0,0,0,.8);
	--search-icon: rgba(255,255,255,.4);
	--search-border: rgba(255,255,255,.2);
	--search-text: #fff;
}

.elv-nav-menu form {
	color: var(--search-text);
}
@media (min-width: 67.5em) { /* 1080px */
	.elv-nav-menu form {
		margin-inline: 2em;
	}
}
.elv-nav-menu input[type="search"] {
	font: inherit;
	font-size: 0.9375em; /* 15px /16 */
	border: 1px solid var(--search-border);
	border-radius: var(--search-radius);
	padding-inline: var(--search-radius) 2.75em;
	width: 100%;
	min-width: 9.333333333333em; /* 140px /15 */
	color: inherit;
	background-color: var(--search-bg);
}
.elv-nav-menu button {
	font-size: .75em;
	margin: 0;
	padding-inline: .75em;
	border-radius: var(--search-radius);
	border: none;
	color: var(--search-icon);
	background-color: transparent;
}
.elv-nav-menu .util-stack > button {
	place-self: end;
	height: 100%;
}

.elv-header-docs:before,
.elv-header-docs:after {
	content: " ";
	display: table;
}
.elv-header-docs:after {
	clear: both;
}

/* Header Hero */
.elv-hero {
	display: block;
	background-color: #222;
	font-family: BenchNine, system-ui, sans-serif;
	text-decoration: none;
	font-weight: 700;
}
a[href].elv-hero,
a[href].elv-hero:visited {
	color: #fff;
}
@media (prefers-color-scheme: dark) {
	.elv-hero {
		background-color: #292929;
	}
}
.elv-hero img,
.elv-hero svg {
	display: block;
	width: 60vh;
	height: 60vh;
	max-width: 100%;
}
.elv-hero:hover img,
.elv-hero:hover svg {
	background-color: inherit;
}
.elv-header-default .elv-hero {
	display: flex;
	justify-content: center;
	width: calc(100% + 2rem);
	margin-left: -1rem;
	margin-right: -1rem;
}
.elv-hero:hover {
	background-color: #333;
}

.elv-header-docs .elv-hero {
	float: left;
	margin-right: 0.5em;
}
.elv-header-default .elv-hero img,
.elv-header-default .elv-hero svg {
	position: relative;
	background-color: transparent;
	z-index: 1;
}
.elv-header-docs .elv-hero img,
.elv-header-docs .elv-hero svg {
	width: 3em;
	height: 3em;
}
@media (min-width: 43.75em) {
	/* 700px */
	.elv-header-docs .elv-hero {
		margin-right: 1em;
	}
	.elv-header-docs .elv-hero img,
	.elv-header-docs .elv-hero svg {
		width: 4em; /* 64px /16 */
		height: 4em; /* 64px /16 */
	}
}

/* Header Heading */
.elv-hed {
	font-size: 3.125em; /* 50px /16 */
	line-height: 1.2;
	margin-block: 1em;
	text-align: center;
	text-transform: none;
}
main h1.elv-hed:first-child {
	border: none;
}
@media (min-width: 43.75em) {
	/* 700px */
	.elv-header-docs .elv-hed {
		font-size: 2.625em; /* 42px /16 */
	}
}

/* fix: big header link fighting with versions overlay */
.elv-header-default .elv-menu {
	position: relative;
	z-index: 1;
}
.elv-header-default .elv-nav-header {
	position: relative;
	z-index: 0;
}

src/_includes/components/html-fetch.js (1.5 KiB)

class HtmlFetch extends HTMLElement {
  static tagName = 'html-fetch';

  constructor() {
    super();

    this.attrs = {
      src: 'src',
      replace: 'replace'
    };
  }

  async connectedCallback() {
    await this.fetch();
  }

  getTarget() {
    const targetAttr = this.getAttribute('target');
    if (targetAttr) {
      const target = this.closest(targetAttr);
      if (target) {
        return target;
      }
    }

    return this;
  }

  inject(target, html, shouldReplaceTarget) {
    if (shouldReplaceTarget) {
      const div = document.createElement('div');
      div.innerHTML = html;

      for (const child of Array.from(div.children)) {
        target.insertAdjacentElement('beforebegin', child);
      }
      target.remove();
    } else {
      target.innerHTML = html;
    }
  }

  async fetch() {
    if (!('fetch' in window)) {
      return;
    }

    try {
      const targetUrl = this.getAttribute(this.attrs.src);
      const response = await fetch(targetUrl);
      const text = await response.text();

      // remove attribute so we don’t reprocess it
      this.removeAttribute(this.attrs.src);
      this.inject(
        this.getTarget(),
        text,
        this.hasAttribute(this.attrs.replace)
      );
    } catch (e) {
      console.log('html-fetch failed', e);
    }
  }
}

// Should this auto define? Folks can redefine later using { component } export
if ('customElements' in window) {
  customElements.define(HtmlFetch.tagName, HtmlFetch);
}

src/_includes/components/inline-code.css (559 B)

code {
	font-family: Roboto Mono, Consolas, Monaco, Andale Mono, Ubuntu Mono,
		monospace;
	-ms-word-break: break-all;
	word-break: break-word;
	-webkit-hyphens: manual;
	-moz-hyphens: manual;
	hyphens: manual;
	background-color: #efefef;
	padding-left: 4px;
	padding-right: 4px;
	border-radius: 0.15em;
}
pre[class*="language-"] code {
	background-color: inherit;
}
/* table code {
	-ms-word-break: normal;
	word-break: normal;
} */
em code {
	font-style: normal;
}
@media (prefers-color-scheme: dark) {
	code {
		background-color: #000;
		color: #fff;
	}
}

src/_includes/components/layout.css (331 B)

/* Layout component code */
/* Upstreamed to use flex-luthor https://github.com/zachleat/flex-luthor */
.fl pre {
	margin-left: 0;
	margin-right: 0;
}

/* WebC migration: This has moved in to flex-luthor.webc */
.lo-c-center {
	display: flex;
	align-items: center;
	justify-content: center;
}
.lo-c-center > .fl {
	flex-grow: 1;
}

src/_includes/components/lists.css (5.6 KiB)

/* Buzzwords */
@keyframes rainbow {
	0% {
		background-position: 0% 50%;
	}
	100% {
		background-position: 100% 50%;
	}
}
.buzzword-list,
.inlinelist {
	padding: 0;
}
.inlinelist:first-child:last-child {
	margin: 0;
}
.buzzword,
.buzzword-list li,
.inlinelist .inlinelist-item {
	display: inline;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	font-size: 116%;
	white-space: normal;
	padding: 0.2em 0.5em;
	margin: 4px 4px 4px 0;
	transition: 0.15s linear outline;
}

.inlinelist .inlinelist-item:is(:has([aria-selected="true"]), .active) {
	background-color: #222;
	color: #fff;
	font-weight: inherit;
}
.inlinelist .inlinelist-item:is(:has([aria-selected="true"]), .active) :is(:link, :visited) {
	color: #fff;
}
.inlinelist .inlinelist-item code {
	background-color: transparent;
	font-size: 80%;
	margin-left: 6px;
	padding-left: 6px;
	display: inline-block;
	position: relative;
}
@media (max-width: 26.8125em) {
	/* 429px */
	.inlinelist .inlinelist-item {
		overflow: hidden;
	}
	.inlinelist .inlinelist-item code {
		float: right;
		line-height: 1.75;
	}
}
@media (min-width: 26.875em) {
	/* 430px */
	.inlinelist .inlinelist-item code {
		float: none;
	}
	.inlinelist .inlinelist-item code:before {
		content: " ";
		border-left: 1px solid rgba(255, 255, 255, 0.8);
		position: absolute;
		left: -2px;
		top: -2px;
		bottom: 2px;
	}
	@media (prefers-color-scheme: dark) {
		.inlinelist .inlinelist-item code:before {
			border-left-color: rgba(0, 0, 0, 0.8);
		}
	}
}
a.buzzword {
	text-decoration: underline;
	font-size: inherit;
}
.buzzword-list a,
.inlinelist a {
	text-decoration: none;
}
.inlinelist .inlinelist-item {
	font-size: 100%;
	line-height: 2;
}
@supports not (-webkit-box-decoration-break: clone) {
	.buzzword,
	.buzzword-list li,
	.inlinelist .inlinelist-item {
		display: inline-block;
	}
}
.buzzword-list li,
.buzzword {
	background-color: #f7f7f7;
}
@media (prefers-color-scheme: dark) {
	.buzzword-list li,
	.buzzword {
		background-color: #080808;
	}
}
.inlinelist .inlinelist-item {
	background-color: #e9e9e9;
}
@media (prefers-color-scheme: dark) {
	.inlinelist .inlinelist-item {
		background-color: #000;
	}
	.inlinelist .inlinelist-item a {
		color: #fff;
	}
	.inlinelist .inlinelist-item code {
		color: inherit;
	}
}
/* .inlinelist .inlinelist-item:has(> a):hover, */
.inlinelist .inlinelist-item:hover,
.inlinelist .inlinelist-item:focus,
.buzzword-list li:hover,
.buzzword-list li:focus,
.buzzword:hover,
.buzzword:focus,
.rainbow-active:hover,
.rainbow-active:focus {
	position: relative;
	background-image: linear-gradient(
		238deg,
		#ff0000,
		#ff8000,
		#ffff00,
		#80ff00,
		#00ff00,
		#00ff80,
		#00ffff,
		#0080ff,
		#0000ff,
		#8000ff,
		#ff0080
	);
	background-size: 1200% 1200%;
	background-position: 2% 80%;
	color: #fff;
	text-shadow: 0 0 2px rgba(0, 0, 0, 0.9);
	animation: rainbow 4s ease-out alternate infinite;
}
.inlinelist .inlinelist-item.inert,
.inlinelist .inlinelist-item.inert:hover,
.inlinelist .inlinelist-item.inert:focus {
	background-color: transparent;
	background-image: none;
	color: inherit;
	text-shadow: none;
}

.rainbow-active-noanim {
	animation: none !important;
}
.inlinelist .inlinelist-item:hover a,
.inlinelist .inlinelist-item:focus a,
.buzzword-list li:hover a,
.buzzword-list li:focus a,
a.buzzword:hover,
a.buzzword:focus,
a.rainbow-active:hover,
a.rainbow-active:focus {
	color: #fff;
	text-decoration: none;
}
@media (prefers-reduced-motion: reduce) {
	.inlinelist .inlinelist-item:hover,
	.inlinelist .inlinelist-item:focus,
	.buzzword-list li:hover,
	.buzzword-list li:focus,
	.buzzword:hover,
	.buzzword:focus,
	.rainbow-active:hover,
	.rainbow-active:focus {
		animation: none;
	}
}

.buzzword-list li:hover:after,
.buzzword-list li:focus:after,
.buzzword:hover:after,
.buzzword:focus:after {
	font-family: system-ui, sans-serif;
	content: "Buzzword alert!!!";
	position: absolute;
	left: 0;
	top: 0;
	max-width: 8em;
	color: #f00;
	font-weight: 700;
	text-transform: uppercase;
	transform: rotate(-10deg) translate(-25%, -125%);
	text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.6);
	line-height: 1.2;
	pointer-events: none;
}
main h2 .buzzword,
main h3 .buzzword,
main p .buzzword {
	font-size: inherit;
	margin: 0;
	line-height: 1.444444444444; /* 26px /18 */
}
main h2 a.buzzword,
main h3 a.buzzword,
main p a.buzzword {
	text-decoration: underline;
}

/* Small viewport */
@media (max-width: 26.8125em) {
	/* 429px */
	.inlinelist .inlinelist-item {
		display: block;
		width: auto;
		padding: 0;
		line-height: 1.4;
	}
	.inlinelist .inlinelist-item > a {
		display: block;
		padding: 0.2em 0.5em;
	}
}
@media (min-width: 26.875em) {
	/* 430px */
	.inlinelist .inlinelist-item > a {
		display: inline-block;
		white-space: nowrap;
	}
}

.numberflag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: #dff7ff;
	border-radius: 50%;
	width: 1.75em;
	height: 1.75em;
	font-weight: 600;
}
@media (prefers-color-scheme: dark) {
	.numberflag {
		background-color: #00bcd4;
		color: #222;
	}
}
h1 .numberflag,
h2 .numberflag,
h3 .numberflag,
h4 .numberflag,
h5 .numberflag {
	width: 1.4em;
	height: 1.4em;
}
h2 .numberflag {
	position: relative;
	margin-right: 0.25em; /* 10px /40 */
}
h2 .numberflag:after {
	content: " ";
	position: absolute;
	bottom: -1px;
	left: 0;
	height: 1px;
	background-color: #fff;
	width: calc(100% + 0.4em); /* 16px /40 */
}
@media (prefers-color-scheme: dark) {
	h2 .numberflag:after {
		background-color: #222;
	}
}

/* Only top level */
.inlinelist-no-nest ul,
.inlinelist-no-nest ol {
	display: none;
}

/* Small list */
.inlinelist-sm {
	font-size: 0.6666666666667em; /* 12px /18 */
}
.inlinelist-sm .inlinelist-item {
	font-family: system-ui, sans-serif;
	font-weight: 600;
}

src/_includes/components/navigation.css (572 B)

.elv-nav-menu {
	--fl-gap-h: 0.75em;
}
@media (max-width: 24.9375em) {
	/* 399px */
	.elv-nav-menu > * {
		flex-basis: 45%;
	}
}

.elv-nav-menu a {
	font-weight: 600;
}

/* Spacer and social links */
.spacer {
	display: none;
}
.elv-nav-sociallink-text {
	position: absolute;
	height: 1px;
	width: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}
@media (max-width: 24.9375em) {
	/* 399px */
	.elv-nav-menu > *:has(.elv-nav-sociallink-text) {
		flex-basis: auto;
	}
}

@media (max-width: 66.875em) { /* 1070px */
	.elv-nav-menu-hidesmall {
		display: none;
	}
}

src/_includes/components/opengraph-card.css (520 B)

/* Opengraph card */
.opengraph-card {
	display: inline-flex;
	flex-direction: column;
	border: 2px solid #000;
	border-radius: .5em;
	overflow: hidden;
	text-align: center;
	font-size: 1.25em; /* 20px /16 */
	font-weight: bold;
	box-shadow: 0 0 0 3px var(--shadow-color, transparent);
	opacity: .8;
}
a[href].opengraph-card:focus,
a[href].opengraph-card:hover {
	--shadow-color: rgba(234, 0, 255, 0.747);
	opacity: 1;
}
.opengraph-card span {
	display: block;
	margin: 0.5em;
}
.opengraph-card img {
	display: block;
}

src/_includes/components/page-search.css (1.5 KiB)

.search {
	max-width: 30em; /* 480px /16 */
}
.search > .fl {
	--fl-gap-h: 0;
	--fl-gap-v: 0;
	flex-wrap: nowrap;
}
.search-txt {
	width: 100%;
	padding-left: 0.2em;
	padding-right: 0.2em;
	-webkit-appearance: textfield;
	border: 2px solid;
	box-shadow: inset 2px 2px 2px 0 #aaa;
}
.search-btn.search-btn {
	font-weight: 500;
	box-shadow: none;
	border-radius: 0 1em 1em 0;
	border-left: none;
}
.search-txt,
.search-btn {
	height: 100%;
}
.search-txt,
.search-btn {
	font-size: 1.75em; /* 28px /16 */
}

/* Search results */
.search-results-item {
	--search-result-active-bg: #f7f7f7;
	--search-result-active-code-bg: #ddd;
	--search-result-underline: #ffff03;
}

@media (prefers-color-scheme: dark) {
	.search-results-item {
		--search-result-active-bg: #333;
		--search-result-active-code-bg: #111;
		--search-result-underline: #828200;
	}
}
.search-results-notfound {
	list-style-type: none;
}
.search-results-item {
	display: block;
	padding: 0.25em 0.5em;
}
.search-results-item:is(:hover, :focus) {
	background-color: var(--search-result-active-bg);
}
.search-results-item:is(:hover, :focus) code {
	background-color: var(--search-result-active-code-bg);
}
a[href].search-results-item:not(:hover, :focus) {
	text-decoration-color: rgba(0,0,0,0); /* transparent */
}
a[href].search-results-item:is(:hover, :focus) {
	text-decoration-color: var(--search-result-underline);
}

.search-results-item-title {
	display: block;
}
.search-results-item-matches {
	font-size: 0.75em;
	line-height: 1.8;
	max-width: 50em;
}

src/_includes/components/page-sites.css (926 B)

.sites-val {
	display: inline-block;
	font-size: 2em;
	text-align: right;
	min-width: 3.5em;
	margin-right: 0.5em;
	font-variant-numeric: tabular-nums;
}

@media (min-width: 37.5em) {
	/* 600px */
	.sites-lo > * {
		flex-basis: calc(50% - 2em);
	}
	.sites-lo > .site-top {
		flex-basis: 100%;
		font-size: 24px;
	}
	.sites-lo > .site-top .list-bare-desc-avatar {
		margin-left: 39.19px;
	}
}

.sites-divider {
	text-transform: uppercase;
	font-size: 0.875em; /* 14px /16 */
	padding: 0.5em 0;
	letter-spacing: 0.5px;
	position: relative;
	text-align: center;
}
.sites-divider strong {
	white-space: nowrap;
	padding: 0 1em;
	background-color: #fff;
}
.sites-divider:after {
	content: "";
	position: absolute;
	left: 0;
	top: 1em;
	width: 100%;
	height: 0;
	border-bottom: 1px solid #ddd;
	z-index: -1;
}

/* Authors */
.authors-hed {
	margin-top: 0;
}
.authors-list {
	list-style: none;
	padding-left: 0;
	padding-right: 0;
}

src/_includes/components/page-supporters.css (1.6 KiB)

/* Supporters Page */
.supporters-facepile {
	--fl-gap-v: 1rem;
}
.supporters-facepile.supporters-facepile {
	padding: 0;
}
.supporters-facepile > * {
	flex-basis: 15rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #ddd;
}
@media (prefers-color-scheme: dark) {
	.supporters-facepile > * {
		border-bottom: 1px solid #444;
	}
}
.supporters-link {
	display: inline-block;
	white-space: nowrap;
	font-weight: 600;
}
.supporters-facepile .fl {
	/*position: relative;
	top: -.5em;*/
	width: 100%;
	--fl-stackpoint: 300px;
	align-items: flex-start;
	padding-left: calc(38px + 5vw);
}
@media (min-width: 37.5em) {
	/* 600px */
	.supporters-facepile .fl {
		padding-left: 68px;
	}
}
.supporters-tier {
	white-space: nowrap;
	font-size: 0.6875em; /* 11px /16 */
	flex-basis: 9em;
	line-height: 1.3;
	text-transform: uppercase;
	font-weight: 500;
	letter-spacing: 0.5px;
}
.supporters-hearts {
	flex-grow: 5;
	font-size: 1.0625em; /* 17px /16 */
	line-height: 1.3;
	letter-spacing: -3px;
}
.supporters-hearts-empty {
	filter: grayscale(1) brightness(100%);
	opacity: 0.4;
	font-size: 0.875em; /* 14px /16 */
}
@media (prefers-color-scheme: dark) {
	.supporters-hearts-empty {
		filter: grayscale(0.5) brightness(100%);
	}
}
.supporters-facepile .avatar {
	margin-bottom: 0;
}
.supporters-facepile .supporters-active {
	font-weight: 900;
	background-color: #e2f4ff;
	border-bottom-color: transparent;
	border-radius: 0.5em;
	padding-top: 0.25em;
	padding-left: 0.25em;
	padding-right: 0.25em;
}
.supporters-facepile .supporters-active .supporters-tier {
	padding-right: 1em;
}
.supporters-facepile .supporters-active .supporters-tier:after {
	font-weight: 600;
	content: "—THANK YOU! šŸŽ‰";
}

src/_includes/components/popover.css (856 B)

/* Popover */
details.elv-popover {
	position: relative;
}
details.elv-popover summary + * {
	position: absolute;
	z-index: 999;
	background-color: var(--background-color);
	color: var(--color);
	border: 1px solid #000;
	padding: .5rem;
	box-shadow: 0 0 0 .3rem var(--shadow-color);
}
details.elv-popover * {
	white-space: nowrap;
}
.elv-popover a {
	display: block;
	text-decoration: none;
	padding-inline: .5rem;
	margin-inline: -.5rem;
}
.elv-popover a:hover,
.elv-popover a:focus {
	background-color: #222;
	color: #fff;
}
.elv-popover a:hover code,
.elv-popover a:focus code {
	background-color: #fff;
	color: #222;
}

@media (prefers-color-scheme: dark) {
	.elv-popover a:hover,
	.elv-popover a:focus {
		background-color: #fff;
		color: #222;
	}
	.elv-popover a:hover code,
	.elv-popover a:focus code {
		background-color: #222;
		color: #fff;
	}
}

src/_includes/components/possum-home.css (433 B)

.elv-header-default .elv-possum {
	pointer-events: none;
	width: auto;
	height: calc((60vh - 2rem) / 1.6);
	top: 36%;
	left: 1vw;
	right: auto;
	animation-duration: 180s;
	animation-name: balloonFloat;
}

@media (prefers-reduced-motion: reduce) {
	.elv-header-default .elv-possum {
		animation-duration: 0s;
	}
}
@keyframes balloonFloat {
	from {
		transform: translate(-7vw, 30%);
	}
	to {
		transform: translate(100vw, -52%);
	}
}

src/_includes/components/possum.css (514 B)

.elv-possum-anchor {
	display: block;
}
.elv-possum {
	position: absolute;
	right: 0;
	top: 0.5rem;
	transition: 0.3s opacity ease-out;
}
@media (max-width: 34.375em) { /* 550px */
	/* Hide possum on docs only */
	.elv-possum-island {
		display: none;
	}
}

.elv-header-docs .elv-possum {
	width: 10vw;
	height: auto;
	aspect-ratio: 222 / 388;
	max-width: 3.75em; /* 60px /16 */
}
@media (min-width: 81.25em) { /* 1300px */
	.elv-header-docs .elv-possum {
		width: 15vw;
		max-width: 6.25rem; /* 100px /16 */
	}
}

src/_includes/components/prism-theme.css (1.8 KiB)

/**
 * a11y-dark theme for JavaScript, CSS, and HTML
 * Based on the okaidia theme: https://github.com/PrismJS/prism/blob/gh-pages/themes/prism-okaidia.css
 * @author ericwbailey
 */

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: 0.1em;
	border-radius: 0.3em;
	white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: #d4d0ab;
}

.token.punctuation {
	color: #ccc;
}

.token.liquid,
.token.property,
.token.tag,
.token.constant,
.token.symbol,
.token.deleted {
	color: #ffa07a;
}

.token.boolean,
.token.number {
	color: #00e0e0;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
	color: #abe338;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable {
	color: #00e0e0;
}

.token.atrule,
.token.attr-value,
.token.function {
	color: #ffd700;
}

.token.keyword {
	color: #00e0e0;
}

.token.regex,
.token.important {
	color: #ffd700;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

@media screen and (-ms-high-contrast: active) {
	code[class*="language-"],
	pre[class*="language-"] {
		color: windowText;
		background: window;
	}

	:not(pre) > code[class*="language-"],
	pre[class*="language-"] {
		background: window;
	}

	.token.important {
		background: highlight;
		color: window;
		font-weight: normal;
	}

	.token.atrule,
	.token.attr-value,
	.token.function,
	.token.keyword,
	.token.operator,
	.token.selector {
		font-weight: bold;
	}

	.token.attr-value,
	.token.comment,
	.token.doctype,
	.token.function,
	.token.keyword,
	.token.operator,
	.token.property,
	.token.string {
		color: highlight;
	}

	.token.attr-value,
	.token.url {
		font-weight: normal;
	}
}

src/_includes/components/quicktips.css (478 B)

/* Quick Tips TOC */
.quicktipstoc {
	font-size: 0.8888888888889em; /* 16px /18 */
	background-color: #eee;
	list-style: none;
	padding: 0.5em 1em;
}
@media (prefers-color-scheme: dark) {
	.quicktipstoc {
		background-color: #333;
	}
}

.quicktipstoc .active {
	font-weight: 600;
}
.quicktipstoc h3 {
	margin-top: 0;
}

@media (min-width: 37.5em) {
	/* 600px */
	.quicktipstoc {
		margin: 3% 0;
		float: left;
		border-radius: 0.25em;
		font-size: 0.8125em; /* 13px /16 */
	}
}

src/_includes/components/search.js (3.7 KiB)

class Search {
  get headerInput() {
    return document.querySelector("header input[type='search']");
  }

  setValue(val) {
    if(this.headerInput) {
      this.headerInput.value = val;
    }
  }

  clearResults() {
    this.searchResultsCount.innerHTML = 'Results';
    this.searchResultsList.innerHTML = '';
  }

  addResult(result) {
    const listItem = document.createElement('li');

    listItem.innerHTML = `<a href="${result.url}" class="search-results-item">
	<span class="search-results-item-title">
		${result.meta.title ? `<strong>${result.meta.title}</strong>` : result.url}
	</span>
	<p class="search-results-item-matches truncate-overflow" style="--truncate-lh: 1.8em; --truncate-lines: 3">
	<code>${result.excerpt
    .replace(/</g, '&lt;')
    .replace(/&lt;mark>/g, '<mark>')
    .replace(/&lt;\/mark>/g, '</mark>')}</code>
	</p>
</a>
`;

    this.searchResultsList.append(listItem);
  }

  async getLibrary() {
    if (!this.pagefind) {
      this.pagefind = await import('/pagefind/pagefind.js');
      this.pagefind.init();
    }
    return this.pagefind;
  }

  async onInput(value) {
    this.setValue(value);

    const pagefind = await this.getLibrary();
    window.clearTimeout(this.onInputTimeout);
    this.onInputTimeout = window.setTimeout(async () => {
      this.clearResults();

      if (value.length > 1) {
        this.searchResults.classList.remove('hide');

        const search = await pagefind.search(value);
        const results = await Promise.all(search.results.map((r) => r.data()));

        for (const result of results) {
          this.addResult(result, value);
        }
        if (results.length) {
          this.searchResultsCount.innerHTML = `${results.length} Result${
            results.length != 1 ? 's' : ''
          }`;
        } else {
          this.searchResultsList.innerHTML = '<li>No Matches Found.</li>';
        }
        this.searchResultsList.classList[results.length > 0 ? 'remove' : 'add'](
          'search-results-notfound'
        );
      } else {
        this.searchResults.classList.add('hide');
      }
    }, 100);
  }

  getQueryString() {
    const url = new URL(document.location.href);
    const searchQueryParam = url.searchParams.get('q');
    return searchQueryParam ? decodeURIComponent(searchQueryParam) : '';
  }

  hydrate() {
    const form = document.getElementById('eleventy-search');
    if (form) {
      form.addEventListener(
        'submit',
        function (event) {
          event.preventDefault();
        },
        false
      );
    }
    // if(this.headerInput && location.pathname.startsWith("/docs/search/")) {
    // 	this.headerInput.setAttribute("readonly", true);
    // }

    const text = document.getElementById('search-term');
    if (text) {
      text.addEventListener(
        'input',
        async (event) => {
          const value = event.target.value;
          await this.onInput(value);
          window.history.replaceState(
            {},
            '',
            `/docs/search/${value ? `?q=${encodeURIComponent(value)}` : ''}`
          );
        },
        false
      );

      const queryString = this.getQueryString();
      if (queryString) {
        text.value = queryString;
        this.onInput(queryString);
      } else {
        text.value = '';
      }
    }

    const results = document.getElementById('search-results');
    if (results) {
      this.searchResults = results;
    }

    const resultsList = document.getElementById('search-results-list');
    if (resultsList) {
      this.searchResultsList = resultsList;
    }

    const resultsCount = document.getElementById('search-results-count');
    if (resultsCount) {
      this.searchResultsCount = resultsCount;
    }
  }
}

const search = new Search();
search.hydrate();

src/_includes/components/seven-minute-tabs.css (4.2 KiB)

seven-minute-tabs {
	--smt-border: #272822;
	--smt-border-width: 2px;
	--smt-tab-bg: transparent;
	--smt-tabactive-bg: #eee;
	--smt-tab-text: #555;
	--smt-tabselected-bg: #272822;
	--smt-tabselected-text: #fff;
	display: block;
	margin-inline: -1rem;
	margin-block: 1rem;
}
@media (prefers-color-scheme: dark) {
	seven-minute-tabs {
		--smt-border: #000000;
		--smt-tab-bg: transparent;
		--smt-tabactive-bg: #333;
		--smt-tab-text: #ddd;
		--smt-tabselected-bg: #000;
		--smt-tabselected-text: #fff;
	}
}
seven-minute-tabs [role="tablist"] {
	display: flex;
	line-height: 1.8;
	border-radius: .25em .25em 0 0;
}
seven-minute-tabs.tabs-right [role="tablist"] {
	justify-content: flex-end;
	margin: 0 0 0 .5em;
}
seven-minute-tabs [role="tablist"].has-label {
	text-indent: 1rem;
}
seven-minute-tabs [role="tablist"].has-label [role="tab"]:first-child {
	margin-left: .5em;
}
seven-minute-tabs [role="tablist"]:last-child {
	margin-top: 0.5rem;
}
seven-minute-tabs [role="tab"] {
	background-color: var(--smt-tab-bg);
	color: var(--smt-tab-text);
	display: flex;
	align-items: flex-end;
	font-size: 0.9375em; /* 15px /16 */
	font-weight: 500;
	padding: 0 1rem;
	margin: 0;
	text-decoration: none;
	min-width: min-content;
	flex-basis: auto;
	flex-grow: 0;
	text-indent: 0;
	border-radius: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	border: var(--smt-border-width) solid var(--smt-border);
	border-bottom: none;
}
seven-minute-tabs [role="tab"]:not(:first-child) {
	border-left: none;
}
seven-minute-tabs [role="tab"]:not(:last-child) {
	border-right: none;
}
seven-minute-tabs [role="tab"]:first-child {
	border-top-left-radius: .25em;
}
seven-minute-tabs [role="tab"]:last-child {
	border-top-right-radius: .25em;
}
seven-minute-tabs [role="tab"]:not([aria-selected="true"]):is(:hover, :focus) {
	background-color: var(--smt-tabactive-bg);
}
@media (max-width: 24.9375em) { /* 399px */
	seven-minute-tabs [role="tab"] {
		font-size: 0.8125em; /* 13px /16 */
	}
}
@media (max-width: 54.9375em) { /* 879px */
	seven-minute-tabs:not(.tabs-right) [role="tablist"]:not(.has-label) [role="tab"]:first-child {
		border-top-left-radius: 0;
	}
	seven-minute-tabs.tabs-right [role="tablist"]:not(.has-label) [role="tab"]:last-child {
		border-top-right-radius: 0;
	}
}
seven-minute-tabs [role="tab"][aria-selected="true"] {
	--smt-tab-bg: var(--smt-tabselected-bg);
	--smt-tab-text: var(--smt-tabselected-text);
}

seven-minute-tabs [role="tabpanel"] {
	border: var(--smt-border-width) solid var(--smt-border);
	padding: 1rem;
}

/* Two column */
@media (min-width: 55em) { /* 880px */
	seven-minute-tabs [role="tabpanel"] {
		border-radius: .3125rem;
	}
	seven-minute-tabs:not(.tabs-right) [role="tabpanel"] {
		border-top-left-radius: 0;
	}
	seven-minute-tabs.tabs-right [role="tabpanel"] {
		border-top-right-radius: 0;
	}
}

seven-minute-tabs.tabs-flush [role="tabpanel"] {
	padding-block: 0;
}
seven-minute-tabs:not(.tabs-flush) [role="tabpanel"] > :last-child {
	margin-block-end: 0;
}

/* Other components */
seven-minute-tabs [role="tabpanel"] pre {
	border-radius: 0;
	margin-block: 0;
}
seven-minute-tabs [role="tabpanel"] .elv-callout {
	margin-inline: 0;
}

/* Only show the first tab pre-JS */
seven-minute-tabs:not(:defined) [role="tabpanel"] ~ [role="tabpanel"] {
	display: none;
}
/* Use :target to make the tabs work without JavaScript */
seven-minute-tabs:not(:defined):has([role="tabpanel"] ~ [role="tabpanel"]:target) [role="tablist"] + [role="tabpanel"] {
	display: none;
}
seven-minute-tabs:not(:defined) [role="tabpanel"] ~ [role="tabpanel"]:target {
	display: block;
}

/* Make tab padding slightly smaller at small viewport */
@media (max-width: 31.1875em) { /* 499px */
	seven-minute-tabs:not(.tabs-right) [role="tab"]:not(:first-child) {
		padding-left: .5rem;
	}

	seven-minute-tabs:not(.tabs-right) [role="tab"] {
		padding-right: .5rem;
	}

	seven-minute-tabs.tabs-right [role="tab"]:not(:last-child) {
		padding-right: .5rem;
	}

	seven-minute-tabs.tabs-right [role="tab"] {
		padding-left: .5rem;
	}
}

/* More than 5 tabs, tabs wrap and grow */
seven-minute-tabs:has([role="tab"]:nth-last-child(n+5)) [role="tablist"] {
	flex-wrap: wrap;
}

@media (max-width: 31.1875em) { /* 499px */
	seven-minute-tabs:has([role="tab"]:nth-last-child(n+5)) [role="tab"] {
		flex-grow: 1;
	}
}

src/_includes/components/site-entry.css (6.0 KiB)

.sites--reverse a {
	display: flex;
	flex-direction: column-reverse;
}

.sites-lo-footer {
	margin-bottom: 2em;
}
.sites-perf-si {
	display: none;
}
.sites-lo > .site-top .sites-perf-si {
	display: block;
}
.sites-screenshot-container {
	border-radius: 0.4em;
	box-shadow: 0 0 0 var(--card-shadow-size, 3px) var(--card-shadow-color, var(--shadow-color));
}
.sites-screenshot {
	display: block;
	width: 100%;
	height: auto;
	border-radius: .4em;
}
.sites-screenshot-youtube-sq {
	aspect-ratio: 1/1;
	object-fit: contain;
	background-color: #222;
}
.sites-screenshot-container--icon {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
}
.sites-screenshot-container--icon .avatar.sites-icon-auto {
	width: 3.333333333333em; /* 60px /18 */
	height: 3.333333333333em; /* 60px /18 */
}
.sites-site-official .sites-screenshot {
	border-color: #666;
}
@media (min-width: 30em) {
	/* 480px */
	.site-top {
		display: flex;
	}
	.site-top > .sites-data-container {
		flex-basis: 70%;
	}
	.site-top > .sites-screenshot-container {
		flex-basis: 30%;
		min-width: 9em;
		margin-top: 0;
		margin-left: 1em;
	}
}

.sites-perf-rank-same,
.sites-perf-rank-new,
.sites-perf-rank-pos,
.sites-perf-rank-neg {
	margin-left: 0.5em;
	font-style: normal;
}
.sites-perf-rank-same {
	color: #d23ed2;
	font-weight: 900;
}
.sites-perf-rank-same:before {
	content: "↔";
	line-height: 1;
}
.sites-perf-rank-new {
	font-style: italic;
	color: #e60074;
}
.sites-perf-rank-pos {
	color: green;
}
.sites-perf-rank-pos:before {
	content: "⬆";
	line-height: 1;
}
.sites-perf-rank-neg {
	color: darkred;
}
.sites-perf-rank-neg:before {
	content: "⬇";
	line-height: 1;
}

.sites-vert {
	margin-top: 2em;
	margin-bottom: 2em;
}
.elv-callout .sites-vert {
	margin-top: 1em;
	margin-bottom: 0;
}
.sites-vert .sites-screenshot-container {
	margin-top: 4px;
	margin-bottom: 4px;
}
.sites-vert .avatar {
	margin-right: 3px;
	margin-left: 0;
	width: 1em;
	height: 1em;
	object-fit: contain;
}
.sites-vert--wc .avatar {
	margin-right: 0;
}
.sites-vert > .lo-grid {
	--fl-gap-h: 1rem;
	--fl-gap-v: 1rem;
	--lo-c-minwidth: 8.5em;
	--lo-grid-repeat: auto-fill;
}
.sites-vert--md > .lo-grid,
.sites-vert--lg > .lo-grid {
	--lo-c-minwidth: 7em;
}

@media (min-width: 28.125em) {
	/* 450px /16 */
	.sites-vert--md > .lo-grid {
		--lo-c-minwidth: 8.5em; /* 136px /16 */
	}
	.sites-vert--lg > .lo-grid {
		--lo-c-minwidth: 10em; /* 160px /16 */
	}
}

.sites-site-name {
	display: block;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-size: 0.8888888888889em; /* 16px /18 */
}
.sites-site-name--nowrap {
	display: block;
	font-size: 0.7777777777778em; /* 14px /18 */
}
.sites-site-description {
	display: none;
	margin: 0.6428571428571em 0; /* 9px /14 */
	font-size: 0.7777777777778em; /* 14px /18 */
}
.sites-vert--md .sites-site-description,
.sites-vert--lg .sites-site-description {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
	width: 100%;
}
.sites-site-vert .sites-screenshot-container {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1/1;
	position: relative;
}
.sites-site-vert .sites-screenshot-container:after {
	content: "";
	position: absolute;
	inset: 0;
	opacity: .3;
	background: var(--card-background);
	z-index: -1;
	border-radius: .4em;
}

/* Borders and hovers */
.sites-site-vert a:is(:focus, :hover) {
	--card-shadow-color: rgba(234, 0, 255, 0.747);
	--card-shadow-size: 0.3333333333333em; /* 6px /18 */
}
.sites-site-vert a {
	--card-shadow-color: var(--card-primary);
}
.sites-site-vert a:is(:focus, :hover) img,
.sites-site-vert a:is(:focus, :hover) .sites-screenshot-container:after {
	opacity: .75;
}
/* End borders and hovers */

.sites-site-vert > a {
	text-decoration: none;
}
.sites-site-vert speedlify-score {
	justify-content: center;
}

.sites-site-vert {
	position: relative;
}
.sites-site-vert .sites-site-lighthouse {
	font-size: 0.6666666666667em; /* 12px /18 */
	transform: translateY(-100%);
	position: absolute;
	right: 1px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border-radius: 1.4em 0 0.4em 0;
	background: rgba(255, 255, 255, 0.9);
	font-weight: 600;
	padding: 4px;
}
.sites-site-vert .sites-site-lighthouse .speedlify-score {
	background-color: #fff;
}

@media (prefers-color-scheme: dark) {
	.sites-site-vert .sites-site-lighthouse {
		background: rgba(0, 0, 0, 0.85);
	}
}

@supports (aspect-ratio: 1 / 1) {
	.img-gallery {
		--shadow-color: rgba(234, 0, 255, 0.747);
		display: flex;
		flex-direction: column;
		justify-content: center;
		aspect-ratio: 1 / 2;
		border-radius: 0.4em;
		border: 2px solid #ccc;
		margin-bottom: 0.3em;
		padding: 0.5em;
	}
	.img-gallery .sites-screenshot {
		border: none;
	}
	.sites-site-vert a:hover .img-gallery {
		box-shadow: 0 0 0 4px var(--shadow-color);
	}
	.sites-site-vert a:hover .img-gallery .sites-screenshot {
		box-shadow: none;
	}
}

/* Centered */
.sites--center {
	text-align: center;
}

/* Tags */
.sites-tag {
	--tag-text: #000;
	--tag-bg: #dff7ff;
	font-size: 0.6666666666667em; /* 12px /18 */
	line-height: 1.5;
	display: inline-block;
	padding: 0 0.75em;
	border-radius: 0.75em;
	background: var(--tag-bg);
	color: var(--tag-text);
}
@media (prefers-color-scheme: dark) {
	.sites-tag {
		--tag-text: #dff7ff;
		--tag-bg: #000;
	}
}

/* Featured partner */
.sites-featured {
	grid-column: 1/3;
}
.sites-featured .sites-screenshot {
	aspect-ratio: 10/4.81;
	object-fit: cover;
	object-position: top;
}
.sites-featured .sites-site-name {
	font-weight: 700;
}
.sites-vert:not(:has(.sites-featured)) .sites-site-name {
	font-weight: 700;
}
.sites-vert:has(.sites-featured)
	.sites-site-vert:not(.sites-featured)
	.avatar-indieweb {
	display: none;
}

/* Host /generator icons on author pages on screenshots */
.sites-screenshot-container {
	position: relative;
}
.sites-screenshot-container-icons {
	position: absolute;
	inset: 0;
	display: flex;
	gap: 0.25em;
	align-items: flex-end;
	justify-content: flex-start;
	padding: 0.25em;
}
.sites-screenshot-container-icons img {
	margin: 0;
	max-width: 1em;
}

src/_includes/components/styleguide.css (464 B)

/* Style Guide */
.elv-sg-component {
	background-color: #f9f9f9;
	border-top: 1px dotted #ddd;
	border-bottom: 1px dotted #ddd;
	margin: 2rem 0;
}
@media (prefers-color-scheme: dark) {
	.elv-sg-component {
		background-color: #222;
	}
}
.elv-sg-component:before,
.elv-sg-component:after {
	content: " "; /* 1 */
	display: table; /* 2 */
}
.elv-sg-component:after {
	clear: both;
}
.elv-layout .elv-sg-component-full {
	margin-left: -1rem;
	margin-right: -1rem;
}

src/_includes/components/subhed.css (323 B)

.subhed {
	display: block;
	font-family: system-ui, sans-serif;
	font-size: 0.9375em; /* 15px /16 */
	line-height: 1;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 0;
	color: #666;
	text-align: center;
	border: none;
}
@media (prefers-color-scheme: dark) {
	.subhed {
		color: #adadad;
	}
}

src/_includes/components/supporters.css (1.5 KiB)

/* Inline list of support avatars */
.supporters-tiered .facepile-supporters .supporters-active img {
	filter: grayscale(0);
}
/* Supporters Header */
.supporters-hed {
	border: none;
	border-top: 1px solid #ddd;
	text-align: center;
	flex-basis: 100%;
	margin-top: 6.666666666667em; /* 100px /15 */
	padding-top: 2em;
	margin-bottom: 1em;
}
/* Gold supporters */
.supporters-tiered {
	--fl-gap-h: 2em;
	--fl-stackpoint: 34.375em;
	margin-top: 2rem;
	margin-bottom: 2rem;
}
.supporters-tiered .subhed {
	text-align: center;
	margin-top: 2em;
	margin-bottom: 1em;
}
.supporters-tiered a[href] {
	text-decoration: none;
}

.supporters-gold .lo-grid > * {
	display: flex;
	align-items: stretch;
	justify-content: center;
	flex-direction: column;
}
.supporters-gold a[href] {
	display: flex;
	justify-content: center;
}
.supporters-gold-nordhealth {
	translate: 0 0.2em
}
.supporters-gold-cloudcannon {
	flex-grow: 1.7;
	margin: 0 auto;
	max-width: 28em;
}
.supporters-gold-cloudcannon svg {
	background-color: #034ad8;
	color: #fff;
	padding: 1.25em;
	border-radius: 0.5em;
}

.supporters-gold-transloadit svg {
	color: #0d1419;
}
@media (prefers-color-scheme: dark) {
	.supporters-gold-transloadit svg {
		color: #fff;
	}
}

.supporters-gold .lo-grid {
	--lo-c-minwidth: 12em;
	--fl-gap-v: 2em;
	--fl-gap-h: 3em;
	margin: 0 auto;
}
.supporters-gold .logo,
.supporters-gold svg {
	width: 100%;
	margin: 0;
}
.supporters-gold .avatar {
	max-width: 75px;
	max-height: 75px;
}
.supporters-gold + .facepile-supporters {
	margin-top: 0;
}

src/_includes/components/tables.css (1.3 KiB)

/* Tables */
table {
	border-collapse: collapse;
	margin-bottom: 2em;
}
table th,
table td {
	text-align: left;
	border-top: 1px solid #eee;
	border-bottom: 1px solid #eee;
	padding: 0.4em;
	font-size: 0.8125em; /* 13px /16 */
	vertical-align: top;
}
table thead th {
	font-weight: 300;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 0.75em; /* 12px /16 */
	border-top: none;
}
table thead th code {
	text-transform: none;
}
table th:first-child,
table td:first-child {
	padding-left: 0;
}
table th {
	border-color: var(--border-color);
}
table thead th {
	color: #222;
}
table thead th a[href] {
	color: inherit;
}
table .numeric {
	white-space: nowrap;
	text-align: right;
	font-family: Roboto Mono, Consolas, Monaco, Andale Mono, Ubuntu Mono,
		monospace;
}
.numeric-note:before {
	content: "*";
	color: red;
}
table .numeric-up:after {
	content: "↑";
	color: green;
}
.numeric-note:before,
table .numeric-up:after {
	margin: 0 .25em;
	font-weight: bold;
	font-family: system-ui, sans-serif;
}

@media (prefers-color-scheme: dark) {
	table td {
		border-color: #333;
	}
	table thead th {
		color: #ddd;
	}
}
h2 + table {
	margin-top: -0.625em; /* -10px /16 */
}

@media (min-width: 37.5em) {
	/* 600px */
	table th,
	table td {
		padding: 0.4em 0.8em;
		font-size: 1em; /* 16px /16 */
	}
	table thead th {
		font-size: 0.875em; /* 14px /16 */
	}
}

src/_includes/components/testimonials.css (244 B)

/* Testimonials */
.testimonials-layout.fl {
	--fl-gap-h: 2em;
	--fl-gap-v: 2em;
}
.testimonials-layout.fl > * {
	flex-basis: 25em; /* 400px /16 */
}
.testimonials blockquote,
.testimonials blockquote > p:first-child:last-child {
	margin: 0;
}

src/_includes/components/throbber.css (282 B)

text-throbber,
is-land--text-throbber {
	display: block;
	line-height: 1.2;
	font-family: Roboto Mono, Consolas, Monaco, Andale Mono, Ubuntu Mono,
		monospace;
	-ms-word-break: break-all;
	word-break: break-word;
	-webkit-hyphens: manual;
	-moz-hyphens: manual;
	hyphens: manual;
}

src/_includes/components/throbber.js (1.3 KiB)

window.customElements.define(
  'text-throbber',
  class extends HTMLElement {
    connectedCallback() {
      const animationSpeed = 100;

      // thank you https://www.npmjs.com/package/throbber
      const characters = ['|', '\\', '-', '/', '|', '\\', '-', '/'];
      const duration = parseInt(this.getAttribute('duration'), 10) || 1000;
      const perInterval = parseInt(this.getAttribute('interval')) || 1000;
      const finish = this.getAttribute('finish') || ' šŸ';

      this.innerHTML = '&#160;';
      this.setAttribute('aria-hidden', 'true');

      const bar = [];
      let index = 0;
      const startTime = new Date();
      const interval = setInterval(() => {
        requestAnimationFrame(() => {
          this.innerHTML = bar.join('') + characters[index];

          index++;
          index = index % characters.length;

          const timeDiff = Date.now() - startTime.getTime() - perInterval;

          if (
            timeDiff > perInterval * bar.length &&
						bar.length < duration / 1000
          ) {
            bar.push('=');
          }

          if (Date.now() - startTime.getTime() >= duration) {
            window.clearInterval(interval);
            this.innerHTML = bar.join('') + finish;
            this.setAttribute('ready', '');
          }
        });
      }, animationSpeed);
    }
  }
);

src/_includes/components/toc.css (6.3 KiB)

.elv-toc {
	--elv-toc-sticky-top: 0;
	--elv-toc-spacing: .75em;
	--elv-toc-link-color: #1873a5;
	--elv-toc-hover-color: #dff7ff;
	font-size: 1rem; /* Reset */
}
.elv-header-docs + .elv-layout .elv-toc {
	--elv-toc-sticky-top: 4em;
}
@media (prefers-color-scheme: dark) {
	.elv-toc {
		--elv-toc-link-color: #86d0fb;
		--elv-toc-hover-color: #353535;
	}
}
@media (min-width: 55em) { /* 880px */
	.elv-toc {
		position: absolute;
		left: 1rem;
		width: 13rem;
		z-index: 1;
	}
}

@media (max-width: 54.9375em) { /* 879px */
	.elv-toc-c {
		--elv-toc-bg: #f4f4f4;
	}
	@media (prefers-color-scheme: dark) {
		.elv-toc-c {
			--elv-toc-bg: #111;
		}
	}

	.elv-toc-c {
		display: block;
		background-color: var(--elv-toc-bg);
		margin-inline: -1rem;
		padding: .5rem;
		margin-block-end: 2.5em;
	}
}
@media (min-width: 55em) and (min-height: 43.75em) { /* 880Ɨ700px */
	/* Sticky on menus except Guide/Projects */
	.elv-toc-c:not(:has(a[href="/docs/projects/"] + details[open])) {
		position: sticky;
		top: var(--elv-toc-sticky-top);
	}
}

.elv-toc-list details,
.elv-toc-list details[open] > summary {
	margin: 0;
}
.elv-toc-list {
	justify-content: space-between;
	padding-inline: 0;
	margin: 0 0 2.5em;
	list-style: "";
}
.elv-toc-list li {
	font-size: 0.9375em; /* 15px /16 */
	line-height: 1.466666666667; /* 22px /15 */
}
/* Nested lists */
.elv-toc-list ul {
	padding: 0;
	margin: 0;
	list-style: "";
}
/* First-order nested list */
.elv-toc-list > li > details > ul {
	margin-block: var(--elv-toc-spacing);
}
/* List items with deeply nested lists inside */
.elv-toc-list > li > details > ul > li:has(ul ul) {
	margin-block: var(--elv-toc-spacing);
}

/* Menus nested exact 2 levels deep */
.elv-toc-list {
	--toc-border-color: rgba(0,0,0,.06);
}
@media (prefers-color-scheme: dark) {
	.elv-toc-list {
		--toc-border-color: rgba(255,255,255,.06);
	}
}
.elv-toc-list > li > details > ul > li > ul > li {
	border-inline-start: 2px solid var(--toc-border-color);
}
.elv-toc-list > li > details > ul > li > ul > li:is(.elv-toc-active, :has(.elv-toc-active)) {
	--toc-border-color: #63e6be;
	--toc-border-width: 2px;
}
.elv-toc-list > li > details > ul > li > ul > li > a {
	padding-inline: .5em;
}
.elv-toc-list ul ul {
	margin-inline-start: .25em;
}
.elv-toc-list ul ul ul {
	margin-inline-start: 1.5em; /* 24px /16 */
}

/* List items */
.elv-toc-list a,
.elv-toc-list span:where(:has(+ ul)) {
	display: block;
	padding: 0.15em 0.25em;
}
@media (max-width: 54.9375em) { /* 879px */
	.elv-toc-list a,
	.elv-toc-list span:where(:has(+ ul)) {
		padding-block: .5em;
	}
}
.elv-toc-list a:hover {
	text-underline-offset: .1em;
}
.elv-toc-list > li details a[href] {
	color: var(--elv-toc-link-color);
}
.elv-toc-list > li > a[href] {
	text-decoration-line: underline;
}
.elv-toc-list > li > details a[href]:hover {
	background-color: var(--elv-toc-hover-color);
}
.elv-toc-list > li > details a[href]:not(:hover) {
	text-decoration-line: none;
}
.elv-toc-list > li > details > ul > li > a {
	font-weight: 500;
}
.elv-toc-list > li > details > ul > li > a[href]:not(:hover) {
	text-decoration-line: underline;
}
.elv-toc-list li {
	margin: 0;
	padding: 0;
}
@media (min-width: 55em) { /* 880px */
	.elv-toc-list > li:not(:first-child) {
		border-top: 1px solid var(--border-color);
	}

	.elv-toc-list > li:last-child {
		margin-bottom: var(--elv-toc-spacing);
	}
}

/* Top level links */
.elv-toc-list > li > details > summary,
.elv-toc-list > li > a {
	font-weight: 700;
	padding-block: var(--elv-toc-spacing);
	color: var(--color);
}


/* Active links */
.elv-toc-list li.elv-toc-active > a,
.elv-toc-list li.elv-toc-active > details > summary,
.elv-toc-list > li > a:hover,
.elv-toc-list > li > details > summary:hover {
	background-color: var(--elv-toc-hover-color);
}

/* Hide top level summary when JS and there is a sibling link */
details-force-state:defined .elv-toc-list > li {
	position: relative;
}
details-force-state:defined .elv-toc-list > li > a:has(+ details) {
	position: absolute;
	margin-left: 0.8125em; /* 13px /16 */
	padding-inline: 0 0.5em; /* 8px /16 */
	background-color: var(--elv-toc-bg, var(--background-color));
}
details-force-state:defined .elv-toc-list > li.elv-toc-active > a:has(+ details),
details-force-state:defined .elv-toc-list > li > a:has(+ details):hover,
details-force-state:defined .elv-toc-list > li > a:hover + details > summary,
details-force-state:defined .elv-toc-list > li > a:has(+ details > summary:hover) {
	background-color: var(--elv-toc-hover-color);
}

/* Footer category navigation */
.elv-cat-list-active {
	font-weight: 600;
}

/* Wrapper around the markdown Table of contents plugin */
details.toc {
	border-radius: 0.4em;
	padding: .5rem;
	margin-inline: -.5rem;
	/* padding: 0.5rem 0.5rem 0 0.5rem; */
	/* margin: 0 -0.5rem 3em -0.5rem; */
}
h1 + details.toc {
	margin-top: -1.444444444444em; /* -26px /18 */
}
/* Overrides */
details.toc,
details.toc[open] {
	border: 2px solid #ccc;
	box-shadow: none;
}
details.toc[open] {
	background-color: #f7f7f7;
}
@media (prefers-color-scheme: dark) {
	details.toc[open] {
		background-color: #292929;
	}
}
details.toc[open] > summary {
	font-weight: bold;
}

/* Markdown table of contents plugin */
.table-of-contents > ul ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 2em;
}
.table-of-contents > ul ul > li {
	padding: 0;
}

/* Sidebar ads */
.elv-toc .elv-callout:first-child {
	--callout-primary: #63e6be;
	--callout-secondary: #e4fdf5;
}
@media (prefers-color-scheme: dark) {
	.elv-toc .elv-callout:first-child {
		--callout-primary: #31b089;
		--callout-secondary: #135340;
	}
}

.elv-toc-callout-link {
	display: block;
	font-size: 1.15em;
	line-height: 1.4;
	text-wrap: balance;
}

.elv-toc-list ul .fa11ty-icon {
	margin-inline-start: 0;
}
.elv-toc ul ul .fa11ty-icon use[href] {
	opacity: .8;
	color: inherit !important;
}


/* Full page nav as main content */
.elv-page-toc {
	columns: 18em;
	column-gap: 3em;
}
.elv-page-toc > ul {
	list-style: "";
	padding: 0;
	margin: 0;
}
.elv-page-toc > ul > li:has(ul) {
	margin-block-end: 1.5em;
}
.elv-page-toc > ul > li {
	break-inside: avoid;
	padding: 0;
	margin: 1em 0;
}
.elv-page-toc > ul > li:first-child {
	margin-block-start: 0;
}
.elv-page-toc > ul > li > a,
/* asterisk on languages */
.elv-page-toc > ul > li:has(> a):after {
	font-size: 1.25em; /* 20px /16 */
	font-weight: 600;
}
.elv-page-toc .fa11ty-icon {
	margin-left: 0;
}

src/_includes/components/truncate.css (250 B)

/* https://css-tricks.com/multi-line-truncation-with-pure-css/ */
.truncate-overflow {
	--truncate-lh: 1.5em;
	--truncate-lines: 3;
	line-height: var(--truncate-lh);
	max-height: calc(var(--truncate-lh) * var(--truncate-lines));
	overflow: hidden;
}

src/_includes/datasources.md (1.1 KiB)

When the data is merged in the {% if page.url != "/docs/data-cascade/" %}Eleventy Data Cascade{% else %}Eleventy Data Cascade{% endif %}, the order of priority for sources of data is (from highest priority to lowest):

  1. Computed Data{% if page.url == "/docs/data-computed/" %} ⬅{% endif %}
  2. Front Matter Data in a Template{% if page.url == "/docs/data-frontmatter/" %} ⬅{% endif %}
  3. Template Data Files{% if page.url == "/docs/data-template-dir/" %} ⬅{% endif %}
  4. Directory Data Files (and ascending Parent Directories){% if page.url == "/docs/data-template-dir/" %} ⬅{% endif %}
  5. Front Matter Data in Layouts (this moved in 1.0){% if page.url == "/docs/layouts/" %} ⬅{% endif %}
  6. Configuration API Global Data{% if page.url == "/docs/data-global-custom/" %} ⬅{% endif %}
  7. Global Data Files{% if page.url == "/docs/data-global/" %} ⬅{% endif %}

src/_includes/edit-on-github.njk (199 B)

<a href="{{ config.githubEdit }}{{ page.inputPath }}" class="elv-externalexempt"><i class="fa-regular fa-pen-to-square"></i>Edit this page{% if config.outdated -%} (in latest version){% endif -%}</a>

src/_includes/header.njk (4.7 KiB)

<header class="elv-header{% if headerClass %} {{ headerClass }}{% endif %}">
	<div class="elv-menu">
		<active-background>
			<ul class="elv-nav-menu list-bare fl fl-inline fl-nowrap">
				<li><a href="/" class="elv-nav-menu-logo" style="display: flex; align-items: center;"><img src="/img/logo.svg" alt="Sibylline Soft Logo" style="height: 24px; width: auto; margin-right: 8px; filter: drop-shadow(0 0 4px rgba(255, 215, 0, 0.6));">Sibylline Soft</a></li>
				<li><a href="/docs/">Get Started</a></li>
				<li><a href="/blog/">Blog</a></li>
				<li><a href="/docs/community/">Community</a></li>
				{# <li><a href="/firehose/">Firehose</a></li> #}
				{# <li><a href="https://conf.11ty.dev/" class= elv-externalexempt">Conference</a></li> #}
				{# <li><a href="https://merch.11ty.dev/products/11ty-merch-bundle-2024-limited-edition" class="elv-externalexempt">Merch</a></li> #}
				<li>
					<details-utils close-click-outside close-esc>
						<details class="elv-popover">
							<summary>Versions</summary>
							<div>
							  <ul class="list-bare">
									<li><a href="/docs/" class="elv-externalexempt"><code>v3</code> <small>Stable</small></a></li>
									<li><a href="https://v2.11ty.dev/docs/" class="elv-externalexempt"><code>v2</code></a></li>
									<li><a href="https://v1.11ty.dev/docs/" class="elv-externalexempt"><code>v1</code></a></li>
									<li><a href="https://v0.11ty.dev/docs/" class="elv-externalexempt"><code>v0</code></a></li>
									<li><a href="/docs/versions/" class="elv-externalexempt">History</a></li>
								</dl>
							</div>
						</details>
					</details-utils>
				</li>
				<li class="util-grow">
					<disabled-form>
						<form action="/docs/search/" class="util-stack">
							<label>
								<span class="sr-only">Search</span>
								<input type="search" name="q" placeholder="Search…" value="" disabled>
							</label>
							<button type="submit" disabled><i class="fa-solid fa-magnifying-glass"></i><span class="sr-only">Search</span></button>
						</form>
					</disabled-form>
				</li>
				{# <li class="spacer" aria-hidden="true"></li> #}
				{# <li><a href="/blog/feed.xml" class="nound elv-externalexempt elv-nav-sociallink"><i class="fa-solid fa-square-rss"></i><span class="elv-nav-sociallink-text">Feed</span></a></li> #}
				<li><a href="https://github.com/11ty/eleventy/" class="elv-skipicon"><i class="fa-brands fa-github" style="font-size: .9em"></i>GitHub</a></li>
				{# <li><a href="https://www.npmjs.com/org/11ty" class="nound elv-externalexempt elv-nav-sociallink"><i class="fa-brands fa-npm fa11ty-npm"></i><span class="sr-only">npm</span></a></li> #}
				<li data-active-background="rgba(255,0,51,.35)"><a href="https://www.youtube.com/c/EleventyVideo" class="nound elv-externalexempt elv-nav-sociallink"><i class="fa-brands fa-youtube"></i><span class="sr-only">YouTube</span></a></li>
				<li data-active-background="rgba(123,104,218,.35)"><a href="https://neighborhood.11ty.dev/@11ty" class="nound elv-nav-sociallink"><i class="fa-brands fa-mastodon"></i><span class="sr-only">Mastodon</span></a></li>
				<li data-active-background="rgba(18,133,254,.35)"><a href="https://bsky.app/profile/11ty.dev" class="nound elv-nav-sociallink"><i class="fa-brands fa-bluesky"></i><span class="sr-only">Bluesky</span></a></li>
				<li data-active-background="rgba(88,101,242,.35)"><a href="/blog/discord/" class="nound elv-nav-sociallink"><i class="fa-brands fa-discord"></i><span class="sr-only">Discord</span></a></li>
				<li data-active-background="rgba(83,140,215,.35)"><a href="https://fontawesome.com/" class="nound elv-nav-sociallink"><i class="fa-brands fa-font-awesome"></i><span class="sr-only">Font Awesome</span></a></li>
			</ul>
		</active-background>
	</div>

	<div class="elv-nav-header">
		{% if not isDocs %}
		<a href="{% if page.url === '/' %}/docs/{% else %}/{% endif %}" class="elv-hero" style="display: flex; align-items: center;"><img src="/img/logo.svg" alt="Sibylline Soft Logo" style="height: 48px; width: auto; margin-right: 12px; filter: drop-shadow(0 0 6px rgba(255, 215, 0, 0.6));">Sibylline Soft<span class="sr-only">Sibylline Soft</span></a>
		{% endif %}
		<is-land class="elv-possum-island" on:visible on:idle on:load on:save-data="false" on:media="(prefers-reduced-motion: no-preference)">
			<template data-island>
				<a href="/blog/mascot-david/" class="elv-possum-anchor">
					<div class="elv-possum-pic">
						{%- if isDocs %}
						{% image "./src/img/mascots/david.svg", "The possum is Eleventy’s mascot", [222], "elv-possum", "", {loading: "eager"} %}
						{%- else %}
						{% image "./src/img/mascots/david.svg", "The possum is Eleventy’s mascot", [222, 350], "elv-possum", "20vh", {loading: "eager"} %}
						{%- endif %}
					</div>
				</a>
			</template>
		</is-land>
	</div>
</header>

src/_includes/image-usage.njk (434 B)

{% callout "info", "md-block", "Eleventy Image Usage Types" %}
- [Image HTML Transform](/docs/plugins/image/#html-transform): **Recommended**—start with this one! It’s the easiest to configure and is compatible with all template syntax.
{{ "Image" | nav | eleventyNavigationToMarkdown({ showExcerpt: true }) }}
{#- - [Images as Custom Templates](/docs/languages/custom/) (not yet on docs, probably discouraged) #}
{% endcallout %}

src/_includes/index.css (6.7 KiB)

:root {
	--layout-max: 70rem;

	--color_dark: #fff; /* reused in header */

	--background-color: #fff;
	--color: #383838;
	--border-color: #ddd;
	--link-color: #222;
	--link-underline: rgba(0,0,0,.25);
	--shadow-color: rgba(0, 0, 0, 0.08);
	--external-link-underline: rgba(0,188,212,.6);
}

@media (prefers-color-scheme: dark) {
	:root {
		--background-color: #222;
		--color: var(--color_dark);
		--border-color: #444;
		--link-color: #fff;
		--link-underline: rgba(255,255,255,.45);
		--shadow-color: rgba(255, 255, 255, 0.25);
	}
}

/* Screen readers only */
.sr-only {
	position: absolute;
	height: 1px;
	width: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}
.hide {
	display: none;
}

* {
	box-sizing: border-box;
}
html {
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	overflow-y: scroll;
}
body {
	font-family: system-ui, sans-serif;
	background-color: var(--background-color);
	color: var(--color);
	margin: 0;
}

img {
	border: 0;
}

a,
a:visited,
a[href] {
	color: var(--link-color);
	text-decoration-color: var(--link-underline);
	text-decoration-thickness: 0.1em;
}
a[href]:hover {
	text-decoration-color: rgba(255,0,0,.3);
	text-decoration-thickness: .3em;
	text-underline-offset: -0.1em;
	text-decoration-skip-ink: none;
}

strong,
b {
	font-weight: 600;
}
s,
del {
	text-decoration-color: rgba(255, 0, 0, 0.6);
	text-decoration-thickness: 0.25em;
	opacity: 0.8;
}
hr {
	margin: 3em 0;
	border: none;
	border-top: 1px solid var(--border-color);
}
p {
	max-width: 42em;
	line-height: 1.6;
}

abbr {
	text-decoration: none;
}

iframe {
	border: none;
	width: 100%;
}

/* Blockquotes */
blockquote {
	font-family: Georgia, serif;
	font-size: 1.1875em; /* 19px /16 */
	color: #666;
	margin: 1.5em 0;
	padding: 0 1em;
	max-width: 31.57894736842em; /* 600px /19 */
	border-left: 6px solid var(--border-color);
}
@media (prefers-color-scheme: dark) {
	blockquote {
		color: #ccc;
	}
}
blockquote + blockquote {
	margin-top: 2em;
}

input[disabled],
button[disabled] {
	cursor: not-allowed;
}

/* Main */
main {
	font-size: 1.125em; /* 18px /16 */
}
main img {
	max-width: 100%;
}
main img[height] {
	height: auto;
}
main details {
	margin: 1rem 0;
}
main > details[open],
details[open].details-expand-bg {
	--details-bg: rgba(0, 0, 0, 0.08);
	background-color: var(--details-bg);
	box-shadow: 0 0 0 1rem var(--details-bg);
}
main > details[open] pre,
details[open].details-expand-bg pre {
	border-radius: 0;
}
@media (prefers-color-scheme: dark) {
	main > details[open],
	details[open].details-expand-bg {
		--details-bg: rgba(255, 255, 255, 0.08);
	}
}
details[open].details-rounded {
	border-radius: 0.1em;
}
main details[open] > summary {
	margin: 0 0 1em;
}

/* Headings */
h1,
h2,
h3,
h4,
h5,
.elv-hed,
.elv-h2,
.elv-h3,
.benchnine {
	font-family: BenchNine, system-ui, sans-serif;
	font-weight: 700;
}
h1 {
	margin: 0 0 .5em;
}
h1,
.elv-hed,
.elv-type1 {
	font-size: 2.666666666667em; /* 48px /18 */
}
main .elv-toc + #skip-content >  heading-anchors > h1:first-child {
	margin-top: 0.5em;
	line-height: 1.1;
}
main .breadcrumb + h1,
main h1:first-child,
main .elv-toc + #skip-content >  heading-anchors > h1:first-child {
	border-bottom: 1px solid #aaa;
}
@media (min-width: 55em) {
	/* 880px */
	main .elv-toc + #skip-content > heading-anchors > :is(h1, h2):first-child {
		margin-top: 0;
	}
}
h2,
.elv-h2 {
	border-bottom: 1px solid #ddd;
	margin: 2em 0 0.25em;
	letter-spacing: -0.5px;
}
h2,
.elv-h2,
.elv-type2 {
	font-size: 2.222222222222em; /* 40px /18 */
}
@media (prefers-color-scheme: dark) {
	h2,
	.elv-h2 {
		border-color: #555;
	}
}
h3,
.elv-h3 {
	margin-bottom: 0.5em;
}
h3,
.elv-h3,
.elv-type3 {
	font-size: 1.666666666667em; /* 30px /18 */
}
h4 {
	margin-bottom: 0.5em;
}
h4,
.elv-type4 {
	font-size: 1.444444444444em; /* 26px /18 */
}
h5 {
	margin-bottom: 0.5em;
}
h5,
.elv-type5 {
	font-size: 1.277777777778em; /* 23px /18 */
}
:is(h1, h2, h3, h4, h5) code {
	font-family: inherit;
}

/* Lists */
ul:last-child,
ol:last-child {
	margin-bottom: 0;
}
ul {
	padding: 0 1em;
}
li {
	padding: 0.5em 0;
	line-height: 1.6;
}
li:first-child:not([class]) {
	padding-top: 0;
}
li:last-child:not([class]) {
	padding-bottom: 0;
}
li ul,
li ol {
	margin-top: 1em;
}

.list-bare {
	list-style: none;
	padding: 0;
	margin: 0;
}
.list-bare > li {
	padding: 0;
	line-height: 2;
}
.list-bare-desc {
	display: block;
	font-size: 80%;
	color: #555;
	margin-bottom: 4px;
}
@media (prefers-color-scheme: dark) {
	.list-bare-desc {
		color: #bbb;
	}
}
.list-bare-desc:last-child {
	margin-bottom: 6px;
}
.list-bare-desc-avatar {
	margin-left: 29.4px;
}

/* Layout */
.elv-layout {
	padding: 1rem;
	margin: 0 auto;
	max-width: var(--layout-max);
	clear: both;
}
header.elv-layout {
	padding: 0 1rem;
}
footer.elv-layout {
	margin-bottom: 5em;
}
.elv-layout-full {
	max-width: none;
}
.elv-layout-toc {
	padding-block-start: 0;
}
@media (min-width: 55em) {
	/* 880px */
	.elv-layout-toc {
		padding: 0 2rem 2rem 16rem;
		position: relative;
	}
}

/* Definition Lists */
dl {
	display: grid;
	gap: 0 1em;
	grid-template-columns: auto 1fr;
}
dl.elv-list-vertical {
	grid-template-columns: auto;
}
dd {
	margin: 0;
}
dl:first-child {
	margin-top: 0;
}
dl:last-child {
	margin-bottom: 0;
}
.elv-toc dl {
	line-height: 1.6;
}

/* Skip to links */
.elv-skip {
	position: absolute;
	top: 0.25em;
	left: 1em;
	color: #fff;
	background-color: #353535;
	z-index: 1001;
	text-align: center;
}
.elv-skip a[href] {
	color: inherit;
}
.elv-skip a:focus {
	display: inline-block;
	cursor: pointer;
	padding: 0.5em;
}
.elv-skip a:not(:focus) {
	clip: rect(0 0 0 0);
	position: absolute;
	overflow: hidden;
}

/* Emoji */
.emoji {
	line-height: 1;
}

/* Filter container */
filter-container form {
	opacity: 0.3;
	pointer-events: none;
}
filter-container:defined form {
	opacity: 1;
	pointer-events: all;
}

/* Utility classes */
.f-b {
	font-weight: 700;
}
.nowrap {
	white-space: nowrap;
}
.und {
	text-decoration: underline;
}
.nound {
	text-decoration: none;
}
.ta-c {
	text-align: center;
}
.mt-0:first-of-type {
	margin-top: 0;
}
.mt-1 {
	margin-top: 0.5em;
}
.mt-2 {
	margin-top: 1em;
}
.mb-2 {
	margin-bottom: 1em;
}
.mb-4 {
	margin-bottom: 2em;
}
.mt-8 {
	margin-top: 4em;
}
.mb-8 {
	margin-bottom: 4em;
}
.util-stack {
	display: grid;
}
.util-stack > * {
	display: block;
	grid-area: 1/1;
}
.util-grow.util-grow {
	flex-grow: 999;
	place-items: center;
}

/* Font Awesome Icons */
.fa11ty-icon {
	margin: 0 .25em;
	width: 1.3em;
	height: 1.3em;
	vertical-align: text-bottom;
}
.fa-mastodon {
	color: #7b68da;
}
.fa-bluesky {
	color: #1285fe;
}
.fa-youtube {
	color: #f03;
}
.fa-discord {
	color: #5865f2;
}
.fa11ty-icon [href="#fas-fa-square-rss"] {
	color: #e57516;
}
.fa-font-awesome {
	color: #538cd7;
}
.fa11ty-npm {
	width: 2.2em;
	height: 2.2em;
	color: #c70000;
}

src/_includes/layouts/article.njk (6.5 KiB)

---
layout: simple.njk
---

<article class="article-content">
  {% if not published %}
  <div class="draft-notice">
    <strong>Draft:</strong> This article is not yet published and won't appear in the articles listing.
  </div>
  {% endif %}
  
  <div class="article-hero">
    <div class="article-image-section">
      <img src="{{ image or '/img/default-article.jpg' }}" alt="{{ title }}">
      <div class="article-image-overlay"></div>
    </div>
    <div class="article-tldr">
      <!-- TL;DR content will be moved here from article body -->
    </div>
  </div>
  
  <header class="article-header">
    <h1 class="article-title">{{ title }}</h1>
    <div class="article-meta">
      <time datetime="{{ date | htmlDateString }}"><i data-lucide="calendar"></i> {{ date | readableDate }}</time>
      {% if tags %}
      <div class="article-tags">
        {% for tag in tags %}
          {% if tag != "articles" %}
          <span class="tag">{{ tag }}</span>
          {% endif %}
        {% endfor %}
      </div>
      {% endif %}
    </div>
    {% if description %}
    <p class="article-description">{{ description }}</p>
    {% endif %}
  </header>

  <div class="article-body">
    {{ content | safe }}
  </div>

  <footer class="article-footer">
    <a href="/articles/" class="back-to-articles">← Back to Articles</a>
  </footer>
</article>

<style>
.article-content {
  max-width: 1200px;
}

.article-hero {
  display: flex;
  background: var(--color-surface-50);
  border: 1px solid var(--color-border-light-50);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  margin: 0;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  height: 500px;
}

.article-image-section {
  flex: 1.2;
  position: relative;
  background: var(--color-graphite-700);
}

.article-image-section img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.article-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(99, 102, 241, 0.3);
  pointer-events: none;
}

.article-tldr {
  flex: 0 0 400px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
  color: white;
  font-size: 0.9rem;
}

.article-header {
  padding: 2rem;
  background: var(--color-surface-50);
  border: 1px solid var(--color-border-light-50);
  border-top: none;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  margin-bottom: var(--space-xl);
  text-align: center;
}

.article-header h1 {
  margin-bottom: 1rem;
  color: var(--color-text);
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
}

.article-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}

.article-meta time {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.article-meta .lucide {
  width: 0.9rem;
  height: 0.9rem;
  color: var(--color-text-muted);
}

.article-tags {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: center;
}

.tag {
  background: var(--color-graphite-200);
  padding: 0.3rem 0.6rem;
  border-radius: var(--radius-md);
  font-size: 0.8rem;
  color: var(--color-graphite-800);
  border: 1px solid var(--color-graphite-400);
}

.article-description {
  font-size: 1.1rem;
  color: var(--color-text-light);
  line-height: 1.6;
  font-style: italic;
  margin: 0;
}

.article-body {
  line-height: 1.7;
}

.article-body h2 {
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}

.article-body h3 {
  margin-top: 2rem;
  margin-bottom: 0.8rem;
}

.article-body p {
  margin-bottom: 1.5rem;
}

.article-body ul, .article-body ol {
  margin-bottom: 1.5rem;
  padding-left: 2rem;
}

.article-body li {
  margin-bottom: 0.5rem;
}

.article-body blockquote {
  border-left: 4px solid var(--color-link);
  padding-left: 1.5rem;
  margin: 2rem 0;
  font-style: italic;
  color: var(--color-primary-light);
}

.article-body code {
  background: var(--color-border);
  padding: 0.2rem 0.4rem;
  border-radius: 3px;
  font-family: var(--font-family-monospace);
  font-size: 0.9rem;
}

.article-body pre {
  background: var(--color-border);
  padding: 1rem;
  border-radius: 6px;
  overflow-x: auto;
  margin: 1.5rem 0;
}

.article-body pre code {
  background: none;
  padding: 0;
}

.article-footer {
  border-top: 1px solid var(--color-border);
  padding-top: 2rem;
  margin-top: 3rem;
}

.back-to-articles {
  color: var(--color-link);
  text-decoration: none;
  font-weight: 500;
}

.back-to-articles:hover {
  color: var(--color-link-hover);
  text-decoration: underline;
}

.draft-notice {
  background: #fff3cd;
  border: 1px solid #ffeaa7;
  color: #856404;
  padding: 1rem;
  border-radius: 6px;
  margin-bottom: 2rem;
  font-size: 0.9rem;
}

.article-tldr .tldr-banner,
.tldr-banner {
  background: transparent;
  color: white;
  padding: 0;
  border-radius: 0;
  margin: 0;
  font-size: var(--text-base);
  border: none;
  box-shadow: none;
}

.article-tldr .tldr-banner strong,
.tldr-banner strong {
  color: rgba(255, 255, 255, 0.95);
  font-size: 1.56rem;
  font-weight: 700;
  display: block;
  margin-bottom: 1rem;
  text-align: center;
}

.article-tldr .tldr-banner ul,
.tldr-banner ul {
  margin: 0;
  padding-left: var(--space-lg);
  list-style-type: none;
}

.article-tldr .tldr-banner li,
.tldr-banner li {
  margin-bottom: 1.875rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
  font-size: 0.84rem;
}

.article-tldr .tldr-banner li:last-child,
.tldr-banner li:last-child {
  margin-bottom: 0;
}

/* Hide standalone TL;DR banners in article body when they appear in the hero */
.article-body .tldr-banner {
  display: none;
}

@media (max-width: 768px) {
  .article-hero {
    flex-direction: column;
    height: auto;
  }
  
  .article-image-section {
    flex: 0 0 250px;
  }
  
  .article-tldr {
    flex: none;
    padding: 1.5rem;
    font-size: 0.8rem;
  }
  
  .article-header {
    padding: 1.5rem;
    text-align: center;
  }
  
  .article-meta {
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  
  .article-header h1 {
    font-size: 2rem;
  }
}
</style>

<script>
document.addEventListener('DOMContentLoaded', function() {
  // Move TL;DR from article body to hero section
  const tldrBanner = document.querySelector('.article-body .tldr-banner');
  const tldrContainer = document.querySelector('.article-tldr');
  
  if (tldrBanner && tldrContainer) {
    // Move the TL;DR content to the hero section
    tldrContainer.appendChild(tldrBanner);
    // Make it visible again (CSS hides it in article-body)
    tldrBanner.style.display = 'block';
  }
});
</script>

src/_includes/layouts/base.njk (6.6 KiB)

---js
// <script>
let headerTitle = "Eleventy";

let social = {
	imgsrc: "https://www.11ty.dev/img/open-graph.jpg",
	imgalt: "The 11ty logo text with a small floating possum on a balloon"
};

let domain = process.env.URL || "https://www.11ty.dev";

let scriptImportMap = {
	"@sindresorhus/slugify": "https://cdn.jsdelivr.net/npm/@sindresorhus/slugify@2.2.1/+esm"
};

// For things that rely on the data cascade
let eleventyComputed = {
	title: function(data) {
		return data.titleOverride || data.newstitle || data.searchTitle || data.tiptitle || data.eleventyNavigation?.key || data.title || data.headerTitle;
	},
	social: {
		imgsrc: function({ domain, page, ogimageOverride }) {
			if(ogimageOverride) {
				return new URL(ogimageOverride, process.env.DEPLOY_PRIME_URL || domain).toString();
			}
			return `https://screenshot.11ty.app/${encodeURIComponent(domain + page.url + "?cache=1")}/opengraph/`;
		},
		imgalt: function({ domain, page }) {
			return `A screenshot of the web page at ${domain + page.url}`;
		},
		description: function({ versions, config }) {
			return `A docs page for Eleventy, a simpler static site generator.`;
		}
	}
};
---
<!doctype html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		{%- set subtitleText %}{{ title }}{% if title and title != "Eleventy is a simpler static site generator" %} — Eleventy{% endif %}{% endset %}
		<title>{{ subtitleText }}</title>
		<meta name="description" content="{{ subtitleText }}">
		<meta name="generator" content="{{ eleventy.generator }}">

		{%- if page.url != "/" %}
		<meta name="theme-color" media="(prefers-color-scheme: light)" content="#f2f2f2">
		<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#2a2a2a">
		{%- endif %}
		<meta name="theme-color" content="#1f1f1f">

{%- if scriptImportMap %}
		<script type="importmap">
			{
				"imports": {
{%- for key, url in scriptImportMap %}
					"{{ key }}": "{{ url }}"{% if not loop.last %},{% endif %}
{%- endfor %}
				}
			}
		</script>
{%- endif %}
		<link rel="preload" href="/css/fonts/benchnine-bold.woff2" as="font" type="font/woff2" crossorigin>

		<link rel="icon" type="image/x-icon" href="/favicon.ico">
		<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon.png">
		<link rel="apple-touch-icon" href="/img/favicon.png">
		<link rel="me" href="https://fosstodon.org/@eleventy">
		<link rel="me" href="https://neighborhood.11ty.dev/@11ty">

		<meta name="fediverse:creator" content="@11ty@neighborhood.11ty.dev">

		<!-- Open Graph -->
		<meta property="og:type" content="website">
		<meta property="og:url" content="https://www.11ty.dev{{ page.url }}">
		<meta property="og:site_name" content="Eleventy">
		<meta property="og:locale" content="en_US">
		<meta property="og:title" content="{{ title }}">
		<meta property="og:description" content="{{ social.description }}">
		<meta property="og:image" content="{{ social.imgsrc }}">
		<meta property="og:image:width" content="1280">
		<meta property="og:image:height" content="640">
		<meta property="og:image:alt" content="{{ social.imgalt }}">

		<!-- Feeds -->
		<link rel="alternate" href="/blog/feed.xml" title="Eleventy Blog" type="application/atom+xml">
		<link rel="alternate" href="/firehose/firehose.rss" title="Eleventy Firehose" type="application/rss+xml">
{%- if feedTitle and feedUrl %}
		<link rel="alternate" href="{{ feedUrl }}" title="{{ feedTitle }}" type="application/atom+xml">
{%- endif %}
		<link rel="search" href="/opensearch.xml" type="application/opensearchdescription+xml" title="Eleventy">

{# Not currently used:
{% include 'components/announcement.css' %}
#}

{%- set css %}
{% include "components/fonts.css" %}
{% include 'index.css' %}
{% include 'components/header.css' %}
{% include 'components/navigation.css' %}
{% include 'components/toc.css' %}
{% include 'components/direct-links.css' %}
{% include 'components/callout.css' %}
{% include 'components/grid-layout.css' %}
{% include 'components/seven-minute-tabs.css' %}
{% include 'components/supporters.css' %}

{% if page.url != '/' %}
	{# these components are not yet used on WebC pages #}
	{% include 'components/breadcrumb.css' %}

	{# these components have been converted to WebC #}
	{% include 'components/prism-theme.css' %}
	{% include 'components/code.css' %}
	{% include 'components/code-more.css' %}
	{% include 'components/inline-code.css' %}
	{% include 'components/layout.css' %}
	{# TODO reference these directly from node_modules at some point #}
	{% include 'components/flex-luthor/flex-luthor.css' %}
	{% include 'components/flex-luthor/flex-luthor-separators.css' %}
	{% include 'components/testimonials.css' %}
	{% include 'components/possum.css' %}
	{% include 'components/possum-home.css' %}

	/* Filters */
	.filter-tags--hide {
		display: none;
	}
	.select-filter {
		font-size: 16px;
		padding: .3em .5em;
	}
{% endif %}
{% endset %}

		<style>
		{{ css | cssmin | safe }}
		{% getBundle "css" %}
		</style>

{%- if page.url == '/' %}
		<link rel="stylesheet" href="{% getBundleFileUrl 'css', 'async' %}" media="print" onload="this.media='all'" fetchpriority="low">
		<noscript>
			<link rel="stylesheet" href="{% getBundleFileUrl 'css', 'async' %}" fetchpriority="low">
		</noscript>
{%- elseif config.env === "production" %}
	<link rel="stylesheet" href="/css/async.css" media="print" onload="this.media='all'" fetchpriority="low">
	<noscript>
		<link rel="stylesheet" href="/css/async.css" fetchpriority="low">
	</noscript>
{%- else %}
	<link rel="stylesheet" href="/css/async.css" fetchpriority="low">
{%- endif %}

		<script type="module">
		{% include "../components/details-force-state.js" %}
		{% include "../components/disabled-form.js" %}
		</script>
{%- if page.url == '/' %}
		{# see also "eleventy-js.njk" #}
		{% js %}{% include "../../../node_modules/@11ty/is-land/is-land.js" %}{% endjs %}
		{% js "async" %}{% include "components/active-background.js" %}{% endjs %}
		{% js "async" %}{% include "../../../node_modules/@zachleat/heading-anchors/heading-anchors.js" %}{% endjs %}
		{% js "async" %}{% include "../../../node_modules/@zachleat/details-utils/details-utils.js" %}{% endjs %}
		{% js "async" %}{% include "../../../node_modules/@zachleat/seven-minute-tabs/seven-minute-tabs.js" %}{% endjs %}

		<script type="module" src="{% getBundleFileUrl 'js' %}"></script>
		<script type="module" src="{% getBundleFileUrl 'js', 'async' %}"></script>
{%- else %}
		<script src="/js/eleventy.js" type="module"></script>
{%- endif %}
	</head>
	<body>
		{{ content | safe }}

		<!-- Built on {{ config.now | newsDate }} by Eleventy -->
		<div>
			{% getBundle "fontawesome" %}
		</div>
	</body>
</html>

src/_includes/layouts/blog.md (1.1 KiB)


title: Eleventy Blog layout: layouts/docs.njk eleventyComputed: social: description: "An Eleventy blog post published on {{ page.date | newsDate('LLLL yyyy') }}."


{{ newstitle }}

{{ page.date | newsDate }}
{%- if postAuthor and postAuthors[postAuthor] %} {%- endif %}
{% emoji "šŸ“¢" %} Subscribe to the Eleventy News Feed

{{ content | safe }}

{% if not hideRelatedBlogPosts %}

Read more blog posts:

{% set previousPost = collections.blog | getPreviousCollectionItem(page) %} {% set nextPost = collections.blog | getNextCollectionItem(page) %}

{% if nextPost %}- Next: {{ nextPost.data.newstitle }}{% endif %} {% if previousPost %}- Previous: {{ previousPost.data.newstitle }}{% endif %}

{%- endif %}

src/_includes/layouts/docs.njk (1.7 KiB)

---
layout: layouts/main.njk
headerClass: elv-header-docs
isDocs: true
---
{% if eleventyNavigation and eleventyNavigation.parent %}
<nav class="breadcrumb" aria-labelledby="breadcrumb">
  <div class="sr-only" id="breadcrumb">Breadcrumbs: </div>
  {{ eleventyNavigation.parent | navBreadcrumbs | eleventyNavigationToHtml({ listClass: 'fl fl-inline', activeListItemClass: 'breadcrumb-active' }) | safe }}
</nav>
{% endif %}
{% if pageTitle %}<h1>{{ pageTitle | safe }}</h1>{% endif %}

{{ content | safe }}

{%- if not overrideCommunityLinks and (communityLinks or communityLinksKey) %}
<div class="elv-community" id="community-resources">
  <h2>From the Community</h2>
  {%- include "community-contributed.njk" -%}
</div>
{%- endif %}

{% if eleventyNavigation and eleventyNavigation.key %}
{%- set navKey = eleventyNavigation.parent or eleventyNavigation.key -%}
{%- set otherPages = navKey | navFiltered -%}
{% if navKey != "Eleventy Documentation" and navKey != "Ecosystem" and otherPages.length > 1 %}
<hr>
<h3 data-ha-exclude>{% if eleventyNavigation.parent %}Other pages in {% endif %}{{ navKey }}</h3>
{{ otherPages | eleventyNavigationToHtml({ activeKey: eleventyNavigation.key, listClass: 'inlinelist inlinelist-no-nest', listItemClass: 'inlinelist-item', activeListItemClass: 'elv-cat-list-active' }) | safe }}
{% endif %}
{% endif %}

{% if relatedLinks or (relatedKey and collections[ "related-" + relatedKey ].length) %}
<hr>
<h3>Related Docs</h3>
<ul>
{% for related in collections[ "related-" + relatedKey ] %}
	<li><a href="{{ related.url }}">{{ related.data.relatedTitle or related.data.title }}</a></li>
{%- endfor %}
{% for url,title in relatedLinks %}
	<li><a href="{{ url }}">{{ title }}</a></li>
{% endfor %}
</ul>
{% endif %}

src/_includes/layouts/langs.njk (887 B)

---
layout: layouts/docs.njk
---
{% css %}
/* Language List */
.elv-langlist {
	font-size: 0.8333333333333em; /* 15px /18 */
	background-color: #f7f7f7;
	padding: .5rem;
	margin: 2em 0;
}
@media (prefers-color-scheme: dark) {
	.elv-langlist {
		background-color: #080808;
	}
}
.elv-langlist-hed {
	margin: 0;
	border: none;
	font-weight: 700;
}
.elv-langlist > .inlinelist {
	display: inline;
	margin-left: 1em;
}
.elv-langlist-logo {
	max-width: 200px;
}
{% endcss %}

<h1>{{ eleventyNavigation.key }}{% if addedInVersion %}{% addedin addedInVersion%}{% endif %}</h1>

<div class="elv-langlist" data-pagefind-ignore>
	<span class="elv-langlist-hed">Template Languages:</span>
{% templatelangs templatetypes, page %}
</div>

{% if logoImage %}
<p>{% image logoImage, "Logo for " + eleventyNavigation.key, [200, 400], "elv-langlist-logo", "200px" %}</p>
{% endif %}

{{ content | safe }}

src/_includes/layouts/main.njk (1.7 KiB)

---
layout: layouts/base.njk
headerClass: elv-header-default
---
<div class="elv-skip">
	<a href="#skip-nav">Skip to navigation</a>
	<a href="#skip-content">Skip to main content</a>
</div>

{% include "header.njk" %}

{% if config.outdated -%}
<div class="elv-callout-sticky">{% callout "warn" %}This is an <strong>older version of Eleventy</strong>. Go to the <a href="https://www.11ty.dev/docs/">newest Eleventy docs</a> (current path: <a href="https://www.11ty.dev{{ page.url }}"><code>{{ page.url }}</code></a>) or the <a href="https://www.11ty.dev/docs/versions/">full release history</a>.{% endcallout %}</div>
{% endif -%}
{% if config.prerelease -%}
<div class="elv-callout-sticky">{% callout "info" %}These docs are for an upcoming version of Eleventy and <em>subject to change</em>—take extra care before linking here! Look to the <a href="https://www.11ty.dev/docs/">latest docs</a> instead (or full <a href="https://www.11ty.dev/docs/versions/">release history</a>).{% endcallout %}</div>
{% endif -%}

<main class="elv-layout elv-layout-toc" {% if not excludeFromSearch %} data-pagefind-body{% endif %}>
	{% include "components/docs-toc.njk" %}
	<div id="skip-content">
		{%- if not isDocs %}
		<h1 class="elv-hed">{{ headerTitle | safe }}</h1>
		{%- endif %}
		<heading-anchors selector="h2,h3,h4">{{ content | safe }}</heading-anchors>
	</div>
</main>

<footer class="elv-footer elv-layout elv-layout-toc">
	{% include "social-callout.njk" %}
{% if not ignoreSupporters %}
	{% include "supporters.njk" %}
{% endif %}
{%- if ignoreGitHubButtons %}{% else %}
	{% callout %}
		{% include "star-on-github.njk" %}
	{% endcallout %}
{%- endif %}

	{% include "footer-nav.njk" %}
</footer>

src/_includes/layouts/quicktips.njk (460 B)

---
layout: layouts/docs.njk
---
<h1>{{ title | safe }}</h1>

{{ content | safe }}

<ul class="quicktipstoc">
	<li><h3><strong>All <a href="/docs/quicktips/">Quick Tips</a></strong></h3></li>
{% for tip in collections.quicktips %}
	<li{% if page.url == tip.url %} class="active"{% endif %}><a href="{{ tip.url }}">{{ tip.data.title }}</a></li>
{%- endfor %}
  <li>View all of the <a href="/docs/quicktips/"><strong>Eleventy Quick Tips</strong></a>.</li>
</ul>

src/_includes/layouts/simple.njk (49.4 KiB)

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{% if title %}{{ title }} — {% endif %}{{ config.site.title or "Sibylline Software" }}</title>
    <meta name="description" content="{{ description or config.site.description or 'Your trusted partner for innovative digital solutions' }}">
    <meta name="generator" content="{{ eleventy.generator }}">
    
    <link rel="icon" type="image/x-icon" href="/favicon.ico">
    <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon.png">
    <link rel="apple-touch-icon" href="/img/favicon.png">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tocbot@4.28.2/dist/tocbot.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lucide@latest/dist/umd/lucide.css">
    
    <!-- Google tag (gtag.js) -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-H63XXGRLBY"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'G-H63XXGRLBY');
    </script>
    
    <style>
        /* Professional minimalist design system */
        :root {
            --font-family-default: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
            --font-family-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
            --font-family-monospace: 'SF Mono', 'Monaco', 'Consolas', 'Liberation Mono', monospace;
            
            /* Sophisticated graphite palette */
            --color-graphite-900: #0f0f0f;
            --color-graphite-800: #1a1a1a;
            --color-graphite-700: #2a2a2a;
            --color-graphite-600: #404040;
            --color-graphite-500: #525252;
            --color-graphite-400: #737373;
            --color-graphite-300: #a3a3a3;
            --color-graphite-200: #d4d4d4;
            --color-graphite-100: #f5f5f5;
            --color-graphite-50: #fafafa;
            
            /* Dark semantic colors */
            --color-primary: var(--color-graphite-100);
            --color-secondary: var(--color-graphite-300);
            --color-tertiary: var(--color-graphite-400);
            --color-background: var(--color-graphite-800);
            --color-surface: var(--color-graphite-600);
            --color-text: var(--color-graphite-100);
            --color-text-light: var(--color-graphite-300);
            --color-text-muted: var(--color-graphite-500);
            --color-border: var(--color-graphite-750);
            --color-border-light: var(--color-graphite-775);
            
            /* Muted accent colors */
            --color-accent: #6366f1;
            --color-accent-hover: #4f46e5;
            --color-accent-light: rgba(99, 102, 241, 0.1);
            
            /* Add intermediate graphite shades */
            --color-graphite-775: #202020;
            --color-graphite-750: #242424;
            --color-graphite-650: #383838;
            
            /* Semi-transparent surface and border colors for sections */
            --color-surface-50: rgba(64, 64, 64, 0.5);
            --color-border-light-50: rgba(32, 32, 32, 0.5);
            
            /* Spacing scale */
            --space-xs: 0.25rem;
            --space-sm: 0.5rem;
            --space-md: 1rem;
            --space-lg: 1.5rem;
            --space-xl: 2rem;
            --space-2xl: 3rem;
            --space-3xl: 4rem;
            --space-4xl: 6rem;
            --space-5xl: 8rem;
            
            /* Typography scale */
            --text-xs: 0.75rem;
            --text-sm: 0.875rem;
            --text-base: 1rem;
            --text-lg: 1.125rem;
            --text-xl: 1.25rem;
            --text-2xl: 1.5rem;
            --text-3xl: 1.875rem;
            --text-4xl: 2.25rem;
            --text-5xl: 3rem;
            --text-6xl: 3.75rem;
            
            /* Line heights */
            --leading-tight: 1.25;
            --leading-snug: 1.375;
            --leading-normal: 1.5;
            --leading-relaxed: 1.625;
            --leading-loose: 2;
            
            /* Border radius */
            --radius-sm: 0.125rem;
            --radius-md: 0.375rem;
            --radius-lg: 0.5rem;
            --radius-xl: 0.75rem;
            
            /* Shadows */
            --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
            --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
            --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
            --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
        }
        
        * {
            box-sizing: border-box;
        }
        
        body {
            font-family: var(--font-family-default);
            font-size: var(--text-base);
            line-height: var(--leading-relaxed);
            color: var(--color-text);
            background: var(--color-background);
            margin: 0;
            padding: 0;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        
        /* Header */
        .header {
            background: var(--color-background);
            border-bottom: 1px solid var(--color-border-light);
            padding: var(--space-lg) 0;
            position: sticky;
            top: 0;
            backdrop-filter: blur(10px);
            background: rgba(26, 26, 26, 0.95);
            z-index: 100;
        }
        
        .header-content {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 var(--space-xl);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .header h1 {
            margin: 0;
            font-size: var(--text-lg);
            font-weight: 600;
            font-family: var(--font-family-display);
        }
        
        .header h1 a {
            color: var(--color-text);
            text-decoration: none;
            transition: color 0.2s ease;
        }
        
        .header h1 a:hover {
            color: var(--color-accent);
        }
        
        .nav ul {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            gap: var(--space-2xl);
        }
        
        .nav a {
            color: var(--color-text-light);
            text-decoration: none;
            font-weight: 500;
            font-size: var(--text-sm);
            transition: color 0.2s ease;
            letter-spacing: 0.025em;
        }
        
        .nav a:hover {
            color: var(--color-text);
        }
        
        /* Main content */
        .main {
            max-width: 1200px;
            margin: 0 auto;
            padding: var(--space-2xl) var(--space-xl) var(--space-4xl);
        }
        
        /* Typography */
        h1, h2, h3, h4, h5, h6 {
            font-family: var(--font-family-display);
            font-weight: 600;
            color: var(--color-text);
            margin-top: var(--space-3xl);
            margin-bottom: var(--space-lg);
            line-height: var(--leading-tight);
            letter-spacing: -0.025em;
        }
        
        h1 {
            font-size: var(--text-5xl);
            margin-top: 0;
            line-height: var(--leading-tight);
        }
        
        h2 {
            font-size: var(--text-3xl);
            margin-top: var(--space-5xl);
        }
        
        h3 {
            font-size: var(--text-2xl);
            margin-top: var(--space-3xl);
        }
        
        p {
            color: var(--color-text-light);
            margin-bottom: var(--space-xl);
            font-size: var(--text-lg);
            line-height: var(--leading-relaxed);
        }
        
        a {
            color: var(--color-accent);
            text-decoration: none;
            transition: color 0.2s ease;
        }
        
        a:hover {
            color: var(--color-accent-hover);
        }
        
        strong {
            color: var(--color-text);
            font-weight: 600;
        }
        
        ul, ol {
            margin-bottom: var(--space-xl);
            padding-left: var(--space-xl);
        }
        
        li {
            margin-bottom: var(--space-sm);
            color: var(--color-text-light);
            line-height: var(--leading-relaxed);
        }
        
        hr {
            border: none;
            border-top: 1px solid var(--color-border);
            margin: var(--space-5xl) 0;
        }
        
        /* Footer */
        .footer {
            background: var(--color-surface);
            border-top: 1px solid var(--color-border-light);
            text-align: center;
            padding: var(--space-3xl) var(--space-xl);
            margin-top: var(--space-5xl);
        }
        
        .footer p {
            color: var(--color-text-muted);
            font-size: var(--text-sm);
            margin: 0;
        }
        
        .footer a {
            color: var(--color-text-light);
        }
        
        /* Floating Table of Contents */
        .toc-container {
            position: fixed;
            right: 20px;
            top: 30%;
            width: 220px;
            z-index: 1000;
            opacity: 0;
            transform: translateX(30px);
            transition: all 0.4s ease;
        }
        
        .toc-container.visible {
            opacity: 1;
            transform: translateX(0);
        }
        
        .toc-title {
            display: none;
        }
        
        .toc {
            padding: var(--space-md);
        }
        
        /* Custom tocbot styling */
        .toc ol, .toc ul {
            list-style: none;
            margin: 0;
            padding: 0;
        }
        
        .toc li {
            margin: 0 0 var(--space-sm) 0;
            padding: 0;
        }
        
        .toc a {
            display: block;
            padding: var(--space-sm) var(--space-md);
            color: var(--color-text-muted);
            text-decoration: none;
            font-size: var(--text-sm);
            font-weight: 400;
            border-radius: var(--radius-sm);
            transition: all 0.2s ease;
            line-height: 1.4;
        }

        /* White borders only on top-level TOC items */
        .toc > .toc-list > .toc-list-item > a {
            border-left: 2px solid var(--color-border);
        }
        
        .toc a:hover {
            color: var(--color-text-light);
            background: transparent;
        }

        /* White border hover state only for top-level items */
        .toc > .toc-list > .toc-list-item > a:hover {
            border-left-color: var(--color-text-light);
        }
        
        .toc a.is-active-link {
            color: var(--color-text);
            background: transparent;
            font-weight: 600;
        }

        /* Active state border colors only for top-level items */
        .toc > .toc-list > .toc-list-item > a.is-active-link {
            border-left-color: var(--color-accent);
        }
        
        .toc .toc-list-item.is-active-li > a {
            color: var(--color-text);
            font-weight: 600;
        }

        /* Active state border colors only for top-level items */
        .toc > .toc-list > .toc-list-item.is-active-li > a {
            border-left-color: var(--color-accent);
        }
        
        /* Override Tocbot's default green styling */
        .toc a.is-active-link,
        .toc .is-active-link {
            color: var(--color-text) !important;
            background: transparent !important;
        }

        /* Border color overrides only for top-level items */
        .toc > .toc-list > .toc-list-item > a.is-active-link,
        .toc > .toc-list > .toc-list-item > .is-active-link {
            border-left-color: var(--color-accent) !important;
        }
        
        /* Override the green ::before pseudo-element that creates the indicator line */
        .toc .is-active-link::before {
            background-color: var(--color-accent) !important;
        }
        
        .toc .is-active-li > a {
            color: var(--color-text) !important;
        }

        /* Border color for active list items only on top-level */
        .toc > .toc-list > .toc-list-item.is-active-li > a {
            border-left-color: var(--color-accent) !important;
        }
        
        /* Nested levels */
        .toc .toc-list-item {
            position: relative;
        }
        
        .toc .toc-list-item.is-collapsible {
            padding-left: 0;
        }
        
        .toc .toc-list .toc-list {
            padding-left: var(--space-md);
            transition: all 0.3s ease;
            overflow: hidden;
        }
        
        .toc .toc-list .toc-list a {
            font-size: var(--text-xs);
            opacity: 0.8;
        }

        /* Collapsible TOC styles */
        .toc-indicator {
            display: inline-block;
            margin-right: var(--space-xs);
            font-size: var(--text-xs);
            color: var(--color-accent);
            transition: transform 0.2s ease;
            cursor: pointer;
            user-select: none;
        }
        
        /* CRITICAL: Always show top-level section headings - never hide them */
        .toc > .toc-list > .toc-list-item > a {
            display: block !important;
            opacity: 1 !important;
            visibility: visible !important;
        }
        
        /* OVERRIDE: Prevent the generic .is-collapsed rule from hiding entire TOC items */
        .toc .toc-list-item.is-collapsed {
            max-height: none !important;
            overflow: visible !important;
        }
        
        /* Only hide the nested sub-lists when collapsed, NOT the main section titles */
        .toc .toc-list-item.is-collapsed > .toc-list {
            max-height: 0 !important;
            opacity: 0;
            margin: 0;
            padding: 0;
            overflow: hidden;
        }
        
        .toc .toc-list-item:not(.is-collapsed) > .toc-list {
            max-height: 1000px;
            opacity: 1;
        }

        /* Fast animation for TOC expansion/collapse */
        .toc .toc-list-item > .toc-list {
            transition: max-height 0.15s ease-out, opacity 0.1s ease-out;
        }

        /* Add dark grey left border to nested TOC items (H3 level) ONLY */
        .toc .toc-list-item .toc-list .toc-list-item {
            border-left: 2px solid #666;
            padding-left: 8px;
            margin-left: 4px;
        }

        /* Remove borders from links inside nested items to avoid double borders */
        .toc .toc-list-item .toc-list .toc-list-item .toc-link {
            border-left: none !important;
        }

        /* CRITICAL FIX: Remove light grey background from ::before pseudo-elements on H3 (nested) TOC links */
        .toc .toc-list .toc-list-item .toc-link::before,
        .toc .toc-list .toc-list .toc-list-item .toc-link::before {
            background: transparent !important;
            background-color: transparent !important;
        }
        
        .toc .toc-list-item.is-collapsed .toc-indicator {
            transform: rotate(0deg);
        }
        
        .toc .toc-list-item:not(.is-collapsed) .toc-indicator {
            transform: rotate(90deg);
        }
        
        /* Enhanced styling for section headers in TOC - always visible and clean */
        .toc .toc-list-item.is-collapsible > a {
            font-weight: 600;
            color: var(--color-text);
            display: block !important;
            opacity: 1 !important;
        }

        /* White border styling only for top-level collapsible items */
        .toc > .toc-list > .toc-list-item.is-collapsible > a {
            border-left-width: 3px;
        }
        
        /* Product entries should be more subdued */
        .toc .toc-list .toc-list-item a {
            color: var(--color-text-muted);
            font-weight: 400;
            padding-left: var(--space-lg);
        }
        
        .toc .toc-list .toc-list-item a:hover {
            color: var(--color-text-light);
        }

        /* Marketing blurbs */
        .marketing-blurb {
            margin: var(--space-4xl) 0;
            text-align: center;
            position: relative;
            overflow: hidden;
            color: var(--color-text);
            font-size: var(--text-xl);
            font-weight: 500;
            line-height: var(--leading-relaxed);
            background: linear-gradient(90deg, 
                var(--color-text-light) 0%, 
                var(--color-text) 20%, 
                #ffffff 40%, 
                #ffffff 60%, 
                var(--color-text) 80%, 
                var(--color-text-light) 100%
            );
            background-size: 200% 100%;
            background-clip: text;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: textShimmer 20s ease-in-out infinite;
        }

        @keyframes textShimmer {
            0%, 100% { background-position: -200% 0; }
            50% { background-position: 200% 0; }
        }

        .marketing-blurb strong {
            font-weight: 600;
            /* Inherit the shimmer effect from parent */
            background: inherit;
            background-clip: inherit;
            -webkit-background-clip: inherit;
            -webkit-text-fill-color: inherit;
        }

        /* Main title shimmer */
        .hero-content h1 {
            background: linear-gradient(90deg, 
                var(--color-text-light) 0%, 
                var(--color-text) 25%, 
                #ffffff 50%, 
                var(--color-text) 75%, 
                var(--color-text-light) 100%
            );
            background-size: 200% 100%;
            background-clip: text;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: titleShimmer 9s ease-in-out infinite;
        }

        @keyframes titleShimmer {
            0%, 100% { background-position: -200% 0; }
            50% { background-position: 200% 0; }
        }

        @keyframes tagShine {
            0% { background-position: -200% 0; }
            100% { background-position: 200% 0; }
        }

        /* Lucide Icons */
        .lucide {
            width: 1.2em;
            height: 1.2em;
            color: var(--color-accent);
            margin-right: var(--space-sm);
            vertical-align: middle;
            stroke-width: 2;
            filter: drop-shadow(0 0 4px rgba(99, 102, 241, 0.2));
        }

        /* Service cards icon styling */
        .service-card .lucide {
            width: 2.5em;
            height: 2.5em;
            margin-right: var(--space-md);
            filter: drop-shadow(0 0 6px rgba(99, 102, 241, 0.4));
        }

        /* Discovery process icons */
        .discovery-option h3 .lucide {
            width: 2.5em;
            height: 2.5em;
            margin-right: var(--space-md);
            color: var(--color-accent);
            filter: drop-shadow(0 0 6px rgba(99, 102, 241, 0.3));
        }

        /* Mermaid diagram styling */
        .mermaid {
            display: flex;
            justify-content: center;
            margin: 2rem 0;
            background: var(--color-surface-50);
            border: 1px solid var(--color-border-light-50);
            border-radius: var(--radius-lg);
            padding: 1.5rem;
        }
        
        .mermaid svg {
            max-width: 100%;
            height: auto;
        }

        /* Responsive design */
        @media (max-width: 1400px) {
            .toc-container {
                display: none;
            }
        }
        
        @media (max-width: 768px) {
            .header-content {
                flex-direction: column;
                gap: var(--space-lg);
                padding: 0 var(--space-lg);
            }
            
            .nav ul {
                gap: var(--space-lg);
            }
            
            .main {
                padding: var(--space-3xl) var(--space-lg);
            }
            
            h1 {
                font-size: var(--text-4xl);
            }
            
            h2 {
                font-size: var(--text-2xl);
            }
            
            h3 {
                font-size: var(--text-xl);
            }
            
            p {
                font-size: var(--text-base);
            }
        }
        
        /* Article Card Component Styling - Modal Style Layout */
        .article-card-component {
          display: flex;
          background: var(--color-surface-50);
          border: 1px solid var(--color-border-light-50);
          border-radius: var(--radius-lg);
          margin: var(--space-xl) 0;
          height: 300px;
          overflow: hidden;
          transition: all 0.3s ease;
          position: relative;
        }
        
        .article-card-component::after {
          z-index: 0;
        }
        
        .article-image-sidebar {
          flex: 0 0 30%;
          position: relative;
          background: var(--color-graphite-700);
        }
        
        .article-image-sidebar img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          display: block;
        }
        
        .article-image-overlay {
          position: absolute;
          inset: 0;
          background: linear-gradient(
            to bottom,
            rgba(99, 102, 241, 0.3) 25%,
            rgba(99, 102, 241, 0.5) 55%,
            rgba(99, 102, 241, 0.7) 100%
          );
          z-index: 1;
          pointer-events: none;
        }
        
        .article-content-area {
          flex: 1;
          padding: 1.25rem;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
        }
        
        .article-header {
          flex-shrink: 0;
        }
        
        .article-snippet {
          flex: 1;
          display: grid;
          grid-template-columns: auto 1fr;
          column-gap: var(--space-sm);
          align-items: center;
          justify-content: center;
        }
        
        .article-card-footer {
          flex-shrink: 0;
        }
        
        .article-card-component:hover {
          transform: translateY(-4px);
          border-color: var(--color-accent);
          box-shadow: var(--shadow-lg);
          border-top: 3px solid var(--color-accent);
        }
        
        .article-card-title {
          margin: 0 var(--space-lg) 1rem var(--space-lg);
          font-size: 1.875rem;
          font-weight: 700;
          line-height: 1.3;
          text-align: center;
        }
        
        .article-card-title a {
          color: var(--color-text);
          text-decoration: none;
          transition: color 0.2s ease;
        }
        
        .article-card-title a:hover {
          color: var(--color-accent);
        }
        
        .article-card-meta {
          display: flex;
          align-items: center;
          justify-content: center;
          gap: 0.75rem;
          margin: 0.5rem 0;
          font-size: 0.9375rem;
          color: var(--color-text-muted);
        }
        
        .date-badge {
          display: inline-flex;
          align-items: center;
          gap: 0.25rem;
          padding: 0.125rem 0.5rem;
          border-radius: 999px;
          background: var(--color-surface);
          color: var(--color-text-light);
          font-size: 0.875rem;
          white-space: nowrap;
          border: 1px solid var(--color-border-light);
        }
        
        .date-badge .lucide,
        .date-badge i {
          width: 14px;
          height: 14px;
          flex-shrink: 0;
        }
        
        .article-card-tags {
          display: flex;
          gap: 0.25rem;
          flex-wrap: wrap;
        }
        
        .article-tag {
          display: inline-block;
          padding: 0.125rem 0.375rem;
          border-radius: var(--radius-md);
          font-size: 0.625rem;
          font-weight: 500;
          background: var(--color-graphite-200);
          color: var(--color-graphite-800);
          border: 1px solid var(--color-graphite-400);
        }
        
        .article-card-excerpt {
          color: var(--color-text-light);
          line-height: 1.5;
          font-size: 1.125rem;
          overflow: hidden;
          display: -webkit-box;
          text-align: center;
          margin: 0 var(--space-lg);
          -webkit-line-clamp: 3;
          -webkit-box-orient: vertical;
          margin: 0;
        }
        
        .article-card-footer {
          text-align: center;
          padding-top: 0.25rem;
          margin-top: 0.5rem;
        }
        
        .article-card-hint {
          color: var(--color-text-muted);
          font-size: 0.75rem;
          font-style: italic;
          opacity: 0.7;
          transition: opacity 0.2s ease;
        }
        
        .article-card-component:hover .article-card-hint {
          opacity: 1;
          color: var(--color-text-light);
        }
        
        /* Accessibility - Respect reduced motion preferences */
        @media (prefers-reduced-motion: reduce) {
          .article-tag::before {
            animation: none !important;
          }
        }
        
        /* Unified Button Component Styles */
        
        /* Base Button */
        .btn-unified {
          position: relative;
          border-radius: var(--radius-lg);
          font-weight: 600;
          font-size: var(--text-base);
          transition: all 0.2s ease;
          border: none;
          cursor: pointer;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          text-decoration: none;
          overflow: hidden;
          color: white;
        }

        /* Primary Button (Discover What's Possible style) */
        .btn-unified.btn-primary {
          background: linear-gradient(
            to right, 
            var(--color-accent) 20%, 
            var(--color-accent) 35%, 
            rgba(115, 125, 247, 1) 42%, 
            rgba(130, 140, 248, 1) 50%, 
            rgba(115, 125, 247, 1) 58%, 
            var(--color-accent) 65%, 
            var(--color-accent) 100%
          );
          background-size: 200% auto;
          animation: tagShine 6s linear infinite;
        }

        .btn-unified.btn-primary .btn-inner {
          display: flex;
          align-items: center;
          justify-content: center;
          gap: var(--space-sm);
          padding: var(--space-md) var(--space-xl);
          margin: 2px;
          background: var(--color-accent);
          border-radius: calc(var(--radius-lg) - 1px);
          color: white;
          width: 100%;
          height: 100%;
        }

        .btn-unified.btn-primary .btn-inner .lucide {
          color: rgba(180, 220, 255, 0.9);
          width: 1em;
          height: 1em;
        }

        .btn-unified.btn-primary:hover {
          transform: translateY(-1px);
          box-shadow: var(--shadow-lg);
          color: white;
        }

        /* Secondary Button (Learn My Approach style) */
        .btn-unified.btn-secondary {
          background: linear-gradient(
            to right, 
            var(--color-border) 20%, 
            var(--color-border) 35%, 
            rgba(156, 163, 175, 0.2) 42%, 
            rgba(209, 213, 219, 0.225) 50%, 
            rgba(156, 163, 175, 0.2) 58%, 
            var(--color-border) 65%, 
            var(--color-border) 100%
          );
          background-size: 200% auto;
          animation: tagShine 6s linear infinite;
          color: var(--color-text);
        }

        .btn-unified.btn-secondary .btn-inner {
          display: flex;
          align-items: center;
          justify-content: center;
          gap: var(--space-sm);
          padding: var(--space-md) var(--space-xl);
          margin: 2px;
          background: var(--color-background);
          border-radius: calc(var(--radius-lg) - 1px);
          color: var(--color-text);
          width: 100%;
          height: 100%;
        }

        .btn-unified.btn-secondary .btn-inner .lucide {
          color: rgba(180, 220, 255, 0.7);
          width: 1em;
          height: 1em;
        }

        .btn-unified.btn-secondary:hover {
          border-color: var(--color-accent);
          color: var(--color-accent);
          transform: translateY(-1px);
        }

        .btn-unified.btn-secondary:hover .btn-inner {
          color: var(--color-accent);
        }

        /* Dark Button (alternative dark variant) */
        .btn-unified.btn-dark {
          background: var(--color-graphite-700);
          color: white;
          border: 1px solid var(--color-graphite-600);
        }

        .btn-unified.btn-dark .btn-inner {
          display: flex;
          align-items: center;
          justify-content: center;
          gap: var(--space-sm);
          padding: var(--space-md) var(--space-xl);
          margin: 2px;
          background: var(--color-graphite-700);
          border-radius: calc(var(--radius-lg) - 1px);
          color: white;
          width: 100%;
          height: 100%;
        }

        .btn-unified.btn-dark .btn-inner .lucide {
          color: rgba(180, 220, 255, 0.9);
          width: 1em;
          height: 1em;
        }

        .btn-unified.btn-dark:hover {
          background: var(--color-graphite-600);
          border-color: var(--color-accent);
          transform: translateY(-1px);
          box-shadow: var(--shadow-lg);
        }

        /* Button Sizes */
        .btn-unified.btn-sm .btn-inner {
          padding: var(--space-sm) var(--space-lg);
          font-size: var(--text-sm);
        }

        .btn-unified.btn-lg .btn-inner {
          padding: var(--space-lg) var(--space-2xl);
          font-size: var(--text-lg);
        }

        .btn-unified.btn-xl .btn-inner {
          padding: var(--space-xl) var(--space-3xl);
          font-size: var(--text-xl);
        }

        /* Block Button */
        .btn-unified.btn-block {
          width: 100%;
          display: flex;
        }

        /* Accessibility - Respect reduced motion preferences for unified buttons */
        @media (prefers-reduced-motion: reduce) {
          .btn-unified.btn-primary {
            animation: none !important;
          }
          
          .btn-unified:hover {
            transform: none;
          }
        }

        /* Fix for buttons wrapped in paragraph tags by Markdown processor */
        p .btn-unified {
          display: inline-flex !important;
        }
        
        p .project-cta,
        p .domain-cta {
          display: block !important;
          margin: var(--space-lg) 0 !important;
        }

        /* Responsive Design for unified buttons */
        @media (max-width: 768px) {
          .btn-unified .btn-inner {
            padding: var(--space-sm) var(--space-lg);
            font-size: var(--text-sm);
          }
          
          .btn-unified, .btn-unified.btn-secondary {
            text-align: center;
          }
        }
        
        /* Responsive overrides for article cards */
        @media (max-width: 768px) {
          .article-card-component {
            flex-direction: column;
            height: 280px;
            position: relative;
          }
          
          .article-card-component::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(99, 102, 241, 0.3);
            pointer-events: none;
            z-index: 1;
          }
          
          .article-image-sidebar {
            flex: 1;
            position: relative;
          }
          
          .article-image-sidebar img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center center;
          }
          
          /* Enhanced dark overlay for mobile */
          .article-image-overlay {
            position: absolute;
            top: 25%;
            bottom: 0;
            left: 0;
            right: 0;
            background: linear-gradient(
              to bottom,
              transparent 25%,
              rgba(0, 0, 0, 0.6) 55%,
              rgba(0, 0, 0, 0.9) 100%
            );
            z-index: 1;
            pointer-events: none;
          }
          
          /* Position content over the image */
          .article-content-area {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            padding: 1rem 1rem 1rem;
            background: rgba(0, 0, 0, 0.525);
            color: white;
            z-index: 2;
            min-height: auto;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
          }
          
          .article-card-title {
            font-size: 1.25rem;
            margin: 0 0 0.5rem 0;
            text-align: left;
          }
          
          .article-card-title a {
            color: white;
            text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
          }
          
          .article-card-title a:hover {
            color: white;
            opacity: 0.9;
          }
          
          .article-snippet {
            display: grid;
            grid-template-columns: auto 1fr;
            column-gap: 1rem;
            align-items: start;
            margin: 0;
          }
          
          .date-badge {
            background: rgba(0, 0, 0, 0.7);
            color: rgba(255, 255, 255, 0.9);
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
            border-color: rgba(255, 255, 255, 0.2);
          }
          
          .article-card-excerpt {
            color: rgba(255, 255, 255, 0.9);
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
            font-size: 0.9rem;
            line-height: 1.4;
            margin: 0;
            -webkit-line-clamp: 2;
          }
          
          /* Hide tags on mobile to reduce clutter */
          .article-card-tags {
            display: none;
          }
          
          /* Hide footer hint on mobile */
          .article-card-footer {
            display: none;
          }
        }
    </style>
</head>
<body>
    <header class="header">
        <div class="header-content">
            <h1><a href="/" style="display: flex; align-items: center;"><img src="/img/logo.svg" alt="Sibylline Soft Logo" style="height: 24px; width: auto; margin-right: 8px;">{{ config.site.title or "Sibylline Software" }}</a></h1>
            <nav class="nav">
                <ul>
                    <li><a href="/domains/">Domains</a></li>
                    <li><a href="/products/">Products</a></li>
                    <li><a href="/research/">Research</a></li>
                    <li><a href="/articles/">Articles</a></li>
                    <li><a href="/about/">About</a></li>
                </ul>
            </nav>
        </div>
    </header>
    
    <!-- Floating Table of Contents -->
    <div class="toc-container">
        <div class="toc-title">On This Page</div>
        <div class="toc"></div>
    </div>
    
    <main class="main">
        {{ content | safe }}
    </main>
    
    <footer class="footer">
        <p>&copy; {{ config.now.getFullYear() }} {{ config.site.title or "Sibylline Software" }}. Built with <a href="https://www.11ty.dev/">Eleventy</a>.</p>
    </footer>

    <!-- Tocbot JavaScript -->
    <script src="https://cdn.jsdelivr.net/npm/tocbot@4.28.2/dist/tocbot.min.js"></script>
    <!-- Custom TOC ScrollSpy disabled - using tocbot instead -->
    <!-- <script src="/js/toc-scrollspy.js"></script> -->
    <!-- Lucide Icons -->
    <script src="https://unpkg.com/lucide@latest/dist/umd/lucide.js"></script>
    <!-- Mermaid.js for diagrams -->
    <script src="https://cdn.jsdelivr.net/npm/mermaid@10.7.0/dist/mermaid.min.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const headings = document.querySelectorAll('.main h2:not(.article-title), .main .project-content h2, .main .project-content h3');
            const tocContainer = document.querySelector('.toc-container');

            if (headings.length > 0 && tocContainer) {
                headings.forEach((heading, index) => {
                    if (!heading.id) {
                        const text = heading.textContent.trim();
                        const id = text.toLowerCase()
                            .replace(/[^\w\s-]/g, '')
                            .replace(/\s+/g, '-')
                            .replace(/--+/g, '-')
                            .replace(/^-|-$/g, '');
                        heading.id = id || `section-${index + 1}`;
                    }
                });

                tocbot.init({
                    tocSelector: '.toc',
                    contentSelector: '.main',
                    headingSelector: 'h2:not(.article-title), .project-content h2, .project-content h3',
                    hasInnerContainers: true,
                    scrollSmooth: true,
                    scrollSmoothDuration: 400,
                    scrollSmoothOffset: -100,
                    headingsOffset: window.innerHeight * 0.4,
                    throttleTimeout: 16,
                    collapseDepth: 1,
                    orderedList: false,
                    activeLinkClass: 'is-active-link',
                    collapsibleClass: 'is-collapsible',
                    isCollapsedClass: 'is-collapsed',
                    listClass: 'toc-list',
                    listItemClass: 'toc-list-item',
                    activeListItemClass: 'is-active-li',
                    includeHtml: false
                });

                tocContainer.style.display = 'block';

                // Force initial collapsed state for all sections and add click handlers
                setTimeout(() => {
                    // Find only the TOP-LEVEL items (direct children of the main .toc)
                    // These are the main section headings that should always be visible
                    const topLevelItems = document.querySelectorAll('.toc > .toc-list > .toc-list-item');
                    
                    topLevelItems.forEach((item, index) => {
                        const nestedList = item.querySelector('.toc-list');
                        const mainLink = item.querySelector(':scope > a');
                        const linkText = mainLink?.textContent || 'Unknown';
                        
                        console.log(`šŸ” TOP-LEVEL TOC ITEM ${index}: "${linkText}"`);
                        console.log('  - Has nested list:', !!nestedList);
                        console.log('  - Main link element:', !!mainLink);
                        
                        if (nestedList) {
                            // This is a main section with sub-items
                            item.classList.add('is-collapsible');
                            item.classList.add('is-collapsed'); // Start with sub-items collapsed
                            
                            // Check visibility after applying classes
                            const computedStyle = window.getComputedStyle(mainLink);
                            console.log('  - Applied classes:', Array.from(item.classList));
                            console.log('  - Link display:', computedStyle.display);
                            console.log('  - Link opacity:', computedStyle.opacity);
                            console.log('  - Link visibility:', computedStyle.visibility);
                            
                            // Add click handler for manual expand/collapse  
                            if (mainLink) {
                                mainLink.addEventListener('click', (e) => {
                                    item.classList.toggle('is-collapsed');
                                    console.log(`  - Clicked "${linkText}", now collapsed:`, item.classList.contains('is-collapsed'));
                                });
                            }
                        } else {
                            console.log('  - No nested list found - this might be a product item, not a section');
                        }
                        console.log(''); // Empty line for readability
                    });
                    
                    // Store reference for the scroll function
                    const collapsibleTocItems = Array.from(topLevelItems).filter(item => 
                        item.querySelector('.toc-list') !== null
                    );

                    
                    // Expand the currently visible section
                    const expandVisibleSection = () => {
                        console.group('šŸ” TOC Scroll Detection Debug');
                        
                        const headings = document.querySelectorAll('.main h2:not(.article-title)');
                        console.log(`šŸ“‹ Found ${headings.length} H2 headings:`, Array.from(headings).map(h => ({
                            id: h.id,
                            text: h.textContent?.trim().substring(0, 50) + '...',
                            offsetTop: h.offsetTop
                        })));
                        
                        let currentSection = null;
                        const scrollY = window.scrollY;
                        const viewportHeight = window.innerHeight;
                        const scrollOffset = viewportHeight * 0.3;
                        const scrollPosition = scrollY + scrollOffset;
                        
                        console.log(`šŸ“ Scroll metrics:
                            - window.scrollY: ${scrollY}px
                            - viewport height: ${viewportHeight}px
                            - scroll offset (30%): ${scrollOffset}px
                            - effective scroll position: ${scrollPosition}px`);
                        
                        console.log('šŸŽÆ Checking headings for current section:');
                        
                        // Find which H2 section we're currently viewing
                        for (let i = headings.length - 1; i >= 0; i--) {
                            const heading = headings[i];
                            const isActive = heading.offsetTop <= scrollPosition;
                            console.log(`  ${i}. "${heading.textContent?.trim()}" (id: ${heading.id})
                                - offsetTop: ${heading.offsetTop}px
                                - scrollPosition: ${scrollPosition}px
                                - isActive: ${isActive} ${isActive ? 'āœ…' : 'āŒ'}`);
                            
                            if (isActive) {
                                currentSection = heading;
                                console.log(`šŸŽÆ Selected as current section: "${heading.textContent?.trim()}" (${heading.id})`);
                                break;
                            }
                        }
                        
                        // Collapse all sections first
                        console.log(`šŸ”„ Collapsing all ${collapsibleTocItems.length} TOC sections`);
                        collapsibleTocItems.forEach((item, index) => {
                            const wasCollapsed = item.classList.contains('is-collapsed');
                            item.classList.add('is-collapsed');
                            console.log(`  ${index}: ${wasCollapsed ? 'already collapsed' : 'collapsed'}`);
                        });
                        
                        // If we found a current section, expand its TOC entry
                        if (currentSection && currentSection.id) {
                            console.log(`šŸ” Looking for TOC link with href="#${currentSection.id}"`);
                            const tocLink = document.querySelector(`.toc a[href="#${currentSection.id}"]`);
                            
                            if (tocLink) {
                                console.log('āœ… TOC link found:', tocLink.textContent?.trim());
                                const tocItem = tocLink.closest('.toc-list-item');
                                
                                if (tocItem) {
                                    console.log('āœ… Parent TOC item found');
                                    const subList = tocItem.querySelector('.toc-list');
                                    
                                    if (subList) {
                                        console.log('āœ… Sub-list found, expanding TOC section');
                                        const wasCollapsed = tocItem.classList.contains('is-collapsed');
                                        tocItem.classList.remove('is-collapsed');
                                        console.log(`šŸŽ‰ TOC section expanded! (was collapsed: ${wasCollapsed})`);
                                    } else {
                                        console.log('āŒ No sub-list found in TOC item - nothing to expand');
                                    }
                                } else {
                                    console.log('āŒ Could not find parent TOC list item');
                                }
                            } else {
                                console.log(`āŒ No TOC link found for "#${currentSection.id}"`);
                                console.log('Available TOC links:', Array.from(document.querySelectorAll('.toc a')).map(a => ({
                                    href: a.getAttribute('href'),
                                    text: a.textContent?.trim()
                                })));
                            }
                        } else {
                            console.log('āŒ No current section found or section has no ID');
                        }
                        
                        console.groupEnd();
                    };
                    
                    // Expand initially visible section
                    expandVisibleSection();
                    
                    // Update expanded section on scroll
                    let scrollTimer;
                    window.addEventListener('scroll', () => {
                        clearTimeout(scrollTimer);
                        scrollTimer = setTimeout(expandVisibleSection, 16);
                    }, { passive: true });
                    
                }, 100);

                // Initialize improved scroll spy after TOC is ready
                setTimeout(() => {
                    if (typeof TOCScrollSpy !== 'undefined') {
                        window.tocScrollSpy = new TOCScrollSpy({
                            tocSelector: '.toc',
                            headingSelector: 'h2:not(.article-title), .project-content h2, .project-content h3',
                            headerOffset: 100,
                            throttleDelay: 16
                        });
                    }
                }, 200);

                let tocVisible = false;
                function handleTocVisibility() {
                    const heroSection = document.querySelector('canvas') || document.querySelector('.article-header') || document.querySelector('.main > *:first-child');
                    if (!heroSection) {
                        const shouldShow = window.scrollY > 200;
                        if(shouldShow && !tocVisible) {
                            tocContainer.classList.add('visible');
                            tocVisible = true;
                        } else if (!shouldShow && tocVisible) {
                            tocContainer.classList.remove('visible');
                            tocVisible = false;
                        }
                        return;
                    }
                    
                    const heroBottom = heroSection.offsetTop + heroSection.offsetHeight;
                    const shouldShow = window.scrollY > heroBottom - 200;
                    
                    if (shouldShow && !tocVisible) {
                        tocContainer.classList.add('visible');
                        tocVisible = true;
                    } else if (!shouldShow && tocVisible) {
                        tocContainer.classList.remove('visible');
                        tocVisible = false;
                    }
                }

                handleTocVisibility();
                window.addEventListener('scroll', handleTocVisibility, { passive: true });
            } else {
                if (tocContainer) {
                    tocContainer.style.display = 'none';
                }
            }
        });

        window.addEventListener('beforeunload', function() {
            if (typeof tocbot !== 'undefined') {
                tocbot.destroy();
            }
        });

        lucide.createIcons();
        mermaid.initialize({
            startOnLoad: true,
            theme: 'dark',
            themeVariables: {
                primaryColor: '#6366f1',
                primaryTextColor: '#f5f5f5',
                primaryBorderColor: '#4f46e5',
                lineColor: '#6366f1',
                secondaryColor: '#2a2a2a',
                tertiaryColor: '#404040',
                background: '#1a1a1a',
                mainBkg: '#2a2a2a',
                secondBkg: '#404040',
                tertiaryBkg: '#525252'
            },
            flowchart: {
                htmlLabels: true,
                curve: 'basis'
            }
        });
    </script>
    
    <!-- Secure Contact Email System -->
    <script src="/js/secure-contact.js"></script>
</body>
</html>

src/_includes/mascots.njk (674 B)

<div class="sites-vert sites-vert--lg">
  <div class="lo-grid" style="--fl-gap-v: 5em;">
{%- for mascot in mascots %}
<div class="sites-site-vert">
  <a href="{{ mascot.url }}" class="elv-externalexempt">
    <div class="img-gallery">
      {% image mascot.image, mascot.name, [250], "sites-screenshot" %}
    </div>
    <strong class="sites-site-name">{{ mascot.name }}</strong>
  </a>
  <div class="sites-site-description">
    <em>{% if mascot.author_url %}<a href="{{ mascot.author_url }}" class="elv-externalexempt">{% endif %}{{ mascot.author }}{% if mascot.author_url %}</a>{% endif %}.</em>
    {{ mascot.description }}
  </div>
</div>
{%- endfor %}
  </div>
</div>

src/_includes/site-card.njk (1.9 KiB)

{%- set siteUrl = site.demo or site.url %}
<div class="sites-site-vert{% if site.official %} sites-site-official{% endif %}{% if site.class %} {{ site.class }}{% endif %}" data-filter-tags="{% if siteData | lighthousePerfectScore %}perfectlh{% endif %}">
  <a {% if siteUrl %}href="{{ site.demo or site.url }}"{% endif %} class="elv-externalexempt" title="{{ site.name }}">
    <span class="sites-site-name">
      {%- if not site.skipIcon %}
        {%- if site.iconUrl or site.url %}
          {%- indieavatar site.iconUrl or site.url, "avatar-large" %}
        {%- elseif site.opened_by %}
          {%- communityavatar site.opened_by %}
        {%- endif %}
      {%- endif %}
      {%- if site.name -%}
        {{ site.name }}
      {%- else -%}
        {{ site.url | displayUrl }}
      {%- endif -%}
    </span>
    {{ site | cardScreenshotHtml | safe }}
{%- if siteData | lighthouseGoodDataCheck %}
    <div class="sites-site-lighthouse">
      <is-land on:visible import="/js/speedlify-score.js">
        <speedlify-score raw-data='{{ siteData | toJSON | safe }}'></speedlify-score>
      </is-land>
    </div>
{%- endif %}
  </a>

{%- set sourceUrl = site.source_url %}
{%- if not sourceUrl and site.url and (site.url.startsWith("https://github.com/") or site.url.startsWith("https://gitlab.com/")) %}
  {%- set sourceUrl = site.url %}
{%- endif %}

{%- if not hideRelatedLinks %}
<ul class="inlinelist inlinelist-sm">
  {%- if sourceUrl %}
  <li class="inlinelist-item"><a href="{{ sourceUrl }}" class="elv-externalexempt">Source code</a></li>
  {%- endif %}
</ul>
{%- endif %}

{%- if site.tags -%}
  {%- for tag in site.tags %}
  <span class="sites-tag">{{ tag }}</span>
  {%- endfor %}
{%- endif %}

{%- if site.description %}
  <div class="sites-site-description">
    {%- if site.official %}<strong>šŸŽˆ Official Starter</strong> Ā· {% endif -%}
    {%- if site.featured %}<strong>Featured</strong> Ā· {% endif -%}
    {{ site.description }}
  </div>
{%- endif %}

</div>

src/_includes/site.njk (1.3 KiB)

<div class="site-top">
	<div class="sites-data-container">
		<a href="{{ site.url }}">
			{%- indieavatar site.url, "avatar-large" %}
			{%- if site.name -%}
				{{ site.name }}
			{%- else -%}
				{{ site.url | displayUrl }}
			{%- endif -%}
		</a>
		{%- if site.description %}<em class="list-bare-desc list-bare-desc-avatar">{{ site.description }}</em>{% endif -%}
		{%- if showMetadata %}
		<em class="list-bare-desc list-bare-desc-avatar">
			<div class="fl fl-inline fl-nowrap fl-separator-h" style="--fl-gap-h: 1.5rem; --fl-gap-v: 2px">
				{%- if site.source_url %}<div><a href="{{ site.source_url }}" class="elv-externalexempt">Source Code</a></div>{% endif -%}
			</div>
		</em>
		<div class="list-bare-desc list-bare-desc-avatar site-score">
			{%- set hash = site | speedlifyHash %}
			{%- if hash -%}
				<a href="https://www.11ty.dev/speedlify/#site-{{ hash }}" class="elv-externalexempt nound">
					<is-land on:visible import="/js/speedlify-score.js">
						<speedlify-score speedlify-url="https://www.11ty.dev/speedlify/" hash="{{ hash }}" score weight rank></speedlify-score>
					</is-land>
				</a>
			{%- endif -%}
		</div>
		{%- endif %}
	</div>
	<div class="sites-screenshot-container">
		{% getScreenshotHtml "", site.url %}
		<div class="sites-screenshot-container-icons">{% hostavatar site.url %} {% generatoravatar site.url %}</div>
	</div>
</div>

src/_includes/snippets/assets/addfiles.njk (1.5 KiB)

{%- set tabid = "addfiles" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">
    <div data-filter-code="css">
{% highlight "js" %}
export default function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy("bundle.css");
};
{% endhighlight %}
    </div>
    <div data-filter-code="font">
{% highlight "js" %}
export default function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy("font.woff2");
};
{% endhighlight %}
    </div>
    <div data-filter-code="js">
{% highlight "js" %}
export default function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy("bundle.js");
};
{% endhighlight %}
    </div>
  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">
    <div data-filter-code="css">
{% highlight "js" %}
module.exports = function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy("bundle.css");
};
{% endhighlight %}
    </div>
    <div data-filter-code="font">
{% highlight "js" %}
module.exports = function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy("font.woff");
};
{% endhighlight %}
    </div>
    <div data-filter-code="js">
{% highlight "js" %}
module.exports = function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy("bundle.js");
};
{% endhighlight %}
    </div>
  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/collections/all.njk (1.2 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "collectionsall"} %}
  <div id="collectionsall-liquid" role="tabpanel">

{% raw %}

```liquid
<ul>
{%- for post in collections.all -%}
  <li><a href="{{ post.url }}">{{ post.url }}</a></li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collectionsall-njk" role="tabpanel">

{% raw %}

```jinja2
<ul>
{%- for post in collections.all -%}
  <li><a href="{{ post.url }}">{{ post.url }}</a></li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collectionsall-js" role="tabpanel">

{% raw %}

```js
export function render(data) {
  return `<ul>
    ${data.collections.all
      .map((post) => `<li><a href="${post.url}">${post.url}</a></li>`)
      .join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
  <div id="collectionsall-cjs" role="tabpanel">

{% raw %}

```js
exports.render = function (data) {
  return `<ul>
    ${data.collections.all
      .map((post) => `<li><a href="${post.url}">${post.url}</a></li>`)
      .join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/collections/aria.njk (1.4 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "collectionsnav"} %}
  <div id="collectionsnav-liquid" role="tabpanel">

{% raw %}

```liquid
<ul>
{%- for post in collections.post -%}
  <li{% if page.url == post.url %} aria-current="page"{% endif %}>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collectionsnav-njk" role="tabpanel">

{% raw %}

```jinja2
<ul>
{%- for post in collections.post -%}
  <li{% if page.url == post.url %} aria-current="page"{% endif %}>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collectionsnav-js" role="tabpanel">

{% raw %}

```js
export function render(data) {
	return `<ul>
    ${data.collections.post
			.map(
				(post) =>
					`<li${data.page.url === post.url ? ` aria-current="page"` : ""}>${
						post.data.title
					}</li>`
			)
			.join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
  <div id="collectionsnav-cjs" role="tabpanel">

{% raw %}

```js
exports.render = function (data) {
	return `<ul>
    ${data.collections.post
			.map(
				(post) =>
					`<li${data.page.url === post.url ? ` aria-current="page"` : ""}>${
						post.data.title
					}</li>`
			)
			.join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/collections/blog.njk (1.1 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "collections"} %}
  <div id="collections-liquid" role="tabpanel">

{% raw %}

```liquid
<ul>
{%- for post in collections.post -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collections-njk" role="tabpanel">

{% raw %}

```jinja2
<ul>
{%- for post in collections.post -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collections-js" role="tabpanel">

{% raw %}

```js
export function render(data) {
  return `<ul>
    ${data.collections.post
      .map((post) => `<li>${post.data.title}</li>`)
      .join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
  <div id="collections-cjs" role="tabpanel">

{% raw %}

```js
exports.render = function (data) {
  return `<ul>
    ${data.collections.post
      .map((post) => `<li>${post.data.title}</li>`)
      .join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/collections/dashes.njk (1.2 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "collections-dashwarn"} %}
  <div id="collections-dashwarn-liquid" role="tabpanel">

{% raw %}

```liquid
<ul>
{%- for post in collections.post-with-dash -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collections-dashwarn-njk" role="tabpanel">

{% raw %}

```jinja2
<ul>
{%- for post in collections['post-with-dash'] -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collections-dashwarn-js" role="tabpanel">

{% raw %}

```js
export function render(data) {
  return `<ul>
    ${data.collections['post-with-dash']
      .map((post) => `<li>${post.data.title}</li>`)
      .join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
  <div id="collections-dashwarn-cjs" role="tabpanel">

{% raw %}

```js
exports.render = function (data) {
  return `<ul>
    ${data.collections['post-with-dash']
      .map((post) => `<li>${post.data.title}</li>`)
      .join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/collections/eleventyimport.njk (1.4 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync  class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "collections-import"} %}
  <div id="collections-import-liquid" role="tabpanel">

{% raw %}

```liquid
---
eleventyImport:
  collections: ["post"]
---
<ul>
{%- for post in collections.post -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collections-import-njk" role="tabpanel">

{% raw %}

```jinja2
---
eleventyImport:
  collections: ["post"]
---
<ul>
{%- for post in collections.post -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collections-import-js" role="tabpanel">

{% raw %}

```js
export function data() {
  return {
    eleventyImport: {
      collections: ["post"],
    },
  };
};

export function render(data) {
  return `<ul>
    ${data.collections.post
      .map((post) => `<li>${post.data.title}</li>`)
      .join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
  <div id="collections-import-cjs" role="tabpanel">

{% raw %}

```js
exports.data = function () {
  return {
    eleventyImport: {
      collections: ["post"],
    },
  };
};

exports.render = function (data) {
  return `<ul>
    ${data.collections.post
      .map((post) => `<li>${post.data.title}</li>`)
      .join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/collections/items.njk (1.1 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "collectionsitem"} %}
  <div id="collectionsitem-liquid" role="tabpanel">

{% raw %}

```liquid
<ul>
{%- for post in collections.post -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collectionsitem-njk" role="tabpanel">

{% raw %}

```jinja2
<ul>
{%- for post in collections.post -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collectionsitem-js" role="tabpanel">

{% raw %}

```js
export function render(data) {
	return `<ul>
    ${data.collections.post
			.map((post) => `<li>${post.data.title}</li>`)
			.join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
  <div id="collectionsitem-cjs" role="tabpanel">

{% raw %}

```js
exports.render = function (data) {
	return `<ul>
    ${data.collections.post
			.map((post) => `<li>${post.data.title}</li>`)
			.join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/collections/sort.njk (1.3 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "collectionssort"} %}
  <div id="collectionssort-liquid" role="tabpanel">

{% raw %}

```liquid
<ul>
{%- for post in collections.post reversed -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collectionssort-njk" role="tabpanel">

{% raw %}

```jinja2
<ul>
{%- for post in collections.post | reverse -%}
  <li>{{ post.data.title }}</li>
{%- endfor -%}
</ul>
```

{% endraw %}

  </div>
  <div id="collectionssort-js" role="tabpanel">

{% raw %}

```js
export function render(data) {
  // `toReversed` is Node 20+, see the note below
  let posts = data.collections.post.toReversed();
  return `<ul>
    ${posts.map((post) => `<li>${post.data.title}</li>`).join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
  <div id="collectionssort-cjs" role="tabpanel">

{% raw %}

```js
exports.render = function (data) {
  // `toReversed` is Node 20+, see the note below
  let posts = data.collections.post.toReversed();
  return `<ul>
    ${posts.map((post) => `<li>${post.data.title}</li>`).join("\n")}
  </ul>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/config/config-data.njk (719 B)

{%- set tabid = "config-data" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export const config = {
  dir: {
    // āš ļø This value is relative to your input directory.
    data: "lore",
  }
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports.config = {
  dir: {
    // āš ļø This value is relative to your input directory.
    data: "lore",
  }
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/config/config-htmlengine.njk (678 B)

{%- set tabid = "config-htmlengine" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export const config = {
  htmlTemplateEngine: "njk",
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports.config = {
  htmlTemplateEngine: "njk",
};
```

  </div>
</seven-minute-tabs>
</is-land>

There are many [different shapes of configuration file](/docs/config-shapes.md).

src/_includes/snippets/config/config-includes.njk (739 B)

{%- set tabid = "config-includes" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export const config = {
  dir: {
		// āš ļø This value is relative to your input directory.
    includes: "my_includes"
  }
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports.config = {
  dir: {
		// āš ļø This value is relative to your input directory.
    includes: "my_includes"
  }
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/config/config-input.njk (597 B)

{%- set tabid = "config-input" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export const config = {
  dir: {
    input: "views"
  }
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports.config = {
  dir: {
    input: "views"
  }
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/config/config-layouts.njk (777 B)

{%- set tabid = "config-layouts" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export const config = {
  dir: {
    // These are both relative to your input directory!
    includes: "_includes",
    layouts: "_layouts",
  }
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports.config = {
  dir: {
    // These are both relative to your input directory!
    includes: "_includes",
    layouts: "_layouts",
  }
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/config/config-mdengine.njk (684 B)

{%- set tabid = "config-mdengine" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export const config = {
  markdownTemplateEngine: "njk",
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports.config = {
  markdownTemplateEngine: "njk",
};
```

  </div>
</seven-minute-tabs>
</is-land>

There are many [different shapes of configuration file](/docs/config-shapes.md).

src/_includes/snippets/config/config-output.njk (596 B)

{%- set tabid = "config-output" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export const config = {
  dir: {
		output: "dist",
  }
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports.config = {
  dir: {
		output: "dist",
  }
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/config/config-pathprefix.njk (909 B)

{%- set tabid = "config-pathprefix" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { HtmlBasePlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(HtmlBasePlugin);
};

export const config = {
	pathPrefix: "/eleventy-base-blog/",
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { HtmlBasePlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(HtmlBasePlugin);
};

module.exports.config = {
	pathPrefix: "/eleventy-base-blog/",
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/config/config-shape-callback-export.njk (823 B)

{%- set tabid = "configshapes-callback-export" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function(eleventyConfig) {};

// This named export is optional
module.exports.config = {
  dir: {
    input: "views",
    output: "dist"
  }
};
```

  </div>
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export default async function(eleventyConfig) {};

// This named export is optional
export const config = {
  dir: {
    input: "views",
    output: "dist"
  }
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/config/config-templatelangs.njk (633 B)

{%- set tabid = "config-templatelangs" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export const config = {
  templateFormats: ["html", "liquid", "njk"],
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports.config = {
  templateFormats: ["html", "liquid", "njk"],
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/configDefinition.njk (958 B)

{# uses codeContent #}
{% set tabid %}{% if tabIdOverride %}{{ tabIdOverride }}{% else %}tab-{% uid %}{% endif %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">
  {% highlight "js" %}
{%- if codeContent %}{{ codeContent | safe }}{% endif %}
  {% endhighlight %}
  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">
  {% highlight "js" %}
{%- if codeContent %}{{ codeContent | esmToCjs | safe }}{% endif %}
  {% endhighlight %}
	{# <p><em>You’re only allowed one <code>module.exports</code> in your configuration file, so make sure you only copy the <code>require</code> and the <code>addPlugin</code> lines above!<em></p> #}
  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/configDefinitionEager.njk (893 B)

{# uses codeContent #}
{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<script type="module" src="/js/seven-minute-tabs.js"></script>
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">
  {% highlight "js" %}
{%- if codeContent %}{{ codeContent | safe }}{% endif %}
  {% endhighlight %}
  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">
  {% highlight "js" %}
{%- if codeContent %}{{ codeContent | esmToCjs | safe }}{% endif %}
  {% endhighlight %}
	{# <p><em>You’re only allowed one <code>module.exports</code> in your configuration file, so make sure you only copy the <code>require</code> and the <code>addPlugin</code> lines above!<em></p> #}
  </div>
</seven-minute-tabs>

src/_includes/snippets/esmCjsTabs.njk (629 B)

{# uses codeContent #}
{% set tabid %}tab-{% uid %}{% endset %}
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">
  {% highlight "js" %}
{%- if codeContent %}{{ codeContent | safe }}{% endif %}
  {% endhighlight %}
  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">
  {% highlight "js" %}
{%- if codeContent %}{{ codeContent | esmToCjs | safe }}{% endif %}
  {% endhighlight %}
  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/frontmatter/default.njk (748 B)

{%- set tabid = "default" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export default function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		language: "js", // default is "yaml"
	});
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		language: "js", // default is "yaml"
	});
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/frontmatter/excerpts.njk (851 B)

{%- set tabid = "excerpts" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export default function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		excerpt: true,
		// Optional, default is "---"
		excerpt_separator: "<!-- excerpt -->",
	});
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		excerpt: true,
		// Optional, default is "---"
		excerpt_separator: "<!-- excerpt -->",
	});
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/frontmatter/excerptsloc.njk (944 B)

{%- set tabid = "excerptsloc" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export default function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		excerpt: true,
		// Eleventy custom option
		// The variable where the excerpt will be stored.
		excerpt_alias: "my_custom_excerpt",
	});
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		excerpt: true,
		// Eleventy custom option
		// The variable where the excerpt will be stored.
		excerpt_alias: "my_custom_excerpt",
	});
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/frontmatter/options.njk (694 B)

{%- set tabid = "options" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
export default function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		/* … */
	});
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		/* … */
	});
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/frontmatter/toml.njk (932 B)

{%- set tabid = "toml" %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
// Don’t forget to `npm install @iarna/toml`
import toml from "@iarna/toml";

export default function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		engines: {
			toml: toml.parse.bind(toml),
		},
	});
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
// Don’t forget to `npm install @iarna/toml`
const toml = require("@iarna/toml");

module.exports = function (eleventyConfig) {
	eleventyConfig.setFrontMatterParsingOptions({
		engines: {
			toml: toml.parse.bind(toml),
		},
	});
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/image/intro-html.njk (1.1 KiB)

{%- set tabid = "imageintrohtml" %}
<div class="codetitle">my-node-script.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import Image from "@11ty/eleventy-img";

let src = "https://images.unsplash.com/photo-1608178398319-48f814d0750c";
let html = await Image(src, {
	widths: [300],
	returnType: "html", // Added in v6.0
	htmlOptions: {
		imgAttributes: {
			alt: "", // required
		}
	}
});

console.log(html);
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
const Image = require("@11ty/eleventy-img");

// ESM is required for top level async/await.
(async () => {
	let src = "https://images.unsplash.com/photo-1608178398319-48f814d0750c";
	let html = await Image(src, {
		widths: [300],
		returnType: "html", // Added in v6.0
		htmlOptions: {
			imgAttributes: {
				alt: "", // required
			}
		}
	});

	console.log(html);
})();
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/image/intro.njk (906 B)

{%- set tabid = "imageintro" %}
<div class="codetitle">my-node-script.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import Image from "@11ty/eleventy-img";

let src = "https://images.unsplash.com/photo-1608178398319-48f814d0750c";
let stats = await Image(src, {
	widths: [300],
});

console.log(stats);
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
const Image = require("@11ty/eleventy-img");

// ESM is required for top level async/await.
(async () => {
	let src = "https://images.unsplash.com/photo-1608178398319-48f814d0750c";
	let stats = await Image(src, {
		widths: [300],
	});

	console.log(stats);
})();
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/image/templates.njk (1.5 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
	{% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "shortcode"} %}
	<div id="shortcode-liquid" role="tabpanel">
{%- highlight "liquid" %}{% raw %}
{% image "cat.jpg", "photo of my tabby cat" %}
{% image "cat.jpg", "photo of my tabby cat", "(min-width: 30em) 50vw, 100vw" %}
{% endraw %}{% endhighlight %}
		<p>The comma between arguments is <strong>optional</strong> in Liquid templates.</p>
	</div>
	<div id="shortcode-njk" role="tabpanel">
{%- highlight "jinja2" %}{% raw %}
{% image "cat.jpg", "photo of my tabby cat" %}
{% image "cat.jpg", "photo of my tabby cat", "(min-width: 30em) 50vw, 100vw" %}
{% endraw %}{% endhighlight %}
		<p>The comma between arguments is <strong>required</strong> in Nunjucks templates.</p>
	</div>
	<div id="shortcode-js" role="tabpanel">
{%- highlight "js" %}{% raw %}
export default function() {
	let img1 = await this.image("cat.jpg", "photo of my tabby cat");
	let img2 = await this.image("cat.jpg", "photo of my tabby cat", "(min-width: 30em) 50vw, 100vw");

    return `${img1}

${img2}`;
};
{% endraw %}{% endhighlight %}
	</div>
	<div id="shortcode-cjs" role="tabpanel">
{%- highlight "js" %}{% raw %}
module.exports = function() {
	let img1 = await this.image("cat.jpg", "photo of my tabby cat");
	let img2 = await this.image("cat.jpg", "photo of my tabby cat", "(min-width: 30em) 50vw, 100vw");

    return `${img1}

${img2}`;
};
{% endraw %}{% endhighlight %}

</div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/layout-chaining/mainlayout.njk (109 B)

{% raw %}
---
layout: mylayout.njk
myOtherData: hello
---
<main>
  {{ content | safe }}
</main>
{% endraw %}

src/_includes/snippets/layouts/intro.njk (1.4 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "layouts", additions: "md"} %}
  <div id="layouts-md" role="tabpanel">

{% codetitle "index.md" %}
{% raw %}
```markdown
---
layout: mylayout.njk
title: My Rad Markdown Blog Post
---

# {{ title }}
```
{% endraw %}

  </div>
  <div id="layouts-liquid" role="tabpanel">

{% codetitle "index.liquid" %}
{% raw %}
```liquid
---
layout: mylayout.njk
title: My Rad Liquid Blog Post
---
<h1>{{ title }}</h1>
```
{% endraw %}

  </div>
  <div id="layouts-njk" role="tabpanel">

{% codetitle "index.njk" %}
{% raw %}
```njk
---
layout: mylayout.njk
title: My Rad Nunjucks Blog Post
---
<h1>{{ title }}</h1>
```
{% endraw %}

  </div>
  <div id="layouts-js" role="tabpanel">

{% codetitle "index.11ty.js" %}
{% raw %}
```js
export const data = {
	layout: "mylayout.njk",
	title: "My Rad JavaScript Blog Post",
};

export function render(data) {
	return `<h1>${data.title}</h1>`;
};
```
{% endraw %}

  </div>
  <div id="layouts-cjs" role="tabpanel">

{% codetitle "index.11ty.cjs" %}
{% raw %}
```js
module.exports.data = {
	layout: "mylayout.njk",
	title: "My Rad JavaScript Blog Post",
};

module.exports.render = function(data) {
	return `<h1>${data.title}</h1>`;
};
```
{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/layouts/mylayout.njk (286 B)

---
title: My Rad Blog
---
{% raw %}
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ title }}</title>
  </head>
  <body>
    {{ content | safe }}
  </body>
</html>
{% endraw %}

src/_includes/snippets/layouts/output.njk (1.9 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "layoutoutput", additions: "md", label: "View the output from"} %}
  <div id="layoutoutput-md" role="tabpanel">

```html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>My Rad Markdown Blog Post</title>
	</head>
	<body>
		<h1>My Rad Markdown Blog Post</h1>
	</body>
</html>
```

  </div>
  <div id="layoutoutput-liquid" role="tabpanel">

```html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>My Rad Liquid Blog Post</title>
	</head>
	<body>
		<h1>My Rad Liquid Blog Post</h1>
	</body>
</html>
```

  </div>
  <div id="layoutoutput-njk" role="tabpanel">

```html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>My Rad Nunjucks Blog Post</title>
	</head>
	<body>
		<h1>My Rad Nunjucks Blog Post</h1>
	</body>
</html>
```

  </div>
  <div id="layoutoutput-js" role="tabpanel">

```html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>My Rad JavaScript Blog Post</title>
	</head>
	<body>
		<h1>My Rad JavaScript Blog Post</h1>
	</body>
</html>
```

  </div>
  <div id="layoutoutput-cjs" role="tabpanel">

```html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>My Rad JavaScript Blog Post</title>
	</head>
	<body>
		<h1>My Rad JavaScript Blog Post</h1>
	</body>
</html>
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/pagination/alias-size.njk (1.8 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "pagedchunk"} %}
  <div id="pagedchunk-liquid" role="tabpanel">

{% raw %}

```liquid
---
pagination:
  data: testdata
  size: 2
  alias: wonder
testdata:
  - Item1
  - Item2
  - Item3
  - Item4
permalink: "different/{{ wonder[0] | slugify }}/index.html"
---
You can use the alias in your content too {{ wonder[0] }}.
```

{% endraw %}

  </div>
  <div id="pagedchunk-njk" role="tabpanel">

{% raw %}

```jinja2
---
pagination:
  data: testdata
  size: 2
  alias: wonder
testdata:
  - Item1
  - Item2
  - Item3
  - Item4
permalink: "different/{{ wonder[0] | slugify }}/index.html"
---
You can use the alias in your content too {{ wonder[0] }}.
```

{% endraw %}

  </div>
  <div id="pagedchunk-js" role="tabpanel">

{% raw %}

```js
export const data = {
  pagination: {
    data: "testdata",
    size: 2,
    alias: "wonder"
  },
  testdata: [
    "Item1",
    "Item2",
    "Item3",
    "Item4"
  ],
  permalink: {
    function(data) {
      return `different/${this.slugify(data.wonder[0])}/index.html`
    };
  }
};

export function render(data) {
  return `You can use the alias in your content too ${data.wonder[0]}.`;
}
```

{% endraw %}

  </div>
	<div id="pagedchunk-cjs" role="tabpanel">

{% raw %}

```js
exports.data = {
  pagination: {
    data: "testdata",
    size: 2,
    alias: "wonder"
  },
  testdata: [
    "Item1",
    "Item2",
    "Item3",
    "Item4"
  ],
  permalink: {
    function(data) {
      return `different/${this.slugify(data.wonder[0])}/index.html`
    };
  }
};

exports.render = function (data) {
  return `You can use the alias in your content too ${data.wonder[0]}.`;
}
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/pagination/alias.njk (1.6 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "pagedalias"} %}
  <div id="pagedalias-liquid" role="tabpanel">

{% raw %}

```liquid
---
pagination:
  data: testdata
  size: 1
  alias: wonder
testdata:
  - Item1
  - Item2
permalink: "different/{{ wonder | slugify }}/index.html"
---
You can use the alias in your content too {{ wonder }}.
```

{% endraw %}

  </div>
  <div id="pagedalias-njk" role="tabpanel">

{% raw %}

```jinja2
---
pagination:
  data: testdata
  size: 1
  alias: wonder
testdata:
  - Item1
  - Item2
permalink: "different/{{ wonder | slugify }}/index.html"
---
You can use the alias in your content too {{ wonder }}.
```

{% endraw %}

  </div>
  <div id="pagedalias-js" role="tabpanel">

{% raw %}

```js
export const data = {
	pagination: {
		data: "testdata",
		size: 1,
		alias: "wonder",
	},
	testdata: ["Item1", "Item2"],
	permalink: function (data) {
		return `different/${this.slugify(data.wonder)}/index.html`;
	},
};

export function render(data) {
	return `You can use the alias in your content too ${data.wonder}.`;
};
```

{% endraw %}

  </div>
	<div id="pagedalias-cjs" role="tabpanel">

{% raw %}

```js
exports.data = {
	pagination: {
		data: "testdata",
		size: 1,
		alias: "wonder",
	},
	testdata: ["Item1", "Item2"],
	permalink: function (data) {
		return `different/${this.slugify(data.wonder)}/index.html`;
	},
};

exports.render = function (data) {
	return `You can use the alias in your content too ${data.wonder}.`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/pagination/collection.njk (1.6 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "pagedcollection"} %}
  <div id="pagedcollection-liquid" role="tabpanel">

{% raw %}

```liquid
---
title: My Posts
pagination:
  data: collections.post
  size: 6
  alias: posts
---

<ol>
{% for post in posts %}
  <li><a href="{{ post.url }}">{{ post.data.title }}</a></li>
{% endfor %}
</ol>
```

{% endraw %}

  </div>
  <div id="pagedcollection-njk" role="tabpanel">

{% raw %}

```jinja2
---
title: My Posts
pagination:
  data: collections.post
  size: 6
  alias: posts
---

<ol>
{% for post in posts %}
  <li><a href="{{ post.url }}">{{ post.data.title }}</a></li>
{% endfor %}
</ol>
```

{% endraw %}

  </div>
  <div id="pagedcollection-js" role="tabpanel">

{% raw %}

```js
export const data = {
	title: "My Posts",
	pagination: {
		data: "collections.post",
		size: 6,
		alias: "posts",
	},
};

export function render(data) {
	return `<ol>
		${data.posts
			.map(function (post) {
				return `<li><a href="${post.url}">${post.title}</a></li>`;
			})
			.join("")}
	</ol>`;
};
```

{% endraw %}

  </div>
	<div id="pagedcollection-cjs" role="tabpanel">

{% raw %}

```js
exports.data = {
	title: "My Posts",
	pagination: {
		data: "collections.post",
		size: 6,
		alias: "posts",
	},
};

exports.render = function (data) {
	return `<ol>
		${data.posts
			.map(function (post) {
				return `<li><a href="${post.url}">${post.title}</a></li>`;
			})
			.join("")}
	</ol>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/pagination/nav-array.njk (1.2 KiB)

<is-land import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "paginationnavarray"} %}
  <div id="paginationnavarray-liquid" role="tabpanel">

{% raw %}

```liquid
---
pagination:
  data: testdata
  size: 2
testdata:
 - item1
 - item2
 - item3
 - item4
 - item5
 - item6
---
{% comment %}pagination.items has the data for the current page{% endcomment %}
```

{% endraw %}

  </div>
  <div id="paginationnavarray-njk" role="tabpanel">

{% raw %}

```jinja2
---
pagination:
  data: testdata
  size: 2
testdata:
 - item1
 - item2
 - item3
 - item4
 - item5
 - item6
---
{# pagination.items has the data for the current page #}
```

{% endraw %}

  </div>
  <div id="paginationnavarray-js" role="tabpanel">
    <p><em>This example has not yet been added—you can swap to another template language above! Or maybe you want to contribute it? {% include "edit-on-github.njk" %}</em></p>
  </div>
  <div id="paginationnavarray-cjs" role="tabpanel">
    <p><em>This example has not yet been added—you can swap to another template language above! Or maybe you want to contribute it? {% include "edit-on-github.njk" %}</em></p>
  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/pagination/nav/combined.cjs (898 B)

{% raw %}
exports.render = function(data) {
  return `<nav aria-labelledby="my-pagination">
    <h2 id="my-pagination">This is my Pagination</h2>
    <ol>
      <li>${data.page.url === data.pagination.href.first ? `<a href="${data.pagination.href.first}">First</a>` : `First`}</li>
      <li>${data.pagination.href.previous ? `<a href="${data.pagination.href.previous}">Previous</a>` : `Previous`}</li>
      ${data.pagination.pages.map(function (item, index) {
        return `<li><a href="${data.pagination.hrefs[index]}" ${data.pagination.hrefs[index] ? 'aria-current="page"' : "" }>Page ${index + 1}</a></li>`;
      }).join("")}
      <li>${data.pagination.href.next ? `<a href="${data.pagination.href.next}">Next</a>` : `Next`}</li>
      <li>${data.page.url === data.pagination.href.last ? `<a href="${data.pagination.href.last}">Last</a>` : `Last`}</li>
    </ol>
  </nav>`;
};
{% endraw %}

src/_includes/snippets/pagination/nav/combined.js (896 B)

{% raw %}
export function render(data) {
  return `<nav aria-labelledby="my-pagination">
    <h2 id="my-pagination">This is my Pagination</h2>
    <ol>
      <li>${data.page.url === data.pagination.href.first ? `<a href="${data.pagination.href.first}">First</a>` : `First`}</li>
      <li>${data.pagination.href.previous ? `<a href="${data.pagination.href.previous}">Previous</a>` : `Previous`}</li>
      ${data.pagination.pages.map(function (item, index) {
        return `<li><a href="${data.pagination.hrefs[index]}" ${data.pagination.hrefs[index] ? 'aria-current="page"' : "" }>Page ${index + 1}</a></li>`;
      }).join("")}
      <li>${data.pagination.href.next ? `<a href="${data.pagination.href.next}">Next</a>` : `Next`}</li>
      <li>${data.page.url === data.pagination.href.last ? `<a href="${data.pagination.href.last}">Last</a>` : `Last`}</li>
    </ol>
  </nav>`;
};
{% endraw %}

src/_includes/snippets/pagination/nav/combined.njk (855 B)

{% raw %}
<nav aria-labelledby="my-pagination">
  <h2 id="my-pagination">This is my Pagination</h2>
  <ol>
    <li>{% if page.url != pagination.href.first %}<a href="{{ pagination.href.first }}">First</a>{% else %}First{% endif %}</li>
    <li>{% if pagination.href.previous %}<a href="{{ pagination.href.previous }}">Previous</a>{% else %}Previous{% endif %}</li>
{%- for pageEntry in pagination.pages %}
    <li><a href="{{ pagination.hrefs[ loop.index0 ] }}"{% if page.url == pagination.hrefs[ loop.index0 ] %} aria-current="page"{% endif %}>Page {{ loop.index }}</a></li>
{%- endfor %}
    <li>{% if pagination.href.next %}<a href="{{ pagination.href.next }}">Next</a>{% else %}Next{% endif %}</li>
    <li>{% if page.url != pagination.href.last %}<a href="{{ pagination.href.last }}">Last</a>{% else %}Last{% endif %}</li>
  </ol>
</nav>
{% endraw %}

src/_includes/snippets/pagination/nav/firstlast.cjs (673 B)

{% raw %}
exports.render = function(data) {
  return `<nav aria-labelledby="my-pagination">
    <h2 id="my-pagination">This is my Pagination</h2>
    <ol>
      <li>${data.page.url === data.pagination.href.first ? `<a href="${data.pagination.href.first}">First</a>` : `First`}</li>
      ${data.pagination.pages.map(function (item, index) {
        return `<li><a href="${data.pagination.hrefs[index]}" ${data.pagination.hrefs[index] ? 'aria-current="page"' : "" }>Page ${index + 1}</a></li>`;
      }).join("");}
      <li>${data.page.url === data.pagination.href.last ? `<a href="${data.pagination.href.last}">Last</a>` : `Last`}</li>
    </ol>
  </nav>`;
};
{% endraw %}

src/_includes/snippets/pagination/nav/firstlast.js (671 B)

{% raw %}
export function render(data) {
  return `<nav aria-labelledby="my-pagination">
    <h2 id="my-pagination">This is my Pagination</h2>
    <ol>
      <li>${data.page.url === data.pagination.href.first ? `<a href="${data.pagination.href.first}">First</a>` : `First`}</li>
      ${data.pagination.pages.map(function (item, index) {
        return `<li><a href="${data.pagination.hrefs[index]}" ${data.pagination.hrefs[index] ? 'aria-current="page"' : "" }>Page ${index + 1}</a></li>`;
      }).join("");}
      <li>${data.page.url === data.pagination.href.last ? `<a href="${data.pagination.href.last}">Last</a>` : `Last`}</li>
    </ol>
  </nav>`;
};
{% endraw %}

src/_includes/snippets/pagination/nav/firstlast.njk (614 B)

{% raw %}
<nav aria-labelledby="my-pagination">
  <h2 id="my-pagination">This is my Pagination</h2>
  <ol>
    <li>{% if page.url != pagination.href.first %}<a href="{{ pagination.href.first }}">First</a>{% else %}First{% endif %}</li>
{%- for pageEntry in pagination.pages %}
    <li><a href="{{ pagination.hrefs[ loop.index0 ] }}"{% if page.url == pagination.hrefs[ loop.index0 ] %} aria-current="page"{% endif %}>Page {{ loop.index }}</a></li>
{%- endfor %}
    <li>{% if page.url != pagination.href.last %}<a href="{{ pagination.href.last }}">Last</a>{% else %}Last{% endif %}</li>
  </ol>
</nav>
{% endraw %}

src/_includes/snippets/pagination/nav/nextprev.cjs (649 B)

{% raw %}
exports.render = function(data) {
  return `<nav aria-labelledby="my-pagination">
    <h2 id="my-pagination">This is my Pagination</h2>
    <ol>
      <li>${data.pagination.href.previous ? `<a href="${data.pagination.href.previous}">Previous</a>` : `Previous`}</li>
      ${data.pagination.pages.map(function (item, index) {
        return `<li><a href="${data.pagination.hrefs[index]}" ${data.pagination.hrefs[index] ? 'aria-current="page"' : "" }>Page ${index + 1}</a></li>`;
      }).join("");}
      <li>${data.pagination.href.next ? `<a href="${data.pagination.href.next}">Next</a>` : `Next`}</li>
    </ol>
  </nav>`;
};
{% endraw %}

src/_includes/snippets/pagination/nav/nextprev.js (647 B)

{% raw %}
export function render(data) {
  return `<nav aria-labelledby="my-pagination">
    <h2 id="my-pagination">This is my Pagination</h2>
    <ol>
      <li>${data.pagination.href.previous ? `<a href="${data.pagination.href.previous}">Previous</a>` : `Previous`}</li>
      ${data.pagination.pages.map(function (item, index) {
        return `<li><a href="${data.pagination.hrefs[index]}" ${data.pagination.hrefs[index] ? 'aria-current="page"' : "" }>Page ${index + 1}</a></li>`;
      }).join("");}
      <li>${data.pagination.href.next ? `<a href="${data.pagination.href.next}">Next</a>` : `Next`}</li>
    </ol>
  </nav>`;
};
{% endraw %}

src/_includes/snippets/pagination/nav/nextprev.njk (601 B)

{% raw %}
<nav aria-labelledby="my-pagination">
  <h2 id="my-pagination">This is my Pagination</h2>
  <ol>
    <li>{% if pagination.href.previous %}<a href="{{ pagination.href.previous }}">Previous</a>{% else %}Previous{% endif %}</li>
{%- for pageEntry in pagination.pages %}
    <li><a href="{{ pagination.hrefs[ loop.index0 ] }}"{% if page.url == pagination.hrefs[ loop.index0 ] %} aria-current="page"{% endif %}>Page {{ loop.index }}</a></li>
{%- endfor %}
    <li>{% if pagination.href.next %}<a href="{{ pagination.href.next }}">Next</a>{% else %}Next{% endif %}</li>
  </ol>
</nav>
{% endraw %}

src/_includes/snippets/pagination/nav/starter.cjs (417 B)

{% raw %}
exports.render = function(data) {
  return `<nav aria-labelledby="my-pagination">
    <h2 id="my-pagination">This is my Pagination</h2>
    <ol>
    ${data.pagination.pages.map(function (item, index) {
      return `<li><a href="${data.pagination.hrefs[index]}" ${data.pagination.hrefs[index] ? 'aria-current="page"' : "" }>Page ${index + 1}</a></li>`;
    }).join("");}
    </ol>
  </nav>`;
};
{% endraw %}

src/_includes/snippets/pagination/nav/starter.js (414 B)

{% raw %}
export function render(data) {
  return `<nav aria-labelledby="my-pagination">
    <h2 id="my-pagination">This is my Pagination</h2>
    <ol>
    ${data.pagination.pages.map(function (item, index) {
      return `<li><a href="${data.pagination.hrefs[index]}" ${data.pagination.hrefs[index] ? 'aria-current="page"' : "" }>Page ${index + 1}</a></li>`;
    }).join("");}
    </ol>
  </nav>`;
}
{% endraw %}

src/_includes/snippets/pagination/nav/starter.liquid (369 B)

{% raw %}
<nav aria-labelledby="my-pagination">
  <h2 id="my-pagination">This is my Pagination</h2>
  <ol>
{%- for pageEntry in pagination.pages %}
    <li><a href="{{ pagination.hrefs[ forloop.index0 ] }}"{% if page.url == pagination.hrefs[ forloop.index0 ] %} aria-current="page"{% endif %}>Page {{ forloop.index }}</a></li>
{%- endfor %}
  </ol>
</nav>
{% endraw %}

src/_includes/snippets/pagination/nav/starter.njk (360 B)

{% raw %}
<nav aria-labelledby="my-pagination">
  <h2 id="my-pagination">This is my Pagination</h2>
  <ol>
{%- for pageEntry in pagination.pages %}
    <li><a href="{{ pagination.hrefs[ loop.index0 ] }}"{% if page.url == pagination.hrefs[ loop.index0 ] %} aria-current="page"{% endif %}>Page {{ loop.index }}</a></li>
{%- endfor %}
  </ol>
</nav>
{% endraw %}

src/_includes/snippets/pagination/object-lit.njk (1.1 KiB)

<seven-minute-tabs class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "pagenavobjectlit", valid: "njk"} %}
  <div id="pagenavobjectlit-liquid" role="tabpanel">
    <p><em>This example has not yet been added—you can swap to another template language above! Or maybe you want to contribute it? {% include "edit-on-github.njk" %}</em></p>
  </div>
  <div id="pagenavobjectlit-njk" role="tabpanel">

{% raw %}

```jinja2
<!-- Don’t copy this code, it’s been simplified for clarity -->
{% for pageKey in pagination.pages %}
<a href="{{ pagination.hrefs[ loop.index0 ] }}">Page {{ loop.index }}</a>
{% endfor %}
```

{% endraw %}

  </div>
  <div id="pagenavobjectlit-js" role="tabpanel">
    <p><em>This example has not yet been added—you can swap to another template language above! Or maybe you want to contribute it? {% include "edit-on-github.njk" %}</em></p>
  </div>
	<div id="pagenavobjectlit-cjs" role="tabpanel">
    <p><em>This example has not yet been added—you can swap to another template language above! Or maybe you want to contribute it? {% include "edit-on-github.njk" %}</em></p>
  </div>
</seven-minute-tabs>

src/_includes/snippets/pagination/original.njk (1.1 KiB)

<seven-minute-tabs class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "pagenavorig", valid: "njk"} %}
  <div id="pagenavorig-liquid" role="tabpanel">
    <p><em>This example has not yet been added—you can swap to another template language above! Or maybe you want to contribute it? {% include "edit-on-github.njk" %}</em></p>
  </div>
  <div id="pagenavorig-njk" role="tabpanel">

{% raw %}
```jinja2
<!-- Don’t copy this code, it’s been simplified for clarity -->
{% for pageEntry in pagination.pages %}
<a href="{{ pagination.hrefs[ loop.index0 ] }}">Page {{ loop.index }}</a>
{% endfor %}
```
{% endraw %}

  </div>
  <div id="pagenavorig-js" role="tabpanel">
    <p><em>This example has not yet been added—you can swap to another template language above! Or maybe you want to contribute it? {% include "edit-on-github.njk" %}</em></p>
  </div>
  <div id="pagenavorig-cjs" role="tabpanel">
    <p><em>This example has not yet been added—you can swap to another template language above! Or maybe you want to contribute it? {% include "edit-on-github.njk" %}</em></p>
  </div>
</seven-minute-tabs>

src/_includes/snippets/pagination/paged-array.cjs (338 B)

{% raw %}
exports.data = {
  pagination: {
    data: "testdata",
    size: 2
  },
  testdata: [
    "item1",
    "item2",
    "item3",
    "item4"
  ]
};

exports.render = function(data) {
  return `<ol>
    ${data.pagination.items.map(function(item) {
        return `<li>${item}</li>`;
      }).join("")
    }
  </ol>`;
};
{% endraw %}

src/_includes/snippets/pagination/paged-array.js (340 B)

{% raw %}
export const data = {
  pagination: {
    data: "testdata",
    size: 2
  },
  testdata: [
    "item1",
    "item2",
    "item3",
    "item4"
  ]
};

export function render(data) {
  return `<ol>
    ${data.pagination.items.map(function(item) {
        return `<li>${item}</li>`;
      }).join("")
    }
  </ol>`;
};
{% endraw %}

src/_includes/snippets/pagination/paged-array.njk (198 B)

{% raw %}
---
pagination:
  data: testdata
  size: 2
testdata:
 - item1
 - item2
 - item3
 - item4
---
<ol>
{%- for item in pagination.items %}
  <li>{{ item }}</li>
{% endfor -%}
</ol>
{% endraw %}

src/_includes/snippets/pagination/paging-datafile.njk (1.4 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "pagedatafile"} %}
  <div id="pagedatafile-liquid" role="tabpanel">

{% raw %}

```liquid
---
pagination:
  data: globalDataSet.myData
  size: 1
---
<ol>
{%- for item in pagination.items %}
  <li>{{ item }}</li>
{% endfor -%}
</ol>
```

{% endraw %}

  </div>
  <div id="pagedatafile-njk" role="tabpanel">

{% raw %}

```jinja2
---
pagination:
  data: globalDataSet.myData
  size: 1
---
<ol>
{%- for item in pagination.items %}
  <li>{{ item }}</li>
{% endfor -%}
</ol>
```

{% endraw %}

  </div>

  <div id="pagedatafile-js" role="tabpanel">

{% raw %}

```js
export const data = {
	pagination: {
		data: "globalDataSet.myData",
		size: 1,
	},
};

export function render(data) {
	return `<ol>
    ${data.pagination.items
			.map(function (item) {
				return `<li>${item}</li>`;
			})
			.join("")}
  </ol>`;
};
```

{% endraw %}

  </div>
	<div id="pagedatafile-cjs" role="tabpanel">

{% raw %}

```js
exports.data = {
	pagination: {
		data: "globalDataSet.myData",
		size: 1,
	},
};

exports.render = function (data) {
	return `<ol>
    ${data.pagination.items
			.map(function (item) {
				return `<li>${item}</li>`;
			})
			.join("")}
  </ol>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/pagination/paging-object.njk (1.7 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "pagedobj"} %}
  <div id="pagedobj-liquid" role="tabpanel">

{% raw %}

```liquid
---
pagination:
  data: testdata
  size: 1
testdata:
  itemkey1: itemvalue1
  itemkey2: itemvalue2
  itemkey3: itemvalue3
---
<ol>
{%- for item in pagination.items %}
  <li>{{ item }}={{testdata[item] }}</li>
{% endfor -%}
</ol>
```

{% endraw %}

  </div>
  <div id="pagedobj-njk" role="tabpanel">

{% raw %}

```jinja2
---
pagination:
  data: testdata
  size: 1
testdata:
  itemkey1: itemvalue1
  itemkey2: itemvalue2
  itemkey3: itemvalue3
---
<ol>
{%- for item in pagination.items %}
  <li>{{ item }}={{testdata[item] }}</li>
{% endfor -%}
</ol>
```

{% endraw %}

  </div>
  <div id="pagedobj-js" role="tabpanel">

{% raw %}

```js
export const data = {
	pagination: {
		data: "testdata",
		size: 1,
	},
	testdata: {
		itemkey1: "itemvalue1",
		itemkey2: "itemvalue2",
		itemkey3: "itemvalue3",
	},
};

export function render(data) {
	return `<ol>
		${data.pagination.items
			.map(function (item) {
				return `<li>${(item = data.testdata[item])}</li>`;
			})
			.join("")}
	</ol>`;
};
```

{% endraw %}

  </div>
<div id="pagedobj-cjs" role="tabpanel">

{% raw %}

```js
exports.data = {
	pagination: {
		data: "testdata",
		size: 1,
	},
	testdata: {
		itemkey1: "itemvalue1",
		itemkey2: "itemvalue2",
		itemkey3: "itemvalue3",
	},
};

exports.render = function (data) {
	return `<ol>
		${data.pagination.items
			.map(function (item) {
				return `<li>${(item = data.testdata[item])}</li>`;
			})
			.join("")}
	</ol>`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/base-add.njk (1.3 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "htmlbase-fullurl"} %}
  <div id="htmlbase-fullurl-liquid" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "Liquid", "Syntax" %}

{% raw %}

```liquid
{{ "http://example.com/" | addPathPrefixToFullUrl }}
=> "http://example.com/pathprefix/"
```

{% endraw %}

  </div>
  <div id="htmlbase-fullurl-njk" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "Nunjucks", "Syntax" %}

{% raw %}

```njk
{{ "http://example.com/" | addPathPrefixToFullUrl }}
=> "http://example.com/pathprefix/"
```

{% endraw %}

  </div>
  <div id="htmlbase-fullurl-js" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "11ty.js", "Syntax" %}

{% raw %}

```js
export default function () {
	return this.addPathPrefixToFullUrl("http://example.com/");
	// "http://example.com/pathprefix/"
};
```

{% endraw %}

  </div>
	<div id="htmlbase-fullurl-cjs" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "11ty.cjs", "Syntax" %}

{% raw %}

```js
module.exports = function () {
	return this.addPathPrefixToFullUrl("http://example.com/");
	// "http://example.com/pathprefix/"
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/base-install-options.njk (1.4 KiB)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { HtmlBasePlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(HtmlBasePlugin, {
		// The base URL: defaults to Path Prefix
		baseHref: eleventyConfig.pathPrefix,

		// But you could use a full URL here too:
		// baseHref: "http://example.com/"

		// Comma separated list of output file extensions to apply
		// our transform to. Use `false` to opt-out of the transform.
		extensions: "html",
	});
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { HtmlBasePlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(HtmlBasePlugin, {
		// The base URL: defaults to Path Prefix
		baseHref: eleventyConfig.pathPrefix,

		// But you could use a full URL here too:
		// baseHref: "http://example.com/"

		// Comma separated list of output file extensions to apply
		// our transform to. Use `false` to opt-out of the transform.
		extensions: "html",
	});
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/base-install.njk (779 B)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { HtmlBasePlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(HtmlBasePlugin);
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { HtmlBasePlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(HtmlBasePlugin);
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/base-transform.njk (4.2 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "htmlbasehtmlblock"} %}
  <div id="htmlbasehtmlblock-liquid" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "Liquid", "Syntax" %}

{% raw %}

```liquid
{{ '<a href="/test/">Link</a>' | transformWithHtmlBase }}
=> '<a href="/pathprefix/test/">Link</a>'

{{ '<a href="/test/">Link</a>' | transformWithHtmlBase: "http://example.com/" }}
=> '<a href="http://example.com/pathprefix/test/">Link</a>'
```

{% endraw %}

Resolving relative URLs (with path prefix still at `"/pathprefix/"`):

{% codetitle "Liquid", "Syntax" %}

{% raw %}

```liquid
On a page with URL `/my-template/`:

{{ '<a href="test/">Link</a>' | transformWithHtmlBase: "http://example.com/" }}
=> '<a href="http://example.com/pathprefix/my-template/test/">Link</a>'

Override the page URL:

{{ '<a href="test/">Link</a>' | transformWithHtmlBase: "http://example.com/", "/my-other-template/" }}
=> '<a href="http://example.com/pathprefix/my-other-template/test/">Link</a>'
```

{% endraw %}

  </div>
  <div id="htmlbasehtmlblock-njk" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "Nunjucks", "Syntax" %}

{% raw %}

```njk
{{ '<a href="/test/">Link</a>' | transformWithHtmlBase }}
=> '<a href="/pathprefix/test/">Link</a>'

{{ '<a href="/test/">Link</a>' | transformWithHtmlBase("http://example.com/") }}
=> '<a href="http://example.com/pathprefix/test/">Link</a>'
```

{% endraw %}

Resolving relative URLs (with path prefix still at `"/pathprefix/"`):

{% codetitle "Nunjucks", "Syntax" %}

{% raw %}

```njk
On a page with URL `/my-template/`:

{{ '<a href="test/">Link</a>' | transformWithHtmlBase("http://example.com/") }}
=> '<a href="http://example.com/pathprefix/my-template/test/">Link</a>'

Override the page URL:

{{ '<a href="test/">Link</a>' | transformWithHtmlBase("http://example.com/", "/my-other-template/") }}
=> '<a href="http://example.com/pathprefix/my-other-template/test/">Link</a>'
```

{% endraw %}

  </div>
  <div id="htmlbasehtmlblock-js" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "11ty.js", "Syntax" %}

{% raw %}

```js
export default async function () {
	return `
${await this.transformWithHtmlBase(`<a href="/test/">Link</a>`)}
=> '<a href="/pathprefix/test/">Link</a>'

${await this.transformWithHtmlBase(
	`<a href="/test/">Link</a>`,
	"http://example.com/"
)}
=> '<a href="http://example.com/pathprefix/test/">Link</a>'`;
};
```

{% endraw %}

Resolving relative URLs (with path prefix still at `"/pathprefix/"`):

{% codetitle "11ty.js", "Syntax" %}

{% raw %}

```js
export default async function () {
	return `
On a page with URL "/my-template/":

${await this.transformWithHtmlBase(
	'<a href="test/">Link</a>',
	"http://example.com/"
)}
=> '<a href="http://example.com/pathprefix/my-template/test/">Link</a>'

Override the page URL:

${await this.transformWithHtmlBase(
	'<a href="test/">Link</a>',
	"http://example.com/",
	"/my-other-template/"
)}
=> '<a href="http://example.com/pathprefix/my-other-template/test/">Link</a>''`;
};
```

{% endraw %}

  </div>
	<div id="htmlbasehtmlblock-cjs" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "11ty.cjs", "Syntax" %}

{% raw %}

```js
module.exports = async function () {
	return `
${await this.transformWithHtmlBase(`<a href="/test/">Link</a>`)}
=> '<a href="/pathprefix/test/">Link</a>'

${await this.transformWithHtmlBase(
	`<a href="/test/">Link</a>`,
	"http://example.com/"
)}
=> '<a href="http://example.com/pathprefix/test/">Link</a>'`;
};
```

{% endraw %}

Resolving relative URLs (with path prefix still at `"/pathprefix/"`):

{% codetitle "11ty.cjs", "Syntax" %}

{% raw %}

```js
module.exports = async function () {
	return `
On a page with URL "/my-template/":

${await this.transformWithHtmlBase(
	'<a href="test/">Link</a>',
	"http://example.com/"
)}
=> '<a href="http://example.com/pathprefix/my-template/test/">Link</a>'

Override the page URL:

${await this.transformWithHtmlBase(
	'<a href="test/">Link</a>',
	"http://example.com/",
	"/my-other-template/"
)}
=> '<a href="http://example.com/pathprefix/my-other-template/test/">Link</a>''`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/highlight-diff.njk (1.8 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "highlightdiff", additions: "md,webc", subtractions: "hbs"} %}
  <div id="highlightdiff-md" role="tabpanel">

````
```diff-js
+function myFunction() {
   // …
-  return true;
 }
```
````

  </div>
  <div id="highlightdiff-liquid" role="tabpanel">

{% raw %}

```markdown
{% highlight diff-js %}
+function myFunction() {
   // …
-  return true;
 }
{% endhighlight %}
```

{% endraw %}

  </div>
  <div id="highlightdiff-njk" role="tabpanel">

{% raw %}

```markdown
{% highlight "diff-js" %}
+function myFunction() {
   // …
-  return true;
}
{% endhighlight %}
```

{% endraw %}

  </div>
  <div id="highlightdiff-js" role="tabpanel">

{% raw %}

```js
export default function (data) {
  let code = `
+function myFunction() {
   // …
-  return true;
 }`;

  return this.highlight("diff-js", code);
};
```

{% endraw %}

The `highlight` JavaScript function was {% addedin "Syntax Highlighter v4.0.0" %}.

  </div>
   <div id="highlightdiff-cjs" role="tabpanel">

{% raw %}

```js
module.exports = function (data) {
  let code = `
+function myFunction() {
   // …
-  return true;
 }`;

  return this.highlight("diff-js", code);
};
```

{% endraw %}

The `highlight` JavaScript function was {% addedin "Syntax Highlighter v4.0.0" %}.

  </div>
  <div id="highlightdiff-webc" role="tabpanel">

{% raw %}

```html
<!-- Requires WebC v0.6.2+ -->
<!-- Requires Syntax Highlighter v4.2.0+ -->

<syntax-highlight
  language="diff-js"
  webc:import="npm:@11ty/eleventy-plugin-syntaxhighlight"
>
+function myFunction() {
   // …
-  return true;
 }
</syntax-highlight>
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/highlight.njk (2.7 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "highlight", additions: "md,webc"} %}
  <div id="highlight-md" role="tabpanel">

````markdown
```js
function myFunction() {
	return true;
}
```
````

    Optionally specify a language after the start of the markdown fenced code block.

  </div>
  <div id="highlight-liquid" role="tabpanel">

{% raw %}

```liquid
{% highlight js %}
function myFunction() {
  return true;
}
{% endhighlight %}
```

{% endraw %}

  </div>
  <div id="highlight-njk" role="tabpanel">

{% raw %}

```jinja2
{% highlight "js" %}
function myFunction() {
  return true;
}
{% endhighlight %}
```

{% endraw %}

  </div>
  <div id="highlight-js" role="tabpanel">

{% raw %}

```js
export default function (data) {
	let code = `
function myFunction() {
  return true;
}`;

	return this.highlight("js", code);
};
```

{% endraw %}

The `highlight` JavaScript function was {% addedin "Syntax Highlighter v4.0.0" %}.

  </div>
	<div id="highlight-cjs" role="tabpanel">

{% raw %}

```js
module.exports = function (data) {
	let code = `
function myFunction() {
  return true;
}`;

	return this.highlight("js", code);
};
```

{% endraw %}

The `highlight` JavaScript function was {% addedin "Syntax Highlighter v4.0.0" %}.

  </div>
  <div id="highlight-webc" role="tabpanel">

{% codetitle "webc", "Syntax" %}

{% raw %}

```html
<!-- Requires WebC v0.6.2+ -->
<!-- Requires Syntax Highlighter v4.2.0+ -->

<syntax-highlight
	language="js"
	webc:import="npm:@11ty/eleventy-plugin-syntaxhighlight"
>
	function myFunction() { return true; }
</syntax-highlight>
```

{% endraw %}

<details>
<summary>Expand to see an example of importing this as a global component in your configuration file.</summary>

{% codetitle ".eleventy.js" %}

```js
const pluginWebc = require("@11ty/eleventy-plugin-webc");

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(pluginWebc, {
		// Array `components` requires Eleventy WebC v0.9.2+
		components: [
			"_components/**/*.webc",
			"npm:@11ty/eleventy-plugin-syntaxhighlight/*.webc",
		],
	});
};
```

{% codetitle "page.webc" %}

```html
<syntax-highlight language="js">
	function myFunction() { return true; }
</syntax-highlight>
```

</details>

<details>
<summary>Expand to see an example of importing for use anywhere on the page via front matter.</summary>

{% codetitle "page.webc" %}

```html
---
webc:
  components: ./node_modules/@11ty/eleventy-plugin-syntaxhighlight/syntax-highlight.webc
---

<syntax-highlight language="js">
	function myFunction() { return true; }
</syntax-highlight>
```

</details>

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/htmlbaseurl-override.njk (2.7 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "htmlbasefull"} %}
  <div id="htmlbasefull-liquid" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "Liquid", "Syntax" %}

{% raw %}

```liquid
{{ "/test/" | htmlBaseUrl: "http://example.com/" }}
=> "http://example.com/pathprefix/test/"

Relative urls are resolved using the current page’s url.
For example, on a page with URL `/my-template/`:

{{ "test/" | htmlBaseUrl: "http://example.com/" }}
=> "http://example.com/pathprefix/my-template/test/"

Absolute URLs are still ignored:

{{ "http://11ty.dev/" | htmlBaseUrl: "http://example.com/" }}
=> "http://11ty.dev/"
```

{% endraw %}

  </div>
  <div id="htmlbasefull-njk" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "Nunjucks", "Syntax" %}

{% raw %}

```njk
{{ "/test/" | htmlBaseUrl("http://example.com/") }}
=> "http://example.com/pathprefix/test/"

Relative urls are resolved using the current page’s url.
For example, on a page with URL `/my-template/`:

{{ "test/" | htmlBaseUrl("http://example.com/") }}
=> "http://example.com/pathprefix/my-template/test/"

Absolute URLs are still ignored:

{{ "http://11ty.dev/" | htmlBaseUrl("http://example.com/") }}
=> "http://11ty.dev/"
```

{% endraw %}

  </div>
  <div id="htmlbasefull-js" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "11ty.js", "Syntax" %}

{% raw %}

```js
export default function () {
	return (
		`
${this.htmlBaseUrl("/test/", "http://example.com/")}
=> "http://example.com/pathprefix/test/"

Relative urls are resolved using the current page’s url.
For example, on a page with URL ` /
			my -
		template /
			`:

${this.htmlBaseUrl("test/", "http://example.com/")}
=> "http://example.com/pathprefix/my-template/test/"

Absolute URLs are still ignored:

${this.htmlBaseUrl("http://11ty.dev/", "http://example.com/")}
=> "http://11ty.dev/"`
	);
};
```

{% endraw %}

  </div>
  <div id="htmlbasefull-cjs" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "11ty.cjs", "Syntax" %}

{% raw %}

```js
module.exports = function () {
	return (
		`
${this.htmlBaseUrl("/test/", "http://example.com/")}
=> "http://example.com/pathprefix/test/"

Relative urls are resolved using the current page’s url.
For example, on a page with URL ` /
			my -
		template /
			`:

${this.htmlBaseUrl("test/", "http://example.com/")}
=> "http://example.com/pathprefix/my-template/test/"

Absolute URLs are still ignored:

${this.htmlBaseUrl("http://11ty.dev/", "http://example.com/")}
=> "http://11ty.dev/"`
	);
};
```

{% endraw %}

  </div>

</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/htmlbaseurl.njk (2.0 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "htmlbase"} %}
  <div id="htmlbase-liquid" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "Liquid", "Syntax" %}

{% raw %}

```liquid
{{ "/test/" | htmlBaseUrl }}
=> "/pathprefix/test/"

Relative paths are ignored:

{{ "test/" | htmlBaseUrl }}
=> "test/"

{{ "../test/" | htmlBaseUrl }}
=> "../test/"

Absolute URLs are ignored:

{{ "http://example.com/" | htmlBaseUrl }}
=> "http://example.com/"
```

{% endraw %}

  </div>
  <div id="htmlbase-njk" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "Nunjucks", "Syntax" %}

{% raw %}

```njk
{{ "/test/" | htmlBaseUrl }}
=> "/pathprefix/test/"

Relative paths are ignored:

{{ "test/" | htmlBaseUrl }}
=> "test/"

{{ "../test/" | htmlBaseUrl }}
=> "../test/"

Absolute URLs are ignored:

{{ "http://example.com/" | htmlBaseUrl }}
=> "http://example.com/"
```

{% endraw %}

  </div>
  <div id="htmlbase-js" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "11ty.js", "Syntax" %}

{% raw %}

```js
export default function () {
	return `
${this.htmlBaseUrl("/test/")}
=> "/pathprefix/test/"

Relative paths are ignored:

${this.htmlBaseUrl("test/")}
=> "test/"

${this.htmlBaseUrl("../test/")}
=> "../test/"

Absolute URLs are ignored:

${this.htmlBaseUrl("http://example.com/")}
=> "http://example.com/"
`;
};
```

{% endraw %}

  </div>
	<div id="htmlbase-cjs" role="tabpanel">

With path prefix set to `"/pathprefix/"`:

{% codetitle "11ty.js", "Syntax" %}

{% raw %}

```js
module.exports = function () {
	return `
${this.htmlBaseUrl("/test/")}
=> "/pathprefix/test/"

Relative paths are ignored:

${this.htmlBaseUrl("test/")}
=> "test/"

${this.htmlBaseUrl("../test/")}
=> "../test/"

Absolute URLs are ignored:

${this.htmlBaseUrl("http://example.com/")}
=> "http://example.com/"
`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/i18n-install-options.njk (2.1 KiB)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { I18nPlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(I18nPlugin, {
		// any valid BCP 47-compatible language tag is supported
		defaultLanguage: "", // Required, this site uses "en"

		// Rename the default universal filter names
		filters: {
			// transform a URL with the current page’s locale code
			url: "locale_url",

			// find the other localized content for a specific input file
			links: "locale_links",
		},

		// When to throw errors for missing localized content files
		errorMode: "strict", // throw an error if content is missing at /en/slug
		// errorMode: "allow-fallback", // only throw an error when the content is missing at both /en/slug and /slug
		// errorMode: "never", // don’t throw errors for missing content
	});
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { I18nPlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(I18nPlugin, {
		// any valid BCP 47-compatible language tag is supported
		defaultLanguage: "", // Required, this site uses "en"

		// Rename the default universal filter names
		filters: {
			// transform a URL with the current page’s locale code
			url: "locale_url",

			// find the other localized content for a specific input file
			links: "locale_links",
		},

		// When to throw errors for missing localized content files
		errorMode: "strict", // throw an error if content is missing at /en/slug
		// errorMode: "allow-fallback", // only throw an error when the content is missing at both /en/slug and /slug
		// errorMode: "never", // don’t throw errors for missing content
	});
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/i18n-install.njk (763 B)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { I18nPlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(I18nPlugin);
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { I18nPlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(I18nPlugin);
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/i18nalternate.njk (2.5 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "localelinksrel"} %}
  <div id="localelinksrel-njk" role="tabpanel">

{% codetitle "_includes/mylayout.njk" %}

{% raw %}

```njk
{# `{{lang}}` must be set by you in the data cascade, see above note #}
<!doctype html>
<html lang="{{lang}}">
  <head>
    <link rel="alternate" hreflang="{{lang}}" href="{{page.url}}">
  {% for link in page.url | locale_links %}
    <link rel="alternate" hreflang="{{link.lang}}" href="https://www.11ty.dev{{link.url}}">
  {% endfor %}
```

{% endraw %}

  </div>
  <div id="localelinksrel-liquid" role="tabpanel">

{% codetitle "_includes/mylayout.njk" %}

{% raw %}

```liquid
<!doctype html>
{% comment %} `{{lang}}` must be set by you in the data cascade, see above note {% endcomment %}
<html lang="{{lang}}">
  <head>
    <link rel="alternate" hreflang="{{lang}}" href="{{page.url}}">
{% assign links = page.url | locale_links %}
{%- for link in links %}
    <link rel="alternate" hreflang="{{link.lang}}" href="https://www.11ty.dev{{link.url}}">
{%- endfor -%}
```

{% endraw %}

  </div>
  <div id="localelinksrel-js" role="tabpanel">

{% codetitle "/_includes/mylayout.11ty.js" %}

{% raw %}

```js
export default function (data) {
	let links = this.locale_links(data.page.url);
	// side note: url argument is optional for current page

	// `${data.lang}` must be set by you in the data cascade, see above note
	return `
<!doctype html>
<html lang="${data.lang}">
  <head>
    <link rel="alternate" hreflang="${data.lang}" href="{{data.page.url}}">
  ${links
		.map((link) => {
			return `    <link rel="alternate" hreflang="${link.lang}" href="https://www.11ty.dev${link.url}">`;
		})
		.join("\n")}
`;
};
```

{% endraw %}

  </div>
	<div id="localelinksrel-cjs" role="tabpanel">

{% codetitle "/_includes/mylayout.11ty.cjs" %}

{% raw %}

```js
module.exports = function (data) {
	let links = this.locale_links(data.page.url);
	// side note: url argument is optional for current page

	// `${data.lang}` must be set by you in the data cascade, see above note
	return `
<!doctype html>
<html lang="${data.lang}">
  <head>
    <link rel="alternate" hreflang="${data.lang}" href="{{data.page.url}}">
  ${links
		.map((link) => {
			return `    <link rel="alternate" hreflang="${link.lang}" href="https://www.11ty.dev${link.url}">`;
		})
		.join("\n")}
`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/i18nexample.njk (1.8 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "localelinks"} %}
  <div id="localelinks-njk" role="tabpanel">

{% codetitle "/en/blog.njk" %}

{% raw %}

```njk
This page is also available in:
{% for link in page.url | locale_links %}
{%- if not loop.first %},{% endif %}
<a href="{{link.url}}" lang="{{link.lang}}" hreflang="{{link.lang}}">{{link.label}}</a>
{% endfor %}
```

{% endraw %}

  </div>
  <div id="localelinks-liquid" role="tabpanel">

{% codetitle "/en/blog.liquid" %}

{% raw %}

```liquid
This page is also available in:
{% assign links = page.url | locale_links %}
{%- for link in links %}
{%- unless forloop.first %},{% endunless %}
<a href="{{link.url}}" lang="{{link.lang}}" hreflang="{{link.lang}}">{{link.label}}</a>
{%- endfor -%}
```

{% endraw %}

  </div>
  <div id="localelinks-js" role="tabpanel">

{% codetitle "/en/blog.11ty.js" %}

{% raw %}

```js
export default function (data) {
	let links = this.locale_links(data.page.url);

	// Don’t forget to localize this text too
	return `This page is also available in:
${links
	.map((link) => {
		return `<a href="${link.url}" lang="${link.lang}" hreflang="${link.lang}">${link.label}</a>`;
	})
	.join(", ")}`;
};
```

{% endraw %}

  </div>
	<div id="localelinks-cjs" role="tabpanel">

{% codetitle "/en/blog.11ty.cjs" %}

{% raw %}

```js
module.exports = function (data) {
	let links = this.locale_links(data.page.url);

	// Don’t forget to localize this text too
	return `This page is also available in:
${links
	.map((link) => {
		return `<a href="${link.url}" lang="${link.lang}" hreflang="${link.lang}">${link.label}</a>`;
	})
	.join(", ")}`;
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/i18nlocaleurl-arg.njk (1.2 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "localeurlforce"} %}
  <div id="localeurlforce-njk" role="tabpanel">

{% codetitle "/en/index.njk" %}

{% raw %}

```njk
<a href="{{ "/blog/" | locale_url("es") }}">Blog</a>
<!-- <a href="/es/blog/">Blog</a> -->
```

{% endraw %}

  </div>
  <div id="localeurlforce-liquid" role="tabpanel">

{% codetitle "/en/index.liquid" %}

{% raw %}

```liquid
<a href="{{ "/blog/" | locale_url: "es" }}">Blog</a>
<!-- <a href="/es/blog/">Blog</a> -->
```

{% endraw %}

  </div>
  <div id="localeurlforce-js" role="tabpanel">

{% codetitle "/en/index.11ty.js" %}

{% raw %}

```js
export default function (data) {
	return `<a href="${this.locale_url("/blog/", "es")}">Blog</a>`;
	// returns <a href="/es/blog/">Blog</a>
};
```

{% endraw %}

  </div>
	<div id="localeurlforce-cjs" role="tabpanel">

{% codetitle "/en/index.11ty.cjs" %}

{% raw %}

```js
module.exports = function (data) {
	return `<a href="${this.locale_url("/blog/", "es")}">Blog</a>`;
	// returns <a href="/es/blog/">Blog</a>
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/i18nlocaleurl.njk (1.8 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "localeurl"} %}
  <div id="localeurl-njk" role="tabpanel">

{% codetitle "/en/index.njk" %}

{% raw %}

```njk
<a href="{{ "/blog/" | locale_url }}">Blog</a>
<!-- <a href="/en/blog/">Blog</a> -->
```

{% endraw %}

{% codetitle "/es/index.njk" %}

{% raw %}

```njk
<a href="{{ "/blog/" | locale_url }}">Blog</a>
<!-- <a href="/es/blog/">Blog</a> -->
```

{% endraw %}

  </div>
  <div id="localeurl-liquid" role="tabpanel">

{% codetitle "/en/index.liquid" %}

{% raw %}

```liquid
<a href="{{ "/blog/" | locale_url }}">Blog</a>
<!-- <a href="/en/blog/">Blog</a> -->
```

{% endraw %}

{% codetitle "/es/index.liquid" %}

{% raw %}

```liquid
<a href="{{ "/blog/" | locale_url }}">Blog</a>
<!-- <a href="/es/blog/">Blog</a> -->
```

{% endraw %}

  </div>
  <div id="localeurl-js" role="tabpanel">

{% codetitle "/en/index.11ty.js" %}

{% raw %}

```js
export default function (data) {
	return `<a href="${this.locale_url("/blog/")}">Blog</a>`;
	// returns <a href="/en/blog/">Blog</a>
};
```

{% endraw %}

{% codetitle "/es/index.11ty.js" %}

{% raw %}

```js
export default function (data) {
	return `<a href="${this.locale_url("/blog/")}">Blog</a>`;
	// returns <a href="/es/blog/">Blog</a>
};
```

{% endraw %}

  </div>
	<div id="localeurl-cjs" role="tabpanel">

{% codetitle "/en/index.11ty.cjs" %}

{% raw %}

```js
module.exports = function (data) {
	return `<a href="${this.locale_url("/blog/")}">Blog</a>`;
	// returns <a href="/en/blog/">Blog</a>
};
```

{% endraw %}

{% codetitle "/es/index.11ty.cjs" %}

{% raw %}

```js
module.exports = function (data) {
	return `<a href="${this.locale_url("/blog/")}">Blog</a>`;
	// returns <a href="/es/blog/">Blog</a>
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/idattr-opts.njk (1.8 KiB)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { IdAttributePlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(IdAttributePlugin, {
		selector: "h1,h2,h3,h4,h5,h6", // default

		// swaps html entities (like &amp;) to their counterparts before slugify-ing
		decodeEntities: true,

		// check for duplicate `id` attributes in application code?
		checkDuplicates: "error", // `false` to disable

		// by default we use Eleventy’s built-in `slugify` filter:
		slugify: eleventyConfig.getFilter("slugify"),

		filter: function({ page }) {
			if(page.inputPath.endsWith("test-skipped.html")) {
				return false; // skip
			}

			return true;
		}
	});
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { IdAttributePlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(IdAttributePlugin, {
		selector: "h1,h2,h3,h4,h5,h6", // default

		// swaps html entities (like &amp;) to their counterparts before slugify-ing
		decodeEntities: true,

		// check for duplicate `id` attributes in application code?
		checkDuplicates: "error", // `false` to disable

		// by default we use Eleventy’s built-in `slugify` filter:
		slugify: eleventyConfig.getFilter("slugify"),

		filter: function({ page }) {
			if(page.inputPath.endsWith("test-skipped.html")) {
				return false; // skip
			}

			return true;
		}
	});
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/idattr.njk (791 B)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { IdAttributePlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(IdAttributePlugin);
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { IdAttributePlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(IdAttributePlugin);
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/inputpath-options.njk (1.0 KiB)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { InputPathToUrlTransformPlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(InputPathToUrlTransformPlugin, {
		// Comma separated list of outputPath file extensions to apply the transform
		extensions: "html",
	});
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { InputPathToUrlTransformPlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(InputPathToUrlTransformPlugin, {
		// Comma separated list of outputPath file extensions to apply the transform
		extensions: "html",
	});
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/inputpath.njk (839 B)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { InputPathToUrlTransformPlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(InputPathToUrlTransformPlugin);
}
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { InputPathToUrlTransformPlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(InputPathToUrlTransformPlugin);
}
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/render.njk (1.0 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "rendertmpl"} %}
  <div id="rendertmpl-liquid" role="tabpanel">

{% raw %}

```liquid
{% renderTemplate "md" %}
# I am a title

* I am a list
* I am a list
{% endrenderTemplate %}
```

{% endraw %}

  </div>
  <div id="rendertmpl-njk" role="tabpanel">

{% raw %}

```jinja2
{% renderTemplate "md" %}
# I am a title

* I am a list
* I am a list
{% endrenderTemplate %}
```

{% endraw %}

  </div>
  <div id="rendertmpl-js" role="tabpanel">

{% raw %}

```js
export default async function () {
  return await this.renderTemplate(
    `# I am a title

* I am a list
* I am a list`,
    "md"
  );
};
```

{% endraw %}

  </div>
  <div id="rendertmpl-cjs" role="tabpanel">

{% raw %}

```js
module.exports = async function () {
  return await this.renderTemplate(
    `# I am a title

* I am a list
* I am a list`,
    "md"
  );
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/rendercontent.njk (1.1 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "rendercontent"} %}
  <div id="rendercontent-liquid" role="tabpanel">

{% raw %}

```liquid
---
myData:
  key: value
---
{% renderFile "./_includes/blogpost.md", myData, "njk" %}
```

{% endraw %}

  </div>
  <div id="rendercontent-njk" role="tabpanel">

{% raw %}

```jinja2
---
myData:
  key: value
---
{% renderFile "./_includes/blogpost.md", myData, "njk" %}
```

{% endraw %}

  </div>
  <div id="rendercontent-js" role="tabpanel">

{% raw %}

```js
export const data = {
  myData: {
    myKey: "myValue",
  },
};
export async function render(data) {
  return await this.renderFile("./includes/blogpost.md", data.myData, "njk");
};
```

{% endraw %}

  </div>
  <div id="rendercontent-cjs" role="tabpanel">

{% raw %}

```js
module.exports.data = {
  myData: {
    myKey: "myValue",
  },
};
module.exports.render = async function (data) {
  return await this.renderFile("./includes/blogpost.md", data.myData, "njk");
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/renderdata.njk (1.2 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "rendertmpldata"} %}
  <div id="rendertmpldata-liquid" role="tabpanel">

{% raw %}

```liquid
---
myData:
  myKey: myValue
---
{% renderTemplate "liquid", myData %}
{{ myKey }}
{% endrenderTemplate %}
```

{% endraw %}

  </div>
  <div id="rendertmpldata-njk" role="tabpanel">

{% raw %}

```jinja2
---
myData:
  myKey: myValue
---
{% renderTemplate "liquid", myData %}
{{ myKey }}
{% endrenderTemplate %}
```

{% endraw %}

  </div>
  <div id="rendertmpldata-js" role="tabpanel">

{% raw %}

```js
export const data = {
	myData: {
		myKey: "myValue",
	},
};

export async function render(data) {
	return await this.renderTemplate(`{{ myKey }}`, "liquid", data.myData);
};
```

{% endraw %}

  </div>
	<div id="rendertmpldata-cjs" role="tabpanel">

{% raw %}

```js
module.exports.data = {
	myData: {
		myKey: "myValue",
	},
};

module.exports.render = async function (data) {
	return await this.renderTemplate(`{{ myKey }}`, "liquid", data.myData);
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/renderfile.njk (876 B)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "renderfile"} %}
  <div id="renderfile-liquid" role="tabpanel">

{% raw %}

```liquid
{% renderFile "./_includes/blogpost.md" %}
```

{% endraw %}

  </div>
  <div id="renderfile-njk" role="tabpanel">

{% raw %}

```jinja2
{% renderFile "./_includes/blogpost.md" %}
```

{% endraw %}

  </div>
  <div id="renderfile-js" role="tabpanel">

{% raw %}

```js
export default async function () {
  return await this.renderFile("./includes/blogpost.md");
};
```

{% endraw %}

  </div>
  <div id="renderfile-cjs" role="tabpanel">

{% raw %}

```js
module.exports = async function () {
  return await this.renderFile("./includes/blogpost.md");
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/renderfiledata.njk (1.1 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "renderfiledata"} %}
  <div id="renderfiledata-liquid" role="tabpanel">

{% raw %}

```liquid
---
myData:
  myKey: myValue
---
{% renderFile "./_includes/blogpost.md", myData %}
```

{% endraw %}

  </div>
  <div id="renderfiledata-njk" role="tabpanel">

{% raw %}

```jinja2
---
myData:
  myKey: myValue
---
{% renderFile "./_includes/blogpost.md", myData %}
```

{% endraw %}

  </div>
  <div id="renderfiledata-js" role="tabpanel">

{% raw %}

```js
export const data = {
  myData: {
    myKey: "myValue",
  },
};
export async function render(data) {
  return await this.renderFile("./includes/blogpost.md", data.myData);
};
```

{% endraw %}

  </div>
  <div id="renderfiledata-cjs" role="tabpanel">

{% raw %}

```js
module.exports.data = {
  myData: {
    myKey: "myValue",
  },
};
module.exports.render = async function (data) {
  return await this.renderFile("./includes/blogpost.md", data.myData);
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/renderfileoverride.njk (1.2 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "renderfileoverride"} %}
  <div id="renderfileoverride-liquid" role="tabpanel">

{% raw %}

```liquid
---
myData:
  key: value
---
{% renderFile "./_includes/blogpost.md", myData, "njk" %}
```

{% endraw %}

  </div>
  <div id="renderfileoverride-njk" role="tabpanel">

{% raw %}

```jinja2
---
myData:
  key: value
---
{% renderFile "./_includes/blogpost.md", myData, "njk" %}
```

{% endraw %}

  </div>
  <div id="renderfileoverride-js" role="tabpanel">

{% raw %}

```js
export const data = {
  myData: {
    myKey: "myValue",
  },
};
export async function render(data) {
  return await this.renderFile("./includes/blogpost.md", data.myData, "njk");
};
```

{% endraw %}

  </div>
  <div id="renderfileoverride-cjs" role="tabpanel">

{% raw %}

```js
module.exports.data = {
  myData: {
    myKey: "myValue",
  },
};
module.exports.render = async function (data) {
  return await this.renderFile("./includes/blogpost.md", data.myData, "njk");
};
```

{% endraw %}

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/renderinstall-advanced.njk (1.4 KiB)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { RenderPlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(RenderPlugin, {
		tagName: "renderTemplate", // Change the renderTemplate shortcode name
		tagNameFile: "renderFile", // Change the renderFile shortcode name
		filterName: "renderContent", // Change the renderContent filter name

		// Only available in Liquid right now
		accessGlobalData: false,   // Does rendered content has access to the data cascade?
	});
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { RenderPlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(RenderPlugin, {
		tagName: "renderTemplate", // Change the renderTemplate shortcode name
		tagNameFile: "renderFile", // Change the renderFile shortcode name
		filterName: "renderContent", // Change the renderContent filter name

		// Only available in Liquid right now
		accessGlobalData: false,   // Does rendered content has access to the data cascade?
	});
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/plugins/renderinstall.njk (773 B)

{% set tabid %}tab-{% uid %}{% endset %}
<div class="codetitle codetitle-right-md">eleventy.config.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import { RenderPlugin } from "@11ty/eleventy";

export default function (eleventyConfig) {
	eleventyConfig.addPlugin(RenderPlugin);
};
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
module.exports = async function (eleventyConfig) {
	const { RenderPlugin } = await import("@11ty/eleventy");

	eleventyConfig.addPlugin(RenderPlugin);
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/programmatic/chdirs.njk (752 B)

{%- set tabid = "chdirs" %}
<div class="codetitle codetitle-right-md">my-node-script.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import Eleventy from "@11ty/eleventy";

let elev = new Eleventy(".", "_site");

// Use `write` or `toJSON` or `toNDJSON`
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
(async function () {
	const { Eleventy } = await import("@11ty/eleventy");

	let elev = new Eleventy(".", "_site");

	// Use `write` or `toJSON` or `toNDJSON`
})();
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/programmatic/fullopts.njk (1.2 KiB)

{%- set tabid = "fullopts" %}
<div class="codetitle codetitle-right-md">my-node-script.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import Eleventy from "@11ty/eleventy";

let elev = new Eleventy(".", "_site", {
	// --quiet
	quietMode: true,

	// --config
	configPath: ".eleventy.js",

	config: function (eleventyConfig) {
		// Do some custom Configuration API stuff
		// Works great with eleventyConfig.addGlobalData
	},
});

// Use `write` or `toJSON` or `toNDJSON`
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
(async function () {
	const { Eleventy } = await import("@11ty/eleventy");

	let elev = new Eleventy(".", "_site", {
		// --quiet
		quietMode: true,

		// --config
		configPath: ".eleventy.js",

		config: function (eleventyConfig) {
			// Do some custom Configuration API stuff
			// Works great with eleventyConfig.addGlobalData
		},
	});

	// Use `write` or `toJSON` or `toNDJSON`
})();
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/programmatic/json-out-data.njk (1.5 KiB)

{%- set tabid = "jsonoutdata" %}
<div class="codetitle codetitle-right-md">my-node-script.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import Eleventy from "@11ty/eleventy";

let elev = new Eleventy(".", "_site", {
	config: function(eleventyConfig) {
		eleventyConfig.dataFilterSelectors.add("globalData.key1");
		eleventyConfig.dataFilterSelectors.add("globalData.key2");
		eleventyConfig.dataFilterSelectors.add("someProperty.key");
	}
});

let json = await elev.toJSON();

// All results with
// json[…].data.globalData.key1
// json[…].data.globalData.key2
// json[…].data.someProperty.key
console.log(json);
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
(async function () {
	const { Eleventy } = await import("@11ty/eleventy");

	let elev = new Eleventy(".", "_site", {
		config: function(eleventyConfig) {
			eleventyConfig.dataFilterSelectors.add("globalData.key1");
			eleventyConfig.dataFilterSelectors.add("globalData.key2");
			eleventyConfig.dataFilterSelectors.add("someProperty.key");
		}
	});

	let json = await elev.toJSON();

	// All results with
	// json[…].data.globalData.key1
	// json[…].data.globalData.key2
	// json[…].data.someProperty.key
	console.log(json);
})();
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/programmatic/json-out.njk (781 B)

{%- set tabid = "jsonout" %}
<div class="codetitle codetitle-right-md">my-node-script.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import Eleventy from "@11ty/eleventy";

let elev = new Eleventy();
let json = await elev.toJSON();

// All results
console.log(json);
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
(async function () {
	const { Eleventy } = await import("@11ty/eleventy");

	let elev = new Eleventy();
	let json = await elev.toJSON();

	// All results
	console.log(json);
})();
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/programmatic/ndjson-out.njk (996 B)

{%- set tabid = "ndjsonout" %}
<div class="codetitle codetitle-right-md">my-node-script.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import Eleventy from "@11ty/eleventy";

let elev = new Eleventy();
let stream = await elev.toNDJSON();
stream.on("data", (entry) => {
	// Stream one output result at a time
	let json = JSON.parse(entry.toString());
	console.log(json);
});
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
(async function () {
	const { Eleventy } = await import("@11ty/eleventy");

	let elev = new Eleventy();
	let stream = await elev.toNDJSON();
	stream.on("data", (entry) => {
		// Stream one output result at a time
		let json = JSON.parse(entry.toString());
		console.log(json);
	});
})();
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/programmatic/node-script.njk (690 B)

{%- set tabid = "programmatic" %}
<div class="codetitle codetitle-right-md">my-node-script.js</div>
<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs class="tabs-flush" persist>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: tabid, only: "jsesm,jscjs"} %}
  <div id="{{ tabid }}-jsesm" role="tabpanel">

```js
import Eleventy from "@11ty/eleventy";

let elev = new Eleventy();
await elev.write();
```

  </div>
  <div id="{{ tabid }}-jscjs" role="tabpanel">

```js
(async function () {
	const { Eleventy } = await import("@11ty/eleventy");

	let elev = new Eleventy();
	await elev.write();
})();
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/shortcodes/intro.njk (1.4 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync>
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "shortcode"} %}
  <div id="shortcode-liquid" role="tabpanel">
		<div class="codetitle">sample.liquid</div>
{%- highlight "liquid" %}{% raw %}
{% user firstName, lastName %}
{% endraw %}{% endhighlight %}
    <p>The comma between arguments is <strong>optional</strong> in Liquid templates.</p>
    <div class="codetitle">sample.liquid</div>
{%- highlight "liquid" %}{% raw %}
{% user firstName lastName %}
{% endraw %}{% endhighlight %}
  </div>
  <div id="shortcode-njk" role="tabpanel">
    <div class="codetitle">sample.njk</div>
{%- highlight "jinja2" %}{% raw %}
{% user firstName, lastName %}
{% endraw %}{% endhighlight %}
    <p>The comma between arguments is <strong>required</strong> in Nunjucks templates.</p>
  </div>
  <div id="shortcode-js" role="tabpanel">
    <div class="codetitle">sample.11ty.js</div>
{%- highlight "js" %}{% raw %}
export default function({ firstName, lastName }) {
  return `<h1>${this.user(firstName, lastName)}</h1>`;
};
{% endraw %}{% endhighlight %}
  </div>
  <div id="shortcode-cjs" role="tabpanel">
    <div class="codetitle">sample.11ty.cjs</div>
{%- highlight "js" %}{% raw %}
module.exports = function({ firstName, lastName }) {
  return `<h1>${this.user(firstName, lastName)}</h1>`;
};
{% endraw %}{% endhighlight %}
  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/shortcodes/paired.njk (1.4 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
  {% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "pairedshortcodes"} %}
  <div id="pairedshortcodes-liquid" role="tabpanel">

{% raw %}

```liquid
{% user firstName, lastName %}
  Hello {{ someOtherVariable }}.

  Hello {% anotherShortcode %}.
{% enduser %}
```

{% endraw %}

The comma between arguments is **optional** in Liquid templates.

  </div>
  <div id="pairedshortcodes-njk" role="tabpanel">

{% raw %}

```jinja2
{% user firstName, lastName %}
  Hello {{ someOtherVariable }}.

  Hello {% anotherShortcode %}.
{% enduser %}
```

{% endraw %}

The comma between arguments is **required** in Nunjucks.

  </div>
  <div id="pairedshortcodes-js" role="tabpanel">

```js
export default function (data) {
  let userContent = `Hello ${data.someOtherVariable}

Hello ${this.anotherShortCode()}`;

  // pass the content as the first parameter.
  return `<h1>${this.user(userContent, data.firstName, data.lastName)}</h1>`;
};
```

  </div>
  <div id="pairedshortcodes-cjs" role="tabpanel">

```js
module.exports = function (data) {
  let userContent = `Hello ${data.someOtherVariable}

Hello ${this.anotherShortCode()}`;

  // pass the content as the first parameter.
  return `<h1>${this.user(userContent, data.firstName, data.lastName)}</h1>`;
};
```

  </div>
</seven-minute-tabs>
</is-land>

src/_includes/snippets/webc/render.njk (1.1 KiB)

<is-land on:visible import="/js/seven-minute-tabs.js">
<seven-minute-tabs persist sync class="tabs-flush">
{% renderFile "./src/_includes/syntax-chooser-tablist.11ty.js", {id: "webc-render"} %}
<div id="webc-render-liquid" role="tabpanel">

{% raw %}
```liquid
{% renderTemplate "webc" %}
<my-custom-component></my-custom-component>
{% endrenderTemplate %}
```
{% endraw %}

</div>
<div id="webc-render-njk" role="tabpanel">

{% raw %}
```njk
{% renderTemplate "webc" %}
<my-custom-component></my-custom-component>
{% endrenderTemplate %}
```
{% endraw %}

</div>
<div id="webc-render-js" role="tabpanel">

{% raw %}
```js
export default async function () {
	let content = await this.renderTemplate(
		`<my-custom-component></my-custom-component>`,
		"webc"
	);
	return content;
};
```
{% endraw %}

</div>
<div id="webc-render-cjs" role="tabpanel">

{% raw %}
```js
module.exports = async function () {
	let content = await this.renderTemplate(
		`<my-custom-component></my-custom-component>`,
		"webc"
	);
	return content;
};
```
{% endraw %}

</div>
</seven-minute-tabs>
</is-land>

src/_includes/social-callout.njk (1.3 KiB)

{% callout %}
<ul class="inlinelist">
	<li class="inlinelist-item"><a href="/blog/">Read the <strong>Blog</strong></a></li>
	<li class="inlinelist-item"><a href="https://neighborhood.11ty.dev/@11ty">Follow on <strong><i class="fa-brands fa-mastodon"></i>Mastodon</strong></a></li>
	<li class="inlinelist-item"><a href="https://bsky.app/profile/11ty.dev">Follow on <strong><i class="fa-brands fa-bluesky"></i>Bluesky</strong></a></li>
	<li class="inlinelist-item"><a href="https://buttondown.email/11ty">Subscribe to the <strong><i class="fa-solid fa-inbox"></i>Newsletter</strong></a></li>
	<li class="inlinelist-item"><a href="https://www.youtube.com/c/EleventyVideo" class="elv-externalexempt">Watch on <strong><i class="fa-brands fa-youtube"></i>YouTube</strong></a></li>
	<li class="inlinelist-item"><a href="https://github.com/11ty/eleventy" class="elv-externalexempt">Star on <strong><i class="fa-brands fa-github"></i>GitHub</strong></a></li>
	<li class="inlinelist-item"><a href="/blog/discord/">Chat on <strong><i class="fa-brands fa-discord"></i>Discord</strong></a></li>
	<li class="inlinelist-item"><del><strong><i class="fa-brands fa-twitter"></i>Twitter</strong></del></li>
	{# <li class="inlinelist-item"><a href="https://twitter.11ty.dev"><i class="fa-brands fa-twitter">Twitter</i> Archive</a></li> #}
</ul>
{% endcallout %}

src/_includes/star-on-github.njk (585 B)

<a href="https://github.com/11ty/eleventy" class="minilink minilink-github elv-skipicon"><i class="fa-solid fa-star"></i> {% if github.stargazers %}<strong title="{{ github.stargazers }}">{{ github.stargazers | humanReadableNum }}</strong>{% endif %}</a> <a href="https://github.com/11ty/eleventy" class="elv-skipicon"><i class="fa-brands fa-github"></i><strong>Star Eleventy on GitHub!</strong></a> This is an easy way to support our underrated project and help boost our rank on both GitHub and <a href="https://jamstack.org/generators/">jamstack.org</a>’s list of site generators.

src/_includes/supporter-benefits.njk (296 B)

1. Display your [name and avatar on the Eleventy documentation](/docs/supporters/). Monthly supporter avatars are listed in the footer of _almost_ all documentation pages.
1. Backer tier and above can join the [Eleventy Super Professional Business Network](/super-professional-business-network/).

src/_includes/supporters.njk (1.8 KiB)

{%- set goldSponsors = opencollective.supporters | opencollectiveTier("gold-sponsor") %}
{%- if goldSponsors.length > 0 %}
<div class="fullwidth-module supporters-tiered supporters-gold">
	<h3 class="subhed"><strong>Gold Sponsors</strong></h3>
	<div class="lo-grid">
	{%- for supporter in goldSponsors | shuffle %}
	{%- set nameToSlug = supporter.name | slugify | lower -%}
		<div class="{% if opencollectiveExtra[nameToSlug].containerClass %} {{ opencollectiveExtra[nameToSlug].containerClass }}{% endif %}">
			<a href="{{ opencollectiveExtra[nameToSlug].href or supporter.website or supporter.profile }}" class="elv-externalexempt" data-supporters-slug="{{ nameToSlug }}" rel="sponsored">{% if opencollectiveExtra[nameToSlug].icon %}{{ opencollectiveExtra[nameToSlug].icon | safe }}<span class="sr-only">{{ supporter.name }}</span>{% else %}{% opencollectiveavatar supporter %}{{ supporter.name }}{% endif %}</a>
		</div>
	{%- endfor %}
	</div>
</div>
{% endif %}

<div class="fullwidth-module supporters-tiered supporters-silver">
	<h3 class="subhed"><strong>{% if goldSponsors.length > 0 %}Silver {% endif %}Sponsors</strong></h3>
	<div class="facepile facepile-supporters">
	{%- for supporter in opencollective.supporters | supportersFacepile | shuffle %}{% if supporter.tier.slug == "silver-sponsor" and supporter.isMonthly -%}
		{%- set nameToSlug = supporter.name | slugify | lower -%}
		<a href="{{ supporter.website or supporter.profile }}" class="elv-externalexempt" data-supporters-slug="{{ nameToSlug }}" rel="sponsored">{% opencollectiveavatar supporter %}</a>
	{%- endif %}{% endfor %}
	</div>
</div>

<div class="fullwidth-module">
	<is-land on:visible on:save-data="false">
		<template data-island>
			<h3 class="subhed ta-c"><strong>Supporters</strong></h3>
			<html-fetch src="/imports/supporters.html"></html-fetch>
		</template>
	</is-land>
</div>

src/_includes/syntax-chooser-tablist.11ty.js (2.1 KiB)

async function render({ id, valid, additions, subtractions, only, label }) {
  const syntaxes = {};

  const extraSyntaxes = {
    html: 'HTML',
    md: 'Markdown',
    webc: 'WebC',
    jsesm: 'ESM',
    jscjs: 'CommonJS',
    any: 'Any',
    hbs: 'Handlebars'
  };

  const syntaxMap = {
    liquid: 'Liquid',
    njk: 'Nunjucks',
    js: '11ty.js',
    cjs: '11ty.cjs'
  };

  // Extras go first (unless hbs)
  let addHbs = false;
  const syntaxAddArray = (additions || '').split(',').filter((entry) => !!entry);
  for (const syn of syntaxAddArray) {
    if (extraSyntaxes[syn]) {
      if(syn == 'hbs') {
        addHbs = true;
      } else {
        syntaxes[syn] = extraSyntaxes[syn];
      }
    }
  }

  if (only) {
    for (const syn of (only || '').split(',')) {
      syntaxes[syn] = extraSyntaxes[syn] || syntaxMap[syn];
    }
  } else {
    Object.assign(syntaxes, syntaxMap);
  }

  if(addHbs) {
    syntaxes.hbs = extraSyntaxes.hbs;
  }

  for (const syn of (subtractions || '').split(',')) {
    if (syn) {
      delete syntaxes[syn];
    }
  }

  const str = [];
  const validArray = (valid || '').split(',').filter((entry) => !!entry);

  // e.g. Liquid has no tab content but was first in the tab list
  // If a user comes without a preference, don’t show liquid by default
  let defaultOnNoPreference = ' or syntax == "" or syntax == undefined';

  for (const syn in syntaxes) {
    const isPreferenceSelectable =
			validArray.length === 0 || validArray.includes(syn);

    str.push(
      `<a href="#${id}-${syn}" role="tab" data-tabs-persist="templatelang:${syn}"{% if syntax == "${syn}"${
        isPreferenceSelectable ? defaultOnNoPreference : ''
      } %} aria-selected="true"{% endif %}>${syntaxes[syn]}</a>`
    );

    // only the first one should default
    if (isPreferenceSelectable) {
      defaultOnNoPreference = '';
    }
  }

  const liquidTemplate = `
{% assign syntax = false %}
<div role="tablist" aria-label="Template Language Chooser"${label ? ' class="has-label"' : ''}>
	${label ? `${label}: ` : ''}${str.join('\n')}
</div>`;

  return await this.renderTemplate(liquidTemplate, 'liquid');
}

export { render };

src/_includes/webc-attribute-guide.njk (397 B)

{% callout "info", "md-block", "Comparing WebC Attribute Data Types" -%}
1. [Attributes](#attributes-and-webcroot): HTML attribute strings.
1. [Properties](#props-(properties)): server-only private HTML attribute strings (not rendered to output).
1. [Dynamic Attributes and Properties](#dynamic-attributes-and-properties): evaluate as JavaScript (any data type, not just strings).
{% endcallout %}

src/about.md (5.6 KiB)


eleventyNavigation: key: About order: 4 layout: simple.njk


About Nathan Rice

Nathan Rice
Founder & AI Architect

Two Decades of AI Innovation

The Journey: My fascination with machine learning began during the Netflix Prize in 2007—a pivotal moment that sparked a lifelong passion for extracting insights from data. Since then, I've dedicated myself to understanding how intelligent systems can amplify human capabilities and create new possibilities.

The Experience: Over the years, I've built a reputation for designing and building powerful data-driven applications that help entrepreneurs and growing companies unlock their potential. My sweet spot? Helping startups figure out how to leverage their data to build amazing apps, and increasingly, how to harness AI to enable entirely new types of programs.

Deep Technical Expertise: Nearly two decades of machine learning experience, from the early days of collaborative filtering to today's large language models and agentic systems.
Startup Sensibility: I understand the unique pressures of growing companies—the need to move fast, validate quickly, and build for scale without over-engineering.
Practical AI Implementation: Not just theoretical knowledge, but real-world experience building systems that work, scale, and deliver measurable value.
Creative Problem Solving: My artistic background brings a different perspective to technical challenges, often leading to innovative solutions others might miss.

My Philosophy: The best AI systems don't replace human intelligence—they amplify it. Whether you're a founder with a vision, a startup ready to scale, or an established company looking to stay ahead, I'm here to help you discover what becomes possible when you combine your domain expertise with intelligent systems.

src/articles.njk (1.4 KiB)

---
eleventyNavigation:
  key: Articles
  order: 3
layout: simple.njk
title: Articles
description: Insights, tutorials, and thoughts on software development
---

<h1>Articles</h1>
<p>Stay up to date with the latest insights, tutorials, and thoughts on software development from the Sibylline Software team.</p>

{% if collections.articles.length > 0 %}
<div class="articles-list">
  {% for article in collections.articles %}
    {% include "components/article-card.njk" %}
  {% endfor %}
</div>

<style>
.articles-list {
  margin-top: var(--space-lg);
  display: grid;
  gap: var(--space-2xl);
}

@media (max-width: 768px) {
  .article-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-sm);
  }
  
  .article-preview {
    padding: var(--space-xl);
  }
  
  .article-preview h2 {
    font-size: var(--text-xl);
  }
}
</style>

{% else %}
<div class="no-articles">
  <p>No articles have been published yet. Check back soon for insights, tutorials, and thoughts on software development!</p>
</div>
{% endif %}

<div class="articles-footer">
  <p><em>Want to stay updated on our latest articles? Follow us or bookmark this page.</em></p>
</div>

<style>
.articles-footer {
  margin-top: var(--space-4xl);
  padding-top: var(--space-2xl);
  border-top: 1px solid var(--color-border-light);
  text-align: center;
}

.articles-footer p {
  color: var(--color-text-muted);
  font-size: var(--text-base);
  margin: 0;
}
</style>

src/articles/2025-08-17-process-intelligence-automation-bottleneck.md (19.3 KiB)


title: "Your Model Is Smart Enough. Your Process Isn't." description: "Why process intelligence—not single-turn intelligence—is the real automation bottleneck, and how to build AI workflows that actually work." date: 2025-08-17 published: true tags: ["articles", "ai", "automation", "process-intelligence", "agents"] layout: article.njk image: "/img/optimized/article-process-intelligence.webp"


TL;DR
  • 87% of AI automation fails due to poor process intelligence, not insufficient model smarts
  • Build orchestrated agent workflows with specialized subagents instead of single-model solutions
  • Use fast models for coordination, expensive models only for genuinely hard problems
  • Implement knowledge management subagents and persistent state tracking for reliable workflows

It's 2 AM. Your "AI-powered" automation just failed for the third time this week, leaving you staring at a cryptic error message while your deployment window closes. The model is brilliant—it can write elegant algorithms, debug complex edge cases, and even craft poetry that would make Shakespeare weep. But ask it to orchestrate a multi-step workflow that survives contact with reality? It falls apart faster than your weekend plans.

Here's the uncomfortable truth nobody wants to talk about: 87% of AI automation projects fail not because models are too dumb, but because they can't think procedurally across extended workflows. They excel at single-turn brilliance but crumble when they need to plan, track state, recover from failures, and systematically gather the right information at the right time.

The problem isn't your model. The problem is that you're using a Ferrari to build a house—all that horsepower means nothing without the right architecture.

The real constraint isn't model intelligence—it's process intelligence. And there's a crucial difference that changes everything about how you should build AI workflows.

Case in point: I recently burned an hour on a Plotly dendrogram "fold-back" visualization bug. Multiple retries with different models failed, despite each being capable of sophisticated plotting logic. The breakthrough came only when I systematically injected the library's source code into context—something that required procedural thinking about when to escalate, what information to gather, and how to route specialized questions to knowledge sources.

This explains why Claude often outperforms "smarter" models like GPT-5 in agentic workflows. It's not about raw reasoning power—Claude is better trained on systematic tool use and tends to break down complex problems more methodically. Process intelligence beats single-turn intelligence for real-world automation.

This is why recent discussions about models being "smart enough" miss the point. Yes, models have sufficient raw intelligence for many tasks—but that intelligence isn't organized for the kind of systematic, multi-step thinking that real automation requires. The constraint isn't just information access or better tooling—it's the intelligence to orchestrate that access systematically across complex workflows that inevitably break in unexpected ways.

This reframing reveals why Philipp Schmid's insight about context engineering is so crucial—but not for the reasons he initially outlined.

If process intelligence is the real constraint, then we need models that can actively manage context as part of their procedural thinking. My Plotly bug wasn't solved by better prompt engineering—it was solved when I systematically identified what knowledge was missing and injected the right source code. That's context engineering as a process skill, not just a human packaging skill.

Schmid argues that context engineering is becoming more important than prompt engineering because modern models (GPT-5, Gemini 2.5) are less sensitive to how information is formatted. He's right, but this points to something bigger: if models care less about how context is packaged, we can train them to care more about when and what context to retrieve.

This is where agents as tools becomes critical. Instead of a single agent struggling with context management, we need specialized knowledge management agents that can field questions, retrieve relevant information, and return clean, focused answers to working agents. The context engineering discipline doesn't disappear—it moves from human preprocessing to agent-to-agent delegation.

So both posts are onto something essential: we do need better tooling (first post) and systematic context management (second post). But the synthesis is training models to use context management tools as part of their process intelligence—which brings us to subagents and shared scratch pads.

The Four Pillars That Actually Matter Right Now

This distinction explains why Claude with Claude Code punches above its weight class—it's built for process intelligence, not just clever responses. But regardless of which model you're using, here are the four fundamental pillars that actually move the needle on agentic automation today, ranked by impact:

1. Speed Above All Else

Latency kills agentic workflows. Every step in a multi-step process compounds the delay, turning a 2-second model call into a 30-second chain. The math is brutal: a 10-step workflow with 3-second average latency takes 30 seconds; bump that to 5 seconds per step and you're at 50 seconds for the same outcome.

What works: Reserve expensive models like GPT-5 or Claude Opus for the hard reasoning steps. Use fast models (Gemini 2.5 Flash, Claude Haiku) for knowledge retrieval, planning, and coordination. Anthropic's own agent research shows they spend more time optimizing tool response times than prompts—speed is the multiplier that makes everything else possible.

2. Tool Reliability Over Tool Cleverness

Agents fail on flaky tools with ambiguous outputs. A deterministic CLI tool that returns structured JSON beats a "smarter" tool that sometimes works.

What works: Standardize on tools with predictable interfaces. Prefer absolute paths over relative ones. Make error messages parsable by LLMs (structured, not free-form). When Anthropic built their coding agents, they spent more engineering effort on tool reliability than on model improvements—the lesson is clear.

3. Planning That Survives Contact With Reality

Current models are brittle at long-horizon planning and recovery. SWE-bench-Live shows agents still struggle when plans need updating based on real feedback.

What works: Build chain-level metrics (time-to-green, recovery rate, plan adherence). Train on adversarial tasks where the environment changes. More importantly, design for replanning—don't just make better initial plans, make systems that can pivot when assumptions break.

4. State Tracking Via Tools, Not Memory

The biggest process intelligence gap: keeping track of what was tried, why it failed, and what to try next. Models forget; tools remember.

What works: Maintain durable state outside the model's context. Use scratch pads, structured logs, and persistent memory that tools can query. Don't rely on the model to "remember" what happened 20 steps ago—give it tools to look up its own history. This is where shared scratch pads and knowledge management subagents become essential.

The Battle-Tested Architecture That Actually Works

The solution isn't better models—it's better orchestration. Here's the agent architecture that Fortune 500s are quietly using to build autonomous systems that work 24/7, addressing every constraint we just covered:

Control Agent: The Delegating Conductor

Your main agent (Claude Code, or whatever you're using) shouldn't be doing the heavy lifting. It should plan, delegate, and monitor. Think conductor, not virtuoso. The control agent maintains the overall goal, breaks it into subtasks, routes questions to specialists, and integrates results.

Claude Code's Subagents feature is perfect for this—each subagent spawns with fresh context and specialized toolsets. No context pollution, no jack-of-all-trades prompting. The controller stays focused on workflow orchestration while specialists handle domain expertise.

Claude Code Router lets you route different subagents to different providers based on their strengths. GPT-5 excels at short-horizon planning and actual implementation—create specialized "refactor planner," "optimization planner," or "feature implementer" agents that leverage GPT-5's systematic approach to breaking down and executing well-defined tasks.

Knowledge Subagent: Your Context Engineering Specialist

Stop dragging raw documentation into your coding agent's context. Instead, delegate knowledge questions to a specialized question-answering subagent that can search, synthesize, and return clean answers.

Stack that works: Wire up Elastic MCP (BM25 + vectors with RRF for hybrid search) over your org docs and code. Add LEANN for fast local vector search and Serena MCP for symbol-level code understanding. Gemini is exceptional as a knowledge agent since it has by far the best long-context recall and reasoning as context approaches 200k tokens and beyond. Gemini Flash with search grounding definitely has the highest performance/price ratio of any search-enabled LLM.

This subagent doesn't just retrieve—it answers questions. "How does authentication work in our codebase?" gets a focused answer, not a dump of auth-related files. Your coding agent gets exactly what it needs, nothing more.

Hard-Task Subagent: When You Need the Big Guns

For deep debugging or complex design decisions, escalate to premium frontier models that can pull library source code (via Serena) and synthesize with your org knowledge. This is where you delegate to GPT-5 Pro or crank up the thinking budget on Opus/Gemini for special cases requiring extended analysis.

The key: it's specialized for genuinely hard problems, not routine work. Let fast models handle the planning and coordination; bring in the heavy artillery only when you need to burn serious compute on complex architectural decisions or deep debugging sessions.

Support Cast: The Specialized Workforce

UX/Design Agent: This is where the magic happens for UI work. Tell this agent to create a complete design system, implement Storybook stories for all UI components, then get into an evaluate→iterate loop using Playwright MCP. The agent loads each component, evaluates the design, identifies improvements, implements changes, then re-evaluates with Playwright. This evaluate→iterate cycle is how the magic works—the agent can churn for over an hour autonomously, producing remarkably polished results while you focus on other work.

PM/PO Agent: Eliminates the drudgery of issue management while giving you clean tracking and pristine GitHub history. Wire it to Slack, Discord, or other chat MCPs for seamless communication workflows. This agent accelerates your coding workforce by keeping their pipeline filled with well-defined tasks. Plan out entire sprints through a chat interface—it can even hook into meetings or voice chat for hands-free project management. The clean issue tracking and automated ticket generation means your coding agents always have clear next steps.

Debugger Agent: Enables extremely verbose logging output while keeping your main agent context pristine. You can have detailed debug traces, stack dumps, and comprehensive logging without polluting the primary workflow. The debugger agent manages scoped logging and reads logs via knowledge tools, systematically tracking down issues using structured investigation patterns—all while your main agents stay focused and uncluttered.

Deployment: Local Container Orchestration

Here's the workflow that actually works: Run Vibe Kanban in a container on your local system. Claude Code on the host manages the board via MCP, chatting with you to understand requirements and coordinating the agent workforce.

The agents use Graphite to maintain a single stack for all AI-developed code. Instead of messy feature branches, you get one clean, browsable stack of commits that you can merge atomically or review step-by-step. Each commit in the stack tells a clear story of what was built and why.

The PM/PO agent can automatically convert PR comments and repo issues into Vibe Kanban tickets via MCP—creating a feedback loop where human reviewers can flag issues that bots automatically pick up and address.

Since Vibe Kanban runs containerized, you can expose it safely to the outside world and manage your agents from anywhere. Wire the PM agent to Discord, Slack, Signal—whatever chat tools you prefer—so you can orchestrate development from your phone while the agents work in their sandbox.

Container isolation + single-stack development + chat-based orchestration = production-ready automation you can actually trust.

Your Copy-Paste Implementation Guide to Process Intelligence

Build autonomous AI systems in under 2 hours—here's your step-by-step playbook:

Step 1: Core Infrastructure Setup

Install Claude Code

# Official installation (recommended)
npm install -g @anthropic-ai/claude-code
# Or via shell script: curl -fsSL https://claude.ai/install.sh | bash

Install Claude Code Studio

# Clone to temp directory (since you likely already have ~/.claude)
git clone https://github.com/arnaldo-delisio/claude-code-studio.git /tmp/claude-code-studio
# Copy files to your existing .claude directory
cp -r /tmp/claude-code-studio/* ~/.claude/
cd ~/.claude
# Customize your environment
cp CONTEXT_TEMPLATE.md CONTEXT.md
# Edit CONTEXT.md with your personal details

Create/Configure Subagents Configure Subagents for specialized roles: - Knowledge agent (long-context model for Q&A) - Hard-task agent (expensive model for complex debugging) - Debugger agent (log analysis and scoped debugging)

Set up Vibe Kanban in container

git clone https://github.com/BloopAI/vibe-kanban
cd vibe-kanban
# Update Dockerfile to include: Claude Code, Claude Code Studio 
# (git clone https://github.com/arnaldo-delisio/claude-code-studio.git ~/.claude), 
# graphite-cli, and any additional tools mentioned in this article
docker-compose up -d
# Expose port 3000 for remote access

Install Graphite for stack management

npm install -g @withgraphite/graphite-cli
gt auth
gt repo init

Step 2: Knowledge & Context Tools

Add to Claude Code MCP Configuration: - Elastic MCP: @elastic/mcp-server-elasticsearch for org search (BM25 + vectors with RRF) - Serena MCP: oraios/serena for symbol-level code understanding and LSP integration
- Context7 MCP: upstash/context7-mcp for live, up-to-date library documentation - LEANN: yichuan-w/LEANN for fast local vector search

Claude Code will automatically install and configure these when you add them to your MCP settings. No manual npm installs required.

Step 3: Communication & Automation

Add to Claude Code MCP Configuration: - GitHub MCP: github/github-mcp-server for PR/issue management with repository access - Slack MCP: @modelcontextprotocol/server-slack for requirements gathering and chat-to-ticket conversion - Playwright MCP: microsoft/playwright-mcp for UI testing and browser automation

Note: The PM agent can run on the Claude Code host or as a separate cloud agent—your choice depending on your workflow preferences.

Step 4: Orchestration Flow

  1. Claude Code (host) manages Vibe Kanban board via MCP
  2. PM agent takes requirements from Slack/Discord → creates Kanban tickets
  3. Specialized agents pick up tickets, use knowledge tools, commit to Graphite stack
  4. You review the stack atomically after a long vibing session, merge in one shot
  5. Feedback loop: PR comments → new tickets → automatic bot fixes

Step 5: Safety & Monitoring

  • Run all agents in containers (blast radius containment)
  • Use Graphite stacks for clean commit history
  • Enable auto-execution only in sandboxed environments
  • Monitor agent performance via Kanban completion rates

Total setup time: ~1-2 hours for manual configuration, or just spin up Claude Code, feed it this article, and go get a bagel.

The Competitive Advantage Hiding in Plain Sight

While your competitors are still debugging single-model solutions and fighting with prompt engineering, you could be shipping autonomous agent systems that work 24/7. This isn't just theory—it's the exact architecture I use to build production AI systems for Fortune 500s and unicorn startups.

Here's what's happening right now: Most teams are burning 6-figure budgets and entire quarters fighting with generic AI implementations that crumble in production. Meanwhile, a small group of companies with process-intelligent architectures are quietly shipping autonomous systems that handle complex workflows without human intervention—and they're not talking about it.

What you get when we work together: - Custom agent orchestration architecture designed for your specific workflows and business logic - Specialized subagent implementations that handle your domain expertise requirements - Production-ready deployment frameworks using the exact stack outlined above (containerized, monitored, scalable) - Knowledge management systems that eliminate the context engineering bottleneck for your team - Autonomous workflow optimization that improves performance over time without manual intervention

The competitive advantage: While others struggle with prompt engineering and single-model limitations, your systems operate with autonomous process intelligence. They don't just work—they get smarter and more efficient over time.

Stop Fighting AI Limitations. Start Building Process Intelligence.

Book a free architecture consultation to discover how process-intelligent AI can transform your automation challenges. In 45 minutes, we'll audit your current AI bottlenecks and design a custom agent orchestration system for your specific needs.

Schedule Your Process Intelligence Consultation

Used by Fortune 500s to build autonomous competitive advantages. No generic solutions—only custom process intelligence architectures that work for your business.

The uncomfortable truth: You're probably overengineering your prompts when you should be architecting your processes. You're debugging single-agent failures when you should be building multi-agent resilience. You're waiting for the next model release when you should be building the orchestration layer that makes any model 10x more effective.

The future of automation isn't in the next frontier model release. It's in the stack you can build this weekend: containerized agents, knowledge subagents, clean tool interfaces, and systematic delegation.

Stop waiting for GPT-6. Start building process intelligence.

Go get that bagel. Let the agents handle the rest.

src/articles/2025-08-21-llms-as-programming-language-runtimes.md (26.1 KiB)


title: "Beyond Monoliths: How Hydra Builds Production Agent DAGs That Scale" description: "Learn the architectural patterns behind Hydra's Living Blueprint system that enable 10x throughput and virtually unlimited development sessions." date: 2025-08-21 published: true tags: ["articles", "ai", "dag", "architecture", "production", "agents", "hydra"] layout: article.njk image: "/img/optimized/article-llm-programming-runtime.webp"


TL;DR
  • Agent systems are DAGs, not monoliths—specialized nodes scale better than single agents
  • Get 10x throughput and 60% cost savings through parallel execution and smart resource use
  • Ship production-ready systems in 6 weeks using proven implementation patterns
  • Built-in failure isolation, circuit breakers, and graceful degradation prevent cascading failures

You're building the next generation of AI-powered software, but there's a fundamental architectural breakthrough hiding in plain sight. Every day, companies deploy LLM-based systems that treat agents like isolated services instead of what they actually are: specialized nodes in a Directed Acyclic Graph executing distributed computation.

This isn't just a conceptual framework—it's the orchestration architecture that Hydra implements through its Living Blueprint system. While your competitors struggle with monolithic agents that fail under load and lack clear failure modes, companies using Hydra are building massively scalable AI architectures that coordinate 50+ specialized agents through graph-based workflows defined in genesis.xml.

The DAG Architecture Revolution That Changes Everything

Here's the mental shift that's transforming how leading tech companies architect AI systems: Agent systems are Directed Acyclic Graphs, not monolithic services.

Once you see this connection, everything changes:

  • Agents = Specialized Compute Nodes: Each agent handles one specific domain with minimal scope and clear inputs/outputs
  • Dependencies = Graph Edges: Explicit data flow between agents with typed interfaces and failure propagation
  • Orchestration = DAG Execution Engine: Runtime that handles parallel execution, dependency resolution, and resource management
  • Tools/APIs = External Dependencies: External services accessed through specific agents with circuit breakers and retries

The scalability implications are transformative:

  • Horizontal Scaling: Individual agents scale independently based on workload and resource requirements
  • Parallel Execution: DAG structure enables automatic parallelization of independent computation paths
  • Failure Isolation: Node failures don't cascade—the DAG gracefully handles partial completion and retry logic
  • Resource Optimization: Computational resources allocated dynamically based on graph topology and execution patterns

The difference between fragile and scalable AI systems isn't better prompts—it's DAG architecture that implements scalability and reliability through graph-based coordination.

The Scaling Breakthrough That Transformed an Enterprise

Here's the architectural challenge that demonstrates why DAG-based agent systems are becoming mandatory: coordinating complex AI workflows that require hundreds of specialized agents.

A major financial services company faced this scalability wall with their AI-powered investment research platform. Their monolithic agent architecture could handle simple queries, but complex research tasks—like analyzing market conditions across multiple sectors, regulatory environments, and timeframes—would timeout, fail inconsistently, or produce incomplete results.

The monolithic limitation: Their single "research agent" tried to handle document analysis, web research, financial calculations, regulatory compliance checks, and report generation. Under load, it became a bottleneck that couldn't scale with demand.

The DAG transformation: They restructured as a specialized agent DAG:

flowchart TD
    A[User Goal<br/>`hydra new "feature"`] --> B[Cofounder & Plan-Generator<br/>`genesis.xml` Creation]

    B --> C[TypeScript Developer<br/>Specialist Agent]
    B --> D[Database Wizard<br/>Specialist Agent] 
    B --> E[Test Writer Fixer<br/>Specialist Agent]

    subgraph parallel ["šŸ”„ Parallel Worker Execution Layer<br/>(`hydra run`)"]
        C
        D
        E
    end

    C --> F[Parallel Worker<br/>Result Consolidation]
    D --> F
    E --> F

    F --> G[Project Shipper<br/>`hydra recap`]
    G --> H[Final Recap Document<br/>Project Learnings]

    %% Styling
    classDef inputOutput fill:#3b82f6,stroke:#2563eb,stroke-width:2px,color:#fff
    classDef router fill:#059669,stroke:#047857,stroke-width:2px,color:#fff
    classDef parallel fill:#dc2626,stroke:#b91c1c,stroke-width:2px,color:#fff
    classDef synthesis fill:#7c3aed,stroke:#6d28d9,stroke-width:2px,color:#fff
    classDef compliance fill:#ea580c,stroke:#dc2626,stroke-width:2px,color:#fff
    classDef report fill:#0891b2,stroke:#0e7490,stroke-width:2px,color:#fff

    class A inputOutput
    class B router
    class C,D,E parallel
    class F synthesis
    class G compliance
    class H report

    %% Performance annotations
    parallel -.-> J["šŸ’” 10x Throughput<br/>šŸ’° 60% Cost Savings"]

    style parallel fill:#2a2a2a,stroke:#6366f1,stroke-width:2px,stroke-dasharray: 5 5,color:#f5f5f5
    style J fill:#1a1a1a,stroke:#059669,stroke-width:1px,color:#10b981

This isn't a theoretical model; it's the core execution flow of the Hydra agent system, orchestrated by its Living Blueprint.

The result: Research tasks that previously failed now complete reliably in parallel. The system handles 10x more concurrent requests while using 40% fewer computational resources through intelligent agent specialization and parallel execution.

The architectural breakthrough: The DAG structure allows each agent to scale independently. Document analysis can spin up more instances during heavy document processing, while compliance review remains lightweight and consistent.

This isn't a theoretical optimization—it's the predictable outcome of architectures that implement proper dependency management and parallel execution. Every complex AI system without DAG orchestration hits scaling walls that can't be solved by better prompts.

Production Playbook for Scalable Agent DAGs

The solution comes from applying decades of distributed systems design to LLM agent architecture. Just like we learned to build microservices with clear boundaries and message passing, we need to structure agent systems as DAGs with explicit dependencies and data flow.

Here's the four-layer DAG architecture that production systems use:

A. Agent Specialization: The Multi-Model DAG Pattern

The Pattern: Deploy specialized agents with different LLMs optimized for their specific tasks. Hydra provides 50+ specialized agents out of the box, documented in AGENTS.md. Fast, cheap models (Claude Haiku, GPT-3.5) handle routing and data transformation, while powerful models (Claude Opus, GPT-4) tackle complex reasoning and generation.

This isn't something you have to build from scratch—Hydra provides this agent specialization as a core feature.

Traditional (Monolithic) Architecture:

User Input → Single High-Powered LLM → All Processing → Output
Result: Expensive, slow, and doesn't scale with complexity

Specialized DAG Architecture:

User Input → Router Agent (Haiku) → Task Classification
            ↓
            Analysis Agent (GPT-4) ← Data retrieval
            ↓
            Synthesis Agent (Claude) ← Reasoning
            ↓  
            Output Agent (Haiku) ← Formatting
Result: Cost-optimized, parallel execution, specialized expertise

Implementation Example: {% raw %}

# Router Agent (fast, lightweight routing decisions)
router_config = {
    "model": "claude-3-haiku",
    "tools": [],
    "max_tokens": 200
}

task_classification = await router_agent.classify(user_input)

# Analysis Agent (powerful reasoning for complex tasks)
analysis_config = {
    "model": "gpt-4",
    "tools": ["web_search", "data_analysis"],
    "max_tokens": 2000
}

analysis_result = await analysis_agent.process(task_classification)

{% endraw %}

B. Typed Data Flow: Structured Interfaces Between Agents

The Principle: Define explicit data contracts between agents using structured schemas. This enables compile-time validation, automatic parallelization, and clear dependency management across the DAG.

Fragile Pattern: {% raw %}

# Agents pass unstructured text, leading to parsing failures
response = await agent_a.complete("Analyze this document")
# Response: "Document contains financial data and risk factors..."
result = await agent_b.complete(f"Process this: {response}")

{% endraw %}

Structured DAG Pattern (Hydra Implementation):

In Hydra, this structured data contract is enforced by the genesis.xml schema (rules/genesis.xsd). Instead of passing unstructured text, agents interact with a strongly-typed XML document:

<executionPlan>
  <tasks>
    <task id="database-design" status="pending">
      <description>Design and implement PostgreSQL schema...</description>
      <assignedAgent>database-wizard</assignedAgent>
      <dependencies>create-project-structure</dependencies>
    </task>
    <task id="api-implementation" status="pending">
      <description>Build REST API endpoints for user management.</description>
      <assignedAgent>typescript-node-developer</assignedAgent>
      <dependencies>database-design</dependencies>
    </task>
  </tasks>
</executionPlan>

C. Parallel Execution: Concurrent Processing Across DAG Branches

The Optimization: Identify independent computation paths in your DAG and execute them concurrently. This dramatically reduces total execution time and improves resource utilization.

The Pattern: Hydra's parallel-worker agent reads the <parallelSets> in genesis.xml to dispatch agents concurrently, automatically parallelizing agent execution where no data dependencies exist.

Implementation Pattern:

async def execute_parallel_analysis(document: Document) -> AnalysisResult:
    """Execute independent analysis tasks concurrently"""

    # These agents can run in parallel - no dependencies between them
    parallel_tasks = [
        sentiment_agent.analyze(document.content),
        entity_agent.extract(document.content),
        topic_agent.classify(document.content),
        language_agent.detect(document.content)
    ]

    # Wait for all parallel tasks to complete
    sentiment, entities, topics, language = await asyncio.gather(*parallel_tasks)

    # Synthesis agent waits for all inputs
    synthesis_result = await synthesis_agent.combine(
        sentiment=sentiment,
        entities=entities,
        topics=topics,
        language=language
    )

    return synthesis_result

# Execution time: max(individual_agent_time) instead of sum(all_agents)

D. Failure Isolation: Resilient DAG Execution

The Principle: Design DAG nodes to fail independently without cascading failures. Hydra's genesis.xml tracks task status (<failed>), allowing the parallel-worker to manage retries, escalate to the super-hard-problem-developer, or report failures without crashing the entire workflow.

Fragile Architecture:

User Request → Agent A → Agent B → Agent C → Response
Risk: Any failure breaks the entire pipeline

Resilient DAG Architecture:

User Request → Router Agent
              ↓
              Agent A (retries, timeout, fallback)
              ↓  
              Agent B (circuit breaker, graceful degradation)
              ↓
              Agent C (alternative paths, partial results)

Implementation Example:

class ResilientAgent:
    def __init__(self, max_retries=3, timeout=30, fallback_agent=None):
        self.max_retries = max_retries
        self.timeout = timeout
        self.fallback_agent = fallback_agent
        self.circuit_breaker = CircuitBreaker(failure_threshold=5)

    async def execute_with_resilience(self, input_data: Any) -> Result:
        if self.circuit_breaker.is_open():
            return await self.fallback_agent.execute(input_data)

        for attempt in range(self.max_retries):
            try:
                result = await asyncio.wait_for(
                    self.process(input_data), 
                    timeout=self.timeout
                )
                self.circuit_breaker.record_success()
                return result
            except Exception as e:
                self.circuit_breaker.record_failure()
                if attempt == self.max_retries - 1:
                    return await self.handle_failure(input_data, e)

        return PartialResult(status="degraded", data=input_data)

Implementation Roadmap: The Hydra Way

Ready to transform your monolithic AI system into a production-grade scalable DAG? Here's the practical 6-week implementation roadmap using Hydra's architecture:

Week 1: Map and Decompose (The Hydra Foundation)

  • Start with hydra new: Let the cofounder agent map your requirements and analyze current agent responsibilities
  • Generate initial DAG: Use hydra plan to create your first genesis.xml with natural specialization boundaries
  • Define workflow dependencies: Hydra automatically traces data flow and identifies parallel execution opportunities

Weeks 2-3: Build Specialized Agents (Hydra Orchestration)

  • Deploy Hydra's agent ecosystem: Use hydra run to let the parallel-worker execute the DAG, coordinating Hydra's 50+ built-in specialist agents
  • Leverage structured contracts: Hydra's genesis.xml schema enforces typed data flow between agents automatically
  • Enable parallel execution: The parallel-worker implements concurrent processing based on <parallelSets> definitions
  • Monitor orchestration: Hydra's built-in DAG execution engine handles dependency resolution and scheduling

Weeks 3-4: Optimize Performance (Hydra Intelligence)

  • Automatic model optimization: Hydra routes tasks to optimal models based on agent specialization and complexity
  • Built-in caching: Hydra's architecture includes intelligent caching of intermediate genesis.xml states
  • Resource management: Per-agent scaling, timeouts, and quotas managed through Hydra's agent coordination
  • Performance monitoring: Track execution through Hydra's built-in metrics and hydra recap analysis

Weeks 4-5: Add Resilience (Hydra Reliability)

  • Leverage Hydra's error handling: Built-in circuit breakers, retries, and graceful degradation for each specialized agent
  • Use the test-writer-fixer: Hydra's testing agent builds resilient workflows automatically
  • Failure escalation: Automatic escalation to super-hard-problem-developer for complex issues
  • Chaos testing: Use Hydra's agent isolation to validate DAG resilience under failure conditions

Week 6: Production Optimization (Hydra Scale)

  • Analyze with hydra recap: Review the completed genesis.xml and document learnings for optimization
  • Fine-tune agent selection: Optimize model selection and cost efficiency based on Hydra's performance analytics
  • Monitor production health: Track DAG performance through Hydra's integrated observability
  • Document operational procedures: Generate runbooks from genesis.xml execution patterns and hydra recap insights

Tools and Technologies for Production Agent DAGs

Ready to implement these patterns in your production systems? Here are the specific tools and libraries that make DAG-based agent orchestration practical:

DAG Orchestration Platforms

Production-Ready DAG Engines: - Apache Airflow: Battle-tested workflow orchestration with DAG scheduling, retries, and monitoring - Prefect: Modern workflow orchestration with dynamic DAGs and real-time execution - Temporal: Distributed workflow engine with guaranteed execution and state management

Agent-Specific Orchestration: - LangGraph: Native DAG support for LLM agent workflows with state persistence - AutoGen Studio: Visual DAG builder for multi-agent conversations and coordination - CrewAI: Hierarchical agent teams with built-in DAG execution patterns

Schema and Interface Definition

Structured Data Contracts: - Pydantic: Runtime schema validation for agent inputs/outputs with automatic serialization - JSON Schema: Language-agnostic interface definitions for cross-agent compatibility - TypeScript/Python Type Hints: Compile-time validation for agent interfaces

Custom DAG Implementation Patterns: {% raw %}

# High-performance agent coordination for production DAGs
import asyncio
import json
from dataclasses import dataclass
from typing import Dict, List, Any, Callable
from concurrent.futures import ThreadPoolExecutor

@dataclass
class DAGNode:
    agent_id: str
    dependencies: List[str]
    executor: Callable
    max_retries: int = 3
    timeout: float = 30.0

class ProductionDAGRunner:
    def __init__(self):
        self.nodes: Dict[str, DAGNode] = {}
        self.results: Dict[str, Any] = {}
        self.executor = ThreadPoolExecutor(max_workers=10)

    async def execute_dag(self, start_data: Any) -> Dict[str, Any]:
        """Execute DAG with dependency resolution and parallel processing"""
        completed = set()
        running = set()

        while len(completed) < len(self.nodes):
            # Find nodes ready to execute (dependencies satisfied)
            ready_nodes = [
                node_id for node_id, node in self.nodes.items()
                if node_id not in completed and node_id not in running
                and all(dep in completed for dep in node.dependencies)
            ]

            # Execute ready nodes in parallel
            if ready_nodes:
                tasks = [
                    self.execute_node(node_id, start_data)
                    for node_id in ready_nodes
                ]
                running.update(ready_nodes)

                # Wait for completion and update results
                for task in asyncio.as_completed(tasks):
                    node_id, result = await task
                    self.results[node_id] = result
                    completed.add(node_id)
                    running.discard(node_id)

        return self.results

{% endraw %}

Monitoring and Observability

DAG Performance Telemetry: - OpenTelemetry: Distributed tracing for agent execution flows and dependency mapping - Prometheus + Grafana: Metrics dashboards for DAG performance, cost tracking, and resource utilization - DataDog APM: Application performance monitoring for complex agent workflows

DAG-Specific Monitoring: - DAG Execution Dashboards: Real-time visualization of workflow progress and bottlenecks
- Agent Performance Analytics: Individual node metrics including latency, cost, and success rates - Resource Utilization Tracking: Monitor compute, memory, and API quota usage across agents

The Measurable Scalability and Operational Benefits

Companies implementing DAG-based agent architectures see significant improvements across performance, reliability, and operational metrics:

Performance and Scalability Improvements

  • 10x throughput increases: Parallel execution of independent DAG branches eliminates sequential bottlenecks
  • 40-60% cost reduction: Optimal model selection per task (Haiku for routing, GPT-4 for complex reasoning)
  • Sub-second response times: Cached intermediate results and optimized execution paths
  • Horizontal scalability: Individual agents scale independently based on demand patterns

Operational Benefits

  • Improved reliability: DAG-based workflows with bounded retries and circuit breakers reduce failure cascades
  • Better observability: Distributed tracing provides end-to-end visibility into agent execution and bottlenecks
  • Simplified debugging: Agent isolation makes root cause analysis straightforward and actionable
  • Resource optimization: Dynamic allocation based on DAG topology and real-time performance metrics

Development Efficiency

  • Faster feature development: Reusable agent components accelerate new capability delivery
  • Simplified maintenance: Modular architecture isolates changes to specific workflow nodes
  • Team productivity: Parallel development on independent agents without coordination overhead
  • Future-proof foundation: Architecture adapts to new models and capabilities through interface contracts

Security and Governance Benefits

  • Reduced attack surface: Agent specialization limits the scope of any potential compromise
  • Enhanced auditability: Structured outputs and comprehensive logging enable security monitoring
  • Compliance readiness: Built-in governance patterns that scale with regulatory requirements

The real competitive advantage is architectural scalability. While others hit scaling walls with monolithic agents, DAG architectures provide a foundation that grows seamlessly with complexity and load.

The Scaling Imperative That's Coming Fast

Right now, there's a brief window where DAG-based agent architecture gives you a massive competitive advantage. The companies implementing these patterns are building AI systems that operate like production software—scalable, reliable, and cost-efficient.

But this window is closing rapidly. As AI workloads grow exponentially and complexity demands increase, architectural limitations become obvious:

  • Model costs increasing 10x yearly as companies attempt to solve complex problems with single, powerful models
  • Scaling walls hit at 100+ concurrent users where monolithic agents become bottlenecks that can't be optimized
  • Time-to-market pressure demanding rapid feature development that monolithic architectures can't support
  • Enterprise complexity requirements needing workflows that coordinate dozens of specialized capabilities

The question is: will you be among the early adopters who built scalable AI architectures proactively, or will you be scrambling to rewrite systems under performance pressure while your competitors already have production-grade DAG systems serving millions of requests?

Stop Theorizing. Start Building with Hydra.

You've seen the architectural patterns that separate toy projects from production-grade AI systems. Hydra is the open-source toolkit that implements this scalable, DAG-based architecture for you.

What you get with Hydra: - Install in minutes with the hydra-installer - Generate your first Living Blueprint (genesis.xml) with a single hydra new command
- Deploy 50+ specialized agents ready to execute complex workflows in parallel - Built-in orchestration that handles dependency resolution, failure isolation, and performance optimization - Production-grade resilience with automatic retries, circuit breakers, and graceful degradation

The companies winning at enterprise AI aren't just using better models—they're building scale-first architectures with systems like Hydra that understand the fundamental coordination principles distinguishing production systems from prototype demos.

Stop Building Monolithic AI. Start Building with Hydra.

You've seen the architectural patterns. Now implement them with the toolkit designed specifically for scalable AI agent orchestration. Install Hydra and build your first DAG-based agent system in under an hour.

Install Hydra Now → `hydra-installer`

Ready to go deeper? Explore the Living Blueprint Guide to see the full power of Hydra's DAG-based project management.

Looking Forward: The Evolution of Scalable AI Architectures

This is just the beginning. As AI workloads become more complex and performance demands increase, we're seeing the emergence of adaptive DAG architectures that automatically optimize for changing requirements.

The next generation of scalable AI systems will feature:

Intelligent Auto-Optimization

  • Dynamic agent routing: DAG structures that automatically reroute based on real-time performance and cost metrics
  • Adaptive resource allocation: Agent scaling that responds to workload patterns and SLA requirements without manual intervention
  • Performance-driven model selection: Automatic switching between models based on task complexity and latency requirements

Self-Healing DAG Architectures

  • Predictive failure prevention: Machine learning-driven detection of agent performance degradation before failures occur
  • Automatic circuit breaker tuning: Self-adjusting failure thresholds based on historical performance patterns
  • Dynamic fallback path generation: Real-time creation of alternative workflows when primary paths are compromised

Cost and Performance Optimization

  • Intelligent caching strategies: Context-aware caching that balances memory usage with computational savings
  • Multi-model orchestration: Seamless coordination across different LLM providers for optimal cost and capability mix
  • Workload prediction: Proactive scaling based on usage patterns and anticipated demand spikes

The paradigm shift: From static workflow configurations to adaptive DAG systems that continuously optimize for performance, cost, and reliability.

Companies building DAG-based architectures today are positioning themselves for this intelligent, self-optimizing future. Companies stuck on monolithic agents will face increasing performance walls and operational complexity.

The future belongs to organizations that understand AI as distributed computation systems, not single-purpose chatbots. Which architecture are you building?


Ready to architect production-grade AI systems that scale intelligently? Install Hydra now and build your first DAG-based agent system with the Living Blueprint architecture that's transforming how companies approach AI orchestration.

src/articles/bar.md (6.6 KiB)


layout: article.njk title: "The $1 Trillion Wall: Why AI Progress Just Hit Its Biggest Obstacle Yet" description: "We're approaching the Human Asymptote—the invisible ceiling where AI hits our own intelligence limits. While this sounds scary, it's actually the best news for open-source developers and innovative companies. Here's why the next phase of AI will favor collaboration over competition."


The Moment That Changes Everything

Here's what no one in Silicon Valley wants to admit: AI progress just hit an invisible wall.

It's not a technical wall. It's not a compute wall. It's not even a data wall.

It's the Human Asymptote—the moment when AI hits the ceiling of human intelligence and can't bootstrap any further.

Think about it: Every breakthrough in AI has come from learning patterns created by humans. GPT-4 got smarter by studying human writing. AlphaGo got better by analyzing human Go games. Even our "superhuman" AI systems are really just supercharged versions of human knowledge.

But here's the trillion-dollar question: What happens when there's no more human intelligence left to learn from?

šŸŽÆ Key Insight: We're about to find out. And surprisingly, this could be the best thing that's ever happened to the AI industry.

The Intelligence Trap That No One Saw Coming

Why AI Can't Bootstrap Beyond Human Limits

Here's the fundamental problem that breaks most AI predictions:

AI models are intelligence transformers, not intelligence creators. They take human patterns and apply them to new domains. But they can't generate truly novel intelligence patterns on their own.

The brutal reality: - 🧠 Training data quality is capped by human intelligence - šŸ‘„ Data evaluation is limited by human judgment
- šŸ”„ Pattern recognition can only work with patterns humans created

Translation: We can't accurately identify superhuman training data because we're not superhuman ourselves.

The Ironic Solution That Changes Everything

Here's where it gets interesting: To push AI beyond human intelligence, we need global optimization algorithms to evolve better datasets.

Sound familiar? That's exactly how humans got intelligent in the first place—through genetic algorithms over millions of years.

The irony is delicious: Humans (products of genetic algorithms) must now implement genetic algorithms in machines to surpass their own cognitive limits.

šŸ”¬ Technical Reality: This isn't science fiction. It's the only mathematically viable path to superhuman AI—and it requires massive collaboration.

The Evidence Is Already Here: AI Progress Has Plateaued

The GPT-4 Ceiling That Broke Silicon Valley's Dreams

Pay attention to what's NOT happening in AI:

Since GPT-4 launched, we haven't seen breakthrough improvements in raw problem-solving power. The gains have all been in efficiency—doing the same things with smaller models.

Look at the data: - āœ… Claude Haiku matches GPT-4 performance at a fraction of the size - āœ… Llama3 competes with billion-dollar models as open source - āœ… Phi3 delivers enterprise-grade results on mobile devices

What this tells us: We've maxed out the efficiency of encoding human intelligence. The easy gains are over.

The Shift That Changes Everything

Here's the pattern that reveals the Human Asymptote:

Large models today win through breadth, not depth. Their advantage isn't superior problem-solving—it's handling multiple domains simultaneously.

Translation: We've hit the ceiling of what human-derived training data can teach AI. The next phase requires fundamentally different approaches.

šŸ’” Strategic Implication: Companies optimizing for efficiency (not raw model size) are positioning for the post-asymptote world. That's where the real opportunities lie.

Why This Is Actually the Best News for Innovators

The Self-Driving Cars Moment That Reshapes AI

I'm calling it now: This is self-driving cars all over again.

What happened with autonomous vehicles? The core technology worked. Companies raised billions. Then they hit the long tail of edge cases and progress slowed to a crawl.

What's happening with superhuman AI? The core breakthrough models work. Companies are raising billions. Now they're hitting the Human Asymptote—and progress is about to slow dramatically.

The Collaboration Revolution That Changes Everything

But here's why this is actually amazing news:

The Human Asymptote makes AI a civilization-level problem. No single company—not OpenAI, not Google, not Meta—can solve it alone.

What this means for you: - šŸŒ Global collaboration becomes essential (not optional) - šŸ”“ Open source gets a real shot at competing with tech giants - šŸ¤ Corporate monopolies become inefficient for the hardest problems - šŸ’” Innovation opportunities shift to smaller, nimbler teams

Your Strategic Advantage in the Post-Asymptote World

The companies that will win are those that:

  1. šŸŽÆ Focus on efficiency over raw capability
  2. Optimize existing intelligence encoding
  3. Build specialized models for specific domains
  4. Master the art of doing more with less

  5. šŸ¤ Embrace collaborative approaches

  6. Contribute to global optimization efforts
  7. Build interoperable AI systems
  8. Share learnings across the community

  9. šŸ”¬ Invest in optimization algorithms

  10. Data generation and selection systems
  11. Evolutionary approaches to model improvement
  12. Collaborative training infrastructures

šŸš€ Ready to Position for the Post-Asymptote Era? Download our Human Asymptote Strategy Guide with specific tactics for thriving when AI progress slows.

The Bottom Line: Winter Isn't Coming, Collaboration Is

This isn't AI winter. It's AI evolution.

The tooling exists: We have the optimization algorithms, compute power, and storage capacity to solve the Human Asymptote challenge.

The requirement changed: Instead of proprietary breakthroughs, we need global cooperation.

The opportunity expanded: Instead of a few tech giants controlling AI, we're entering an era where smart collaboration beats big budgets.

Your next move: Stop trying to beat Google at their own game. Start building for the collaborative future they can't dominate.

šŸŽÆ Want to Stay Ahead? Join our network of forward-thinking AI builders preparing for the collaboration revolution.

src/articles/foo.md (13.5 KiB)


layout: article.njk title: "Why the $200 Billion AGI Race is Heading in the Wrong Direction (And What Smart Companies Are Doing Instead)" description: "While tech giants burn billions chasing AGI fantasies, forward-thinking companies are taking a radically different approach that's already delivering superhuman results. Discover the task-centric strategy that's quietly revolutionizing AI—and why it could make AGI obsolete before it arrives."


The $200 Billion Question Everyone's Getting Wrong

Here's a shocking truth: While OpenAI, Google, and Meta burn through billions pursuing Artificial General Intelligence, they're solving the wrong problem entirely.

Think about it: What if I told you that the companies quietly building specialized AI tools are already achieving superhuman performance in specific domains—while the AGI race leaders struggle to move beyond GPT-4's capabilities?

The uncomfortable reality? The AGI obsession has become tech's most expensive red herring.

If you're building AI products, investing in AI companies, or planning your organization's AI strategy, this matters more than you think. While everyone else chases the AGI mirage, the real winners are taking a completely different approach.

šŸ’” Key Insight: The companies that will dominate the next decade aren't building one super-intelligent model. They're building specialized AI systems that excel at specific tasks—and they're already delivering results that put generalist models to shame.

Why the AGI Dream is Actually a Nightmare for Innovation

The Definition Problem That's Costing Billions

Here's the first red flag: No one can even agree on what AGI means.

Ask 10 AI researchers to define AGI and you'll get 10 different answers: - The Minimalist: "Smarter than average humans at most things" (spoiler: we're arguably already there) - The Maximalist: "Smarter than the smartest humans at everything" (spoiler: this might be impossible) - The Pragmatist: "Good enough to replace human workers" (spoiler: this varies wildly by domain)

The brutal truth? Companies are burning cash pursuing a goal they can't even define. It's like trying to build a rocket to "somewhere better than here."

The Intelligence Ceiling No One Talks About

But here's what really breaks the AGI dream: Model intelligence is fundamentally limited by the intelligence of their creators.

Think about it: - āœ… Human trainers curate the data - āœ… Human engineers design the architectures
- āœ… Human researchers define the objectives

The paradox: How can we create something smarter than ourselves when we're the ones teaching it?

šŸ”¬ Real Example: OpenAI "lobotomized" ChatGPT when they optimized it for logic—its creative writing skills plummeted. This isn't a bug, it's a feature of the "No Free Lunch Theorem" in action.

The Data Crisis That Will Sink AGI Dreams

Here's the uncomfortable math: As AI approaches human-level intelligence, we hit a wall. Creating superhuman datasets becomes a trial-and-error nightmare because humans can't accurately evaluate superhuman intelligence beforehand.

What this means for businesses: - šŸ“ˆ Costs explode as you need massive global optimization algorithms - ā±ļø Progress slows from years to decades (think geological time scales) - šŸ’ø ROI plummets as the low-hanging fruit disappears

Why "Superhuman" AI is Often Just Expensive Brute Force

Take AlphaGo—the poster child for "superhuman" AI: - āœ… The Reality: It played millions more games than any human ever could - āœ… The Secret: Unlimited compute budget for random experimentation
- āœ… The Result: Specialized excellence in one narrow domain

The takeaway? AlphaGo isn't superhuman intelligence—it's industrial-scale pattern matching with a trillion-dollar energy bill.

šŸ’° Business Reality Check: If your AI strategy depends on burning compute like AlphaGo, your unit economics will never work.

The "No Free Lunch" Problem That Kills Generalist Models

Here's why trying to build one model that does everything is doomed:

The tradeoff is unavoidable: - Make it better at logic → creativity suffers (hello, lobotomized ChatGPT) - Optimize for roleplay → reasoning abilities tank (see: current Llama3 fine-tunes) - Add more parameters → diminishing returns kick in hard

It's not a bug, it's physics. You literally cannot optimize for everything simultaneously without massive parameter explosion—and that strategy hits a scaling wall fast.

The Harsh Reality: AGI Might Never Arrive (And That's Actually Good News)

The Growth Curve That Crushes AGI Dreams

Here's the pattern every technologist needs to understand: Progress isn't exponential—it's sigmoidal (S-shaped).

Translation? You can get to 80% of peak performance quickly, but that last 20% takes exponentially longer.

Real-world proof: Self-driving cars have been "almost ready" for 15 years. The core tech works, but the edge cases are brutal.

exponential vs sigmoidal

This is your AGI future: Spending decades and trillions chasing that final 1% improvement while specialized AI systems dominate real-world applications.

šŸ“Š Action Item: If you're planning AI investments, bet on the 80% solutions that ship this year, not the 99% solutions that might ship next decade.

The "No Free Lunch" Law That Breaks Universal AI

Here's the mathematical reality that destroys AGI dreams: The "No Free Lunch Theorem" proves there's no single model that can outperform all others across all tasks.

Think of it like this: Just as no restaurant dish pleases every customer, no AI model can excel at every problem.

no free lunch theorem

The optimization trap is inescapable: - Improve logic → creativity dies (ChatGPT's lobotomy) - Enhance roleplay → reasoning suffers (Llama3 fine-tunes) - Scale parameters → logarithmic returns with exponential costs

The bottom line: Trying to make one model good at everything becomes an expensive game of whack-a-mole. You fix one capability, break another, rinse and repeat.

šŸŽÆ Strategic Insight: Smart companies aren't trying to build the Swiss Army knife of AI. They're building the best screwdriver, the best hammer, and the best saw—then combining them.

The Task-Centric Revolution That's Actually Working

The Strategy That's Quietly Dominating AI

Stop chasing AGI. Start building specialized excellence.

Here's the approach that's delivering real business value right now:

Instead of asking "How can we build super-intelligent AI?" successful companies ask:

"For this specific task, how close can we get to optimal human performance?"

Why this works: - āœ… Crystal clear success metrics (no definition debates) - āœ… Constrained problem space (tractable engineering) - āœ… Measurable ROI (you know exactly what you're buying) - āœ… Faster iteration (smaller scope = quicker results)

The Model Catalog Approach That Changes Everything

Here's the game-changing insight: If you have specialized tools for every important task that achieve near-human optimal performance, creating "AGI" becomes simple:

Build an agent smart enough to: 1. šŸŽÆ Identify the task at hand 2. šŸ”§ Select the right specialized model from your catalog 3. šŸ”„ Orchestrate multiple models when needed

Plot twist: Current language models are already pretty close to this level of task identification and tool selection.

Why This Approach is Actually Superior to AGI

The architectural advantage is undeniable:

Specialized AI Systems: - āœ… Modular → Easy to upgrade individual components - āœ… Transparent → You can see exactly how each task is handled - āœ… Resilient → One model failure doesn't break everything - āœ… Accessible → Humans can use the tools directly - āœ… Agile → New tasks don't require retraining the entire system

Monolithic AGI: - āŒ Opaque → Black box decision making - āŒ Brittle → Single point of failure - āŒ Expensive → Every improvement requires massive retraining - āŒ Inaccessible → Tools locked inside the giant model

The engineering truth: Any engineer will tell you that a system with thousands of specialized functions beats one mega-function every time.

The Measurement Advantage That Ends the AGI Debate

Here's the killer argument: Even if we achieved monolithic AGI, we'd still need comprehensive benchmarks covering every human task to prove it works.

So why not just build to those benchmarks directly?

The task-centric approach gives us: - šŸ“Š Clear progress tracking for every domain - šŸŽÆ Specific ROI measurement per capability - šŸ”¬ Scientific rigor in evaluation - šŸ“ˆ Predictable timelines for achieving human parity

šŸ’” Free Strategy Session: Want to identify which AI tasks could transform your business first? Book a 30-minute consultation to discuss your specific use case.

Your 3-Step Action Plan for Winning the Real AI Race

Forget AGI. Here's how smart organizations are building the future of AI today:

Step 1: Build the Measurement Infrastructure

šŸŽÆ Priority #1: Create exhaustive benchmarks for every task that matters to your business.

Why this matters: You can't optimize what you can't measure. Companies winning with AI have crystal-clear metrics for success.

Immediate actions: - šŸ“‹ Inventory all the tasks your organization cares about - šŸ”¬ Design benchmarks that go beyond toy problems - šŸŽ® Gamify evaluation to make progress tracking engaging - šŸŒ Include real-world complexity (not just logical puzzles)

šŸ“Š Success Metric: If you can't point to specific, measurable benchmarks for your AI initiatives, you're already behind.

Step 2: Dominate One Domain at a Time

šŸŽÆ Priority #2: Stop building generalist models. Pick one problem domain and achieve human-level excellence.

The winning strategy: - šŸ” Identify where AI currently underperforms in your domain - šŸ”Ø Hammer that problem with specialized models - šŸ“ˆ Measure relentlessly against human baselines - šŸš€ Ship the specialized tool to real users

For foundation model teams: - ⚔ Focus on efficiency over raw capability - šŸ”§ Make models easily tuneable for specific tasks - 🌐 Exploit transfer learning between languages (bonus: better coding/math)

Step 3: Build the Orchestration Layer

šŸŽÆ Priority #3: Create AI agents that are master tool selectors, not master thinkers.

The technical roadmap: - 🧠 Async agents with "thought loops" for complex reasoning - šŸ”€ Sub-problem identification and decomposition - šŸ“š Tool catalog selection using embedding similarity - šŸ”„ Online learning to improve tool selection over time

The business advantage: This approach has zero uncertainty, no model regressions, and doesn't require supergenius engineers.

šŸŽÆ Ready to Start? Download our AI Implementation Playbook with specific templates for benchmarking, domain selection, and tool orchestration.

Introducing the Sibylline Circle: Finally, a Real Way to Measure AI Progress

The Visualization That Ends AGI Speculation

Tired of vague claims about AI progress? Here's a simple way to track what actually matters:

Sibylline Circle

Each bar represents a benchmark for a specific task. As AI systems achieve human-level performance in each domain, the bar fills up. When all bars are filled, we have true "AGI"—but we'll know exactly when and how we got there.

Why This Changes Everything

For businesses: - šŸŽÆ Instant clarity on where AI can help your organization - āš ļø Risk identification for areas where AI is still unreliable - šŸ“Š Investment guidance for which AI capabilities to prioritize

For investors: - šŸ“ˆ Measurable progress instead of marketing hype - šŸ”® Predictable timelines using data-driven extrapolation - šŸ’° Strategic positioning in specific AI domains

For the industry: - šŸ”¬ Scientific rigor replaces philosophical debates - šŸš€ Faster progress through clear objectives - šŸ¤ Better collaboration around shared benchmarks

The End of the AGI Debate

Here's the beautiful part: The Sibylline Circle makes the "when will we have AGI?" question obsolete.

Instead of speculation, we get: - šŸ“Š Real-time tracking of task coverage - šŸ“ˆ Trend analysis for prediction - šŸŽÆ Specific dates for human parity in each domain

šŸš€ Stay Ahead of the Curve: Want early access to Sibylline Circle metrics for your industry? Join our insider list for exclusive updates and analysis.


The bottom line: While tech giants burn billions chasing an undefined dream, you now have a clear roadmap for winning the real AI race. The question isn't whether you'll embrace task-centric AI—it's how quickly you can start.

What's your next move?

src/components/README.md (4.6 KiB)

Component Library

A collection of reusable, accessible, and themeable HTML components for the Sibylline Software website.

Design Principles

  • Semantic HTML: All components use proper HTML5 semantic elements
  • Accessibility First: WCAG 2.1 AA compliant with proper ARIA attributes
  • CSS Custom Properties: Themeable using CSS custom properties for colors, spacing, and typography
  • Progressive Enhancement: Components work without JavaScript and are enhanced with JS when available
  • Responsive Design: Mobile-first approach with responsive breakpoints

Component Architecture

Each component follows these conventions:

CSS Custom Properties

Components use a consistent naming pattern for CSS custom properties:

--component-property-modifier: value;

Data Attributes

Configuration is handled through data attributes:

<div data-component="component-name" data-variant="variant-name">

CSS Classes

Classes follow BEM (Block Element Modifier) methodology:

.component {}
.component__element {}
.component--modifier {}

Available Components

Layout Components

  • Card Container (card-container.html) - Generic card layout with header, body, and footer
  • Modal Template (modal-template.html) - Accessible modal dialog with backdrop

UI Components

  • Icon Component (icon-component.html) - Scalable icon system with accessibility support
  • Loading Spinner (loading-spinner.html) - Animated loading indicator
  • CTA Section (cta-section.html) - Call-to-action section with button and content

Theme Variables

Global CSS custom properties that all components use:

:root {
  /* Colors */
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-secondary: #64748b;
  --color-accent: #f59e0b;
  --color-background: #ffffff;
  --color-surface: #f8fafc;
  --color-text: #1e293b;
  --color-text-muted: #64748b;
  --color-border: #e2e8f0;
  --color-error: #dc2626;
  --color-success: #16a34a;
  --color-warning: #d97706;

  /* Spacing */
  --spacing-xs: 0.25rem;
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 2rem;
  --spacing-2xl: 3rem;

  /* Typography */
  --font-family-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-family-heading: 'Inter', var(--font-family-primary);
  --font-family-mono: 'SF Mono', Monaco, 'Cascadia Code', monospace;

  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 1.875rem;

  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Border Radius */
  --border-radius-sm: 0.25rem;
  --border-radius-md: 0.375rem;
  --border-radius-lg: 0.5rem;
  --border-radius-xl: 0.75rem;

  /* Shadows */
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);

  /* Transitions */
  --transition-fast: 0.15s ease;
  --transition-base: 0.2s ease;
  --transition-slow: 0.3s ease;

  /* Z-index */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;
}

Usage Guidelines

Including Components

Components can be included in your HTML templates using server-side includes or by copying the component markup.

Customization

Override CSS custom properties to customize component appearance:

.my-custom-card {
  --card-background: var(--color-primary);
  --card-text-color: white;
  --card-border-radius: var(--border-radius-xl);
}

JavaScript Enhancement

Components that require JavaScript functionality should: 1. Work without JavaScript (progressive enhancement) 2. Use data attributes for configuration 3. Follow consistent event naming patterns 4. Be accessible via keyboard navigation

Browser Support

Components are tested and supported in: - Chrome 90+ - Firefox 88+ - Safari 14+ - Edge 90+

Accessibility

All components follow WCAG 2.1 AA guidelines and include: - Proper semantic markup - ARIA labels and descriptions - Keyboard navigation support - Focus management - Color contrast compliance - Screen reader compatibility

Contributing

When adding new components: 1. Follow the established naming conventions 2. Include proper accessibility attributes 3. Use CSS custom properties for theming 4. Add usage examples in component comments 5. Test with keyboard navigation and screen readers 6. Update this README with component documentation

src/components/card-container.html (14.9 KiB)

<!-- 
  Card Container Component
  
  A flexible, accessible card component with optional header, body, footer,
  and various styling options. Supports different layouts and content types.
  
  Usage Examples:
  
  Basic card:
  <article class="card">
    <div class="card__body">
      <h3 class="card__title">Card Title</h3>
      <p class="card__description">Card description content goes here.</p>
    </div>
  </article>
  
  Full card with all sections:
  <article class="card">
    <header class="card__header">
      <img src="image.jpg" alt="Card image" class="card__image">
    </header>
    <div class="card__body">
      <h3 class="card__title">Card Title</h3>
      <p class="card__description">Detailed card description.</p>
    </div>
    <footer class="card__footer">
      <button class="btn btn--primary">Action</button>
    </footer>
  </article>
  
  Interactive card:
  <article class="card card--interactive" tabindex="0" role="button" aria-label="View details">
    <div class="card__body">
      <h3 class="card__title">Clickable Card</h3>
      <p class="card__description">Click anywhere on this card.</p>
    </div>
  </article>
  
  Horizontal card:
  <article class="card card--horizontal">
    <img src="image.jpg" alt="Card image" class="card__image">
    <div class="card__content">
      <div class="card__body">
        <h3 class="card__title">Horizontal Card</h3>
        <p class="card__description">Side-by-side layout.</p>
      </div>
    </div>
  </article>
-->

<article 
  class="card" 
  role="article"
  tabindex="0"
>
  <!-- Optional header section -->
  <header class="card__header">
    <img 
      src="https://via.placeholder.com/400x200/e2e8f0/64748b?text=Card+Image" 
      alt="Card image description" 
      class="card__image"
      loading="lazy"
    >
  </header>
  
  <!-- Main content area -->
  <div class="card__content">
    <div class="card__body">
      <h3 class="card__title">
        Card Title
      </h3>
      
      <p class="card__description">
        This is a description of the card content. It provides context and details about what this card represents.
      </p>
      
      <!-- Optional metadata -->
      <div class="card__meta">
        <span class="card__meta-item">
          <span class="sr-only">Published on</span>
          <time datetime="2024-01-15">January 15, 2024</time>
        </span>
        <span class="card__meta-item">
          <span class="sr-only">Category:</span>
          Technology
        </span>
      </div>
    </div>
    
    <!-- Optional footer section -->
    <footer class="card__footer">
      <button class="btn btn--primary" type="button">
        Read More
      </button>
      <button class="btn btn--secondary" type="button">
        Share
      </button>
    </footer>
  </div>
</article>

<style>
  .card {
    /* CSS Custom Properties for theming */
    --card-background: var(--color-background, #ffffff);
    --card-border-color: var(--color-border, #e2e8f0);
    --card-border-radius: var(--border-radius-lg, 0.5rem);
    --card-border-width: 1px;
    --card-padding: var(--spacing-lg, 1.5rem);
    --card-gap: var(--spacing-md, 1rem);
    --card-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
    --card-shadow-hover: var(--shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));
    --card-transition: var(--transition-base, 0.2s ease);
    
    /* Typography */
    --card-title-color: var(--color-text, #1e293b);
    --card-title-size: var(--font-size-lg, 1.125rem);
    --card-title-weight: var(--font-weight-semibold, 600);
    --card-description-color: var(--color-text-muted, #64748b);
    --card-description-size: var(--font-size-base, 1rem);
    --card-meta-color: var(--color-text-muted, #64748b);
    --card-meta-size: var(--font-size-sm, 0.875rem);
    
    display: flex;
    flex-direction: column;
    background: var(--card-background);
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-border-radius);
    box-shadow: var(--card-shadow);
    transition: all var(--card-transition);
    overflow: hidden;
    position: relative;
    font-family: var(--font-family-primary, system-ui, -apple-system, sans-serif);
  }
  
  .card__header {
    position: relative;
    overflow: hidden;
  }
  
  .card__image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    transition: transform var(--card-transition);
  }
  
  .card__content {
    display: flex;
    flex-direction: column;
    flex: 1;
  }
  
  .card__body {
    padding: var(--card-padding);
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--card-gap);
  }
  
  .card__title {
    margin: 0;
    color: var(--card-title-color);
    font-size: var(--card-title-size);
    font-weight: var(--card-title-weight);
    line-height: 1.3;
  }
  
  .card__description {
    margin: 0;
    color: var(--card-description-color);
    font-size: var(--card-description-size);
    line-height: 1.5;
    flex: 1;
  }
  
  .card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm, 0.5rem);
    align-items: center;
    margin-top: auto;
  }
  
  .card__meta-item {
    color: var(--card-meta-color);
    font-size: var(--card-meta-size);
    font-weight: var(--font-weight-medium, 500);
  }
  
  .card__meta-item:not(:last-child)::after {
    content: '•';
    margin-left: var(--spacing-sm, 0.5rem);
    opacity: 0.5;
  }
  
  .card__footer {
    padding: var(--card-padding);
    padding-top: 0;
    display: flex;
    gap: var(--spacing-sm, 0.5rem);
    align-items: center;
    flex-wrap: wrap;
  }
  
  /* Size variants */
  .card--compact {
    --card-padding: var(--spacing-md, 1rem);
    --card-gap: var(--spacing-sm, 0.5rem);
    --card-title-size: var(--font-size-base, 1rem);
  }
  
  .card--spacious {
    --card-padding: var(--spacing-xl, 2rem);
    --card-gap: var(--spacing-lg, 1.5rem);
    --card-title-size: var(--font-size-xl, 1.25rem);
  }
  
  /* Style variants */
  .card--elevated {
    --card-shadow: var(--shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));
    --card-shadow-hover: var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
  }
  
  .card--flat {
    --card-shadow: none;
    --card-shadow-hover: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
  }
  
  .card--outlined {
    --card-shadow: none;
    --card-border-width: 2px;
  }
  
  /* Color variants */
  .card--primary {
    --card-border-color: var(--color-primary, #2563eb);
    --card-title-color: var(--color-primary, #2563eb);
  }
  
  .card--secondary {
    --card-background: var(--color-surface, #f8fafc);
  }
  
  .card--accent {
    --card-border-color: var(--color-accent, #f59e0b);
    --card-title-color: var(--color-accent, #f59e0b);
  }
  
  /* Layout variants */
  .card--horizontal {
    flex-direction: row;
    align-items: stretch;
  }
  
  .card--horizontal .card__header {
    flex-shrink: 0;
    width: 200px;
  }
  
  .card--horizontal .card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  .card--horizontal .card__content {
    flex: 1;
    min-width: 0; /* Prevent overflow */
  }
  
  /* Interactive states */
  .card--interactive {
    cursor: pointer;
    transition: all var(--card-transition);
  }
  
  .card--interactive:hover {
    box-shadow: var(--card-shadow-hover);
    transform: translateY(-2px);
  }
  
  .card--interactive:hover .card__image {
    transform: scale(1.02);
  }
  
  .card--interactive:active {
    transform: translateY(0);
  }
  
  .card--interactive:focus {
    outline: 2px solid var(--color-primary, #2563eb);
    outline-offset: 2px;
  }
  
  /* Loading state */
  .card--loading {
    opacity: 0.7;
    pointer-events: none;
  }
  
  .card--loading .card__image {
    background: linear-gradient(90deg, #f0f0f0 25%, transparent 37%, #f0f0f0 63%);
    background-size: 400% 100%;
    animation: card-skeleton 1.5s ease-in-out infinite;
  }
  
  /* Screen reader only text */
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  
  /* Button styles for cards with buttons */
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs, 0.25rem);
    padding: var(--spacing-sm, 0.5rem) var(--spacing-md, 1rem);
    border: 1px solid transparent;
    border-radius: var(--border-radius-md, 0.375rem);
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    text-decoration: none;
    cursor: pointer;
    transition: all var(--transition-fast, 0.15s ease);
    min-height: 2.25rem;
  }
  
  .btn--primary {
    background: var(--color-primary, #2563eb);
    color: white;
    border-color: var(--color-primary, #2563eb);
  }
  
  .btn--primary:hover {
    background: var(--color-primary-hover, #1d4ed8);
    border-color: var(--color-primary-hover, #1d4ed8);
  }
  
  .btn--secondary {
    background: transparent;
    color: var(--color-text, #1e293b);
    border-color: var(--color-border, #e2e8f0);
  }
  
  .btn--secondary:hover {
    background: var(--color-surface, #f8fafc);
  }
  
  /* Responsive design */
  @media (max-width: 640px) {
    .card--horizontal {
      flex-direction: column;
    }
    
    .card--horizontal .card__header {
      width: 100%;
    }
    
    .card__footer {
      flex-direction: column;
      align-items: stretch;
    }
    
    .btn {
      width: 100%;
    }
  }
  
  /* Animations */
  @keyframes card-skeleton {
    0% {
      background-position: -200px 0;
    }
    100% {
      background-position: calc(200px + 100%) 0;
    }
  }
  
  /* Reduced motion support */
  @media (prefers-reduced-motion: reduce) {
    .card,
    .card__image,
    .btn {
      transition: none;
    }
    
    .card--interactive:hover {
      transform: none;
    }
    
    .card--interactive:hover .card__image {
      transform: none;
    }
    
    .card--loading .card__image {
      animation: none;
    }
  }
  
  /* High contrast mode support */
  @media (prefers-contrast: high) {
    .card {
      --card-border-color: ButtonText;
      --card-border-width: 2px;
    }
  }
  
  /* Print styles */
  @media print {
    .card {
      --card-shadow: none;
      border: 1px solid #000;
      break-inside: avoid;
    }
    
    .card__footer {
      display: none;
    }
  }
</style>

<script>
  // Card Container Component JavaScript
  (function() {
    'use strict';
    
    class CardContainer {
      constructor(element) {
        this.element = element;
        this.isInteractive = element.classList.contains('card--interactive');
        
        this.init();
      }
      
      init() {
        if (this.isInteractive) {
          this.setupInteractivity();
        }
        
        this.setupAccessibility();
        this.setupImageLazyLoading();
      }
      
      setupInteractivity() {
        // Handle click events for interactive cards
        this.element.addEventListener('click', this.handleClick.bind(this));
        this.element.addEventListener('keydown', this.handleKeydown.bind(this));
        
        // Ensure proper tabindex
        if (!this.element.getAttribute('tabindex')) {
          this.element.setAttribute('tabindex', '0');
        }
      }
      
      setupAccessibility() {
        // Ensure proper ARIA attributes
        if (!this.element.getAttribute('role')) {
          this.element.setAttribute('role', 'article');
        }
        
        // Add accessible names for interactive cards
        if (this.isInteractive && !this.element.getAttribute('aria-label')) {
          const title = this.element.querySelector('.card__title');
          if (title) {
            this.element.setAttribute('aria-label', `View ${title.textContent}`);
          }
        }
      }
      
      setupImageLazyLoading() {
        const images = this.element.querySelectorAll('.card__image[loading="lazy"]');
        
        if ('IntersectionObserver' in window) {
          const imageObserver = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
              if (entry.isIntersecting) {
                const img = entry.target;
                img.classList.add('loaded');
                imageObserver.unobserve(img);
              }
            });
          });
          
          images.forEach(img => imageObserver.observe(img));
        }
      }
      
      handleClick(event) {
        // Don't trigger card click if user clicked on a button or link
        if (event.target.closest('button, a, input, select, textarea')) {
          return;
        }
        
        this.triggerAction();
      }
      
      handleKeydown(event) {
        if (event.key === 'Enter' || event.key === ' ') {
          event.preventDefault();
          this.triggerAction();
        }
      }
      
      triggerAction() {
        // Look for a primary action (first link or button)
        const primaryAction = this.element.querySelector('a, button');
        
        if (primaryAction) {
          if (primaryAction.href) {
            // Navigate to link
            window.location.href = primaryAction.href;
          } else {
            // Trigger button click
            primaryAction.click();
          }
        }
        
        // Emit custom event for additional handling
        this.element.dispatchEvent(new CustomEvent('card:action', {
          bubbles: true,
          detail: { card: this.element }
        }));
      }
      
      setLoading(isLoading) {
        if (isLoading) {
          this.element.classList.add('card--loading');
          this.element.setAttribute('aria-busy', 'true');
        } else {
          this.element.classList.remove('card--loading');
          this.element.setAttribute('aria-busy', 'false');
        }
      }
      
      setContent(content) {
        const body = this.element.querySelector('.card__body');
        if (body && content) {
          if (content.title) {
            const title = body.querySelector('.card__title');
            if (title) title.textContent = content.title;
          }
          
          if (content.description) {
            const description = body.querySelector('.card__description');
            if (description) description.textContent = content.description;
          }
          
          if (content.image) {
            const image = this.element.querySelector('.card__image');
            if (image) {
              image.src = content.image.src;
              image.alt = content.image.alt || '';
            }
          }
        }
      }
    }
    
    // Auto-initialize all cards
    function initCards() {
      const cards = document.querySelectorAll('.card');
      cards.forEach(card => {
        if (!card._cardContainer) {
          card._cardContainer = new CardContainer(card);
        }
      });
    }
    
    // Global API
    window.CardContainer = CardContainer;
    
    // Auto-initialize on DOM ready
    if (document.readyState === 'loading') {
      document.addEventListener('DOMContentLoaded', initCards);
    } else {
      initCards();
    }
  })();
</script>

src/components/cta-section.html (20.8 KiB)

<!-- 
  Call-to-Action (CTA) Section Component
  
  A flexible, accessible CTA section that can be used for lead generation,
  newsletter signups, product promotions, or any conversion-focused content.
  
  Usage Examples:
  
  Basic CTA:
  <section class="cta-section">
    <div class="cta-section__content">
      <h2 class="cta-section__title">Ready to get started?</h2>
      <p class="cta-section__description">Join thousands of users already using our platform.</p>
      <a href="/signup" class="cta-section__button">Get Started Today</a>
    </div>
  </section>
  
  CTA with form:
  <section class="cta-section cta-section--form">
    <div class="cta-section__content">
      <h2 class="cta-section__title">Stay Updated</h2>
      <p class="cta-section__description">Get the latest news and updates delivered to your inbox.</p>
      <form class="cta-section__form" action="/subscribe" method="post">
        <div class="cta-section__form-group">
          <label for="email" class="sr-only">Email address</label>
          <input type="email" id="email" name="email" placeholder="Enter your email" required>
          <button type="submit">Subscribe</button>
        </div>
      </form>
    </div>
  </section>
  
  CTA with background image:
  <section class="cta-section cta-section--hero" style="--cta-bg-image: url('background.jpg')">
    <div class="cta-section__content">
      <h2 class="cta-section__title">Transform Your Business</h2>
      <p class="cta-section__description">Discover how our solutions can help you achieve your goals.</p>
      <div class="cta-section__actions">
        <a href="/demo" class="cta-section__button cta-section__button--primary">Book Demo</a>
        <a href="/learn-more" class="cta-section__button cta-section__button--secondary">Learn More</a>
      </div>
    </div>
  </section>
-->

<section 
  class="cta-section" 
  role="region" 
  aria-labelledby="cta-title"
>
  <div class="cta-section__container">
    <div class="cta-section__content">
      <!-- Main headline -->
      <h2 id="cta-title" class="cta-section__title">
        Ready to Transform Your Business?
      </h2>
      
      <!-- Supporting description -->
      <p class="cta-section__description">
        Join thousands of companies already using our platform to streamline their operations and drive growth. Start your free trial today.
      </p>
      
      <!-- Call-to-action buttons -->
      <div class="cta-section__actions">
        <a 
          href="/get-started" 
          class="cta-section__button cta-section__button--primary"
          role="button"
        >
          Start Free Trial
        </a>
        
        <a 
          href="/demo" 
          class="cta-section__button cta-section__button--secondary"
          role="button"
        >
          Schedule Demo
        </a>
      </div>
      
      <!-- Optional trust indicators -->
      <div class="cta-section__trust">
        <p class="cta-section__trust-text">
          <span class="cta-section__trust-icon" aria-hidden="true">āœ“</span>
          No credit card required
        </p>
        <p class="cta-section__trust-text">
          <span class="cta-section__trust-icon" aria-hidden="true">āœ“</span>
          14-day free trial
        </p>
        <p class="cta-section__trust-text">
          <span class="cta-section__trust-icon" aria-hidden="true">āœ“</span>
          Cancel anytime
        </p>
      </div>
    </div>
    
    <!-- Optional visual element -->
    <div class="cta-section__visual" aria-hidden="true">
      <div class="cta-section__decoration"></div>
    </div>
  </div>
</section>

<style>
  .cta-section {
    /* CSS Custom Properties for theming */
    --cta-background: linear-gradient(135deg, var(--color-primary, #2563eb) 0%, var(--color-accent, #f59e0b) 100%);
    --cta-text-color: white;
    --cta-title-color: white;
    --cta-description-color: rgba(255, 255, 255, 0.9);
    --cta-padding-y: var(--spacing-2xl, 3rem);
    --cta-padding-x: var(--spacing-lg, 1.5rem);
    --cta-border-radius: var(--border-radius-xl, 0.75rem);
    --cta-gap: var(--spacing-lg, 1.5rem);
    
    /* Typography */
    --cta-title-size: var(--font-size-3xl, 1.875rem);
    --cta-title-weight: var(--font-weight-bold, 700);
    --cta-description-size: var(--font-size-lg, 1.125rem);
    --cta-trust-size: var(--font-size-sm, 0.875rem);
    
    background: var(--cta-background);
    color: var(--cta-text-color);
    padding: var(--cta-padding-y) var(--cta-padding-x);
    border-radius: var(--cta-border-radius);
    position: relative;
    overflow: hidden;
    font-family: var(--font-family-primary, system-ui, -apple-system, sans-serif);
  }
  
  .cta-section__container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cta-gap);
    align-items: center;
    position: relative;
    z-index: 1;
  }
  
  .cta-section__content {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: var(--cta-gap);
    align-items: center;
  }
  
  .cta-section__title {
    margin: 0;
    color: var(--cta-title-color);
    font-size: var(--cta-title-size);
    font-weight: var(--cta-title-weight);
    line-height: 1.2;
    max-width: 600px;
  }
  
  .cta-section__description {
    margin: 0;
    color: var(--cta-description-color);
    font-size: var(--cta-description-size);
    line-height: 1.5;
    max-width: 500px;
  }
  
  .cta-section__actions {
    display: flex;
    gap: var(--spacing-md, 1rem);
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
  }
  
  .cta-section__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs, 0.25rem);
    padding: var(--spacing-md, 1rem) var(--spacing-xl, 2rem);
    border: 2px solid transparent;
    border-radius: var(--border-radius-lg, 0.5rem);
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-semibold, 600);
    text-decoration: none;
    cursor: pointer;
    transition: all var(--transition-base, 0.2s ease);
    min-height: 3rem;
    white-space: nowrap;
  }
  
  .cta-section__button--primary {
    background: white;
    color: var(--color-primary, #2563eb);
    border-color: white;
  }
  
  .cta-section__button--primary:hover {
    background: var(--color-surface, #f8fafc);
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  }
  
  .cta-section__button--secondary {
    background: transparent;
    color: white;
    border-color: white;
  }
  
  .cta-section__button--secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
  }
  
  .cta-section__button:focus {
    outline: 2px solid white;
    outline-offset: 2px;
  }
  
  .cta-section__trust {
    display: flex;
    gap: var(--spacing-md, 1rem);
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin-top: var(--spacing-sm, 0.5rem);
  }
  
  .cta-section__trust-text {
    margin: 0;
    color: var(--cta-description-color);
    font-size: var(--cta-trust-size);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs, 0.25rem);
  }
  
  .cta-section__trust-icon {
    font-weight: bold;
    color: var(--color-success, #16a34a);
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    width: 1.25rem;
    height: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
  }
  
  .cta-section__visual {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    opacity: 0.1;
    pointer-events: none;
  }
  
  .cta-section__decoration {
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    animation: cta-decoration-rotate 20s linear infinite;
  }
  
  /* Style variants */
  .cta-section--compact {
    --cta-padding-y: var(--spacing-xl, 2rem);
    --cta-gap: var(--spacing-md, 1rem);
    --cta-title-size: var(--font-size-2xl, 1.5rem);
  }
  
  .cta-section--spacious {
    --cta-padding-y: 4rem;
    --cta-gap: var(--spacing-2xl, 3rem);
    --cta-title-size: 2.5rem;
  }
  
  .cta-section--centered {
    text-align: center;
  }
  
  .cta-section--left {
    text-align: left;
  }
  
  .cta-section--left .cta-section__content {
    align-items: flex-start;
  }
  
  .cta-section--left .cta-section__actions {
    justify-content: flex-start;
  }
  
  .cta-section--left .cta-section__trust {
    justify-content: flex-start;
  }
  
  /* Color variants */
  .cta-section--primary {
    --cta-background: var(--color-primary, #2563eb);
  }
  
  .cta-section--secondary {
    --cta-background: var(--color-secondary, #64748b);
  }
  
  .cta-section--accent {
    --cta-background: var(--color-accent, #f59e0b);
  }
  
  .cta-section--dark {
    --cta-background: var(--color-text, #1e293b);
  }
  
  .cta-section--light {
    --cta-background: var(--color-surface, #f8fafc);
    --cta-text-color: var(--color-text, #1e293b);
    --cta-title-color: var(--color-text, #1e293b);
    --cta-description-color: var(--color-text-muted, #64748b);
  }
  
  .cta-section--light .cta-section__button--primary {
    background: var(--color-primary, #2563eb);
    color: white;
    border-color: var(--color-primary, #2563eb);
  }
  
  .cta-section--light .cta-section__button--secondary {
    background: transparent;
    color: var(--color-text, #1e293b);
    border-color: var(--color-border, #e2e8f0);
  }
  
  .cta-section--light .cta-section__trust-icon {
    background: var(--color-success, #16a34a);
    color: white;
  }
  
  /* Form variant */
  .cta-section--form .cta-section__form {
    width: 100%;
    max-width: 500px;
  }
  
  .cta-section__form-group {
    display: flex;
    gap: var(--spacing-sm, 0.5rem);
    align-items: stretch;
  }
  
  .cta-section__form-group input {
    flex: 1;
    padding: var(--spacing-md, 1rem);
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--border-radius-lg, 0.5rem);
    background: rgba(255, 255, 255, 0.1);
    color: white;
    font-size: var(--font-size-base, 1rem);
  }
  
  .cta-section__form-group input::placeholder {
    color: rgba(255, 255, 255, 0.7);
  }
  
  .cta-section__form-group input:focus {
    outline: none;
    border-color: white;
    background: rgba(255, 255, 255, 0.2);
  }
  
  .cta-section__form-group button {
    padding: var(--spacing-md, 1rem) var(--spacing-lg, 1.5rem);
    border: 2px solid white;
    border-radius: var(--border-radius-lg, 0.5rem);
    background: white;
    color: var(--color-primary, #2563eb);
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-semibold, 600);
    cursor: pointer;
    transition: all var(--transition-base, 0.2s ease);
    white-space: nowrap;
  }
  
  .cta-section__form-group button:hover {
    background: var(--color-surface, #f8fafc);
    transform: translateY(-1px);
  }
  
  /* Background image variant */
  .cta-section--hero {
    background-image: var(--cta-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  
  .cta-section--hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 0;
  }
  
  /* Grid layout for larger screens */
  @media (min-width: 768px) {
    .cta-section__container {
      grid-template-columns: 2fr 1fr;
    }
    
    .cta-section--centered .cta-section__container {
      grid-template-columns: 1fr;
    }
    
    .cta-section__actions {
      flex-wrap: nowrap;
    }
    
    .cta-section__trust {
      flex-wrap: nowrap;
    }
    
    .cta-section__form-group {
      gap: var(--spacing-md, 1rem);
    }
  }
  
  /* Responsive design */
  @media (max-width: 640px) {
    .cta-section {
      --cta-padding-x: var(--spacing-md, 1rem);
      --cta-title-size: var(--font-size-2xl, 1.5rem);
    }
    
    .cta-section__actions {
      flex-direction: column;
      width: 100%;
    }
    
    .cta-section__button {
      width: 100%;
    }
    
    .cta-section__trust {
      flex-direction: column;
      gap: var(--spacing-sm, 0.5rem);
    }
    
    .cta-section__form-group {
      flex-direction: column;
    }
    
    .cta-section__form-group button {
      width: 100%;
    }
  }
  
  /* Animations */
  @keyframes cta-decoration-rotate {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }
  
  /* Reduced motion support */
  @media (prefers-reduced-motion: reduce) {
    .cta-section__button {
      transition: none;
    }
    
    .cta-section__button:hover {
      transform: none;
    }
    
    .cta-section__decoration {
      animation: none;
    }
  }
  
  /* High contrast mode support */
  @media (prefers-contrast: high) {
    .cta-section {
      --cta-background: ButtonFace;
      --cta-text-color: ButtonText;
      border: 2px solid ButtonText;
    }
    
    .cta-section__button {
      border-width: 2px;
    }
  }
  
  /* Print styles */
  @media print {
    .cta-section {
      background: white !important;
      color: black !important;
      border: 2px solid black;
    }
    
    .cta-section__visual,
    .cta-section__decoration {
      display: none;
    }
  }
</style>

<script>
  // CTA Section Component JavaScript
  (function() {
    'use strict';
    
    class CTASection {
      constructor(element) {
        this.element = element;
        this.form = element.querySelector('.cta-section__form');
        this.buttons = element.querySelectorAll('.cta-section__button');
        
        this.init();
      }
      
      init() {
        this.setupFormHandling();
        this.setupButtonAnalytics();
        this.setupAccessibility();
      }
      
      setupFormHandling() {
        if (this.form) {
          this.form.addEventListener('submit', this.handleFormSubmit.bind(this));
          
          // Enhance form validation
          const emailInput = this.form.querySelector('input[type="email"]');
          if (emailInput) {
            emailInput.addEventListener('blur', this.validateEmail.bind(this));
          }
        }
      }
      
      setupButtonAnalytics() {
        this.buttons.forEach((button, index) => {
          button.addEventListener('click', (event) => {
            // Track CTA clicks for analytics
            this.trackCTAClick(button, index);
          });
        });
      }
      
      setupAccessibility() {
        // Ensure proper ARIA attributes
        const title = this.element.querySelector('.cta-section__title');
        if (title && !this.element.getAttribute('aria-labelledby')) {
          if (!title.id) {
            title.id = `cta-title-${Date.now()}`;
          }
          this.element.setAttribute('aria-labelledby', title.id);
        }
      }
      
      handleFormSubmit(event) {
        event.preventDefault();
        
        const formData = new FormData(this.form);
        const email = formData.get('email');
        
        if (!this.validateEmail({ target: { value: email } })) {
          return;
        }
        
        this.setLoading(true);
        
        // Submit form data (replace with actual API call)
        this.submitForm(formData)
          .then(response => {
            this.showSuccess('Thank you for subscribing!');
            this.form.reset();
          })
          .catch(error => {
            this.showError('Something went wrong. Please try again.');
          })
          .finally(() => {
            this.setLoading(false);
          });
      }
      
      validateEmail(event) {
        const email = event.target.value;
        const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
        
        if (email && !emailRegex.test(email)) {
          this.showInputError(event.target, 'Please enter a valid email address');
          return false;
        } else {
          this.clearInputError(event.target);
          return true;
        }
      }
      
      showInputError(input, message) {
        // Remove existing error
        this.clearInputError(input);
        
        // Add error styling
        input.classList.add('error');
        input.setAttribute('aria-invalid', 'true');
        
        // Create error message
        const errorElement = document.createElement('div');
        errorElement.className = 'cta-section__error';
        errorElement.textContent = message;
        errorElement.id = `${input.id || 'input'}-error`;
        
        input.setAttribute('aria-describedby', errorElement.id);
        input.parentNode.appendChild(errorElement);
      }
      
      clearInputError(input) {
        input.classList.remove('error');
        input.removeAttribute('aria-invalid');
        input.removeAttribute('aria-describedby');
        
        const existingError = input.parentNode.querySelector('.cta-section__error');
        if (existingError) {
          existingError.remove();
        }
      }
      
      setLoading(isLoading) {
        const submitButton = this.form?.querySelector('button[type="submit"]');
        
        if (submitButton) {
          submitButton.disabled = isLoading;
          submitButton.textContent = isLoading ? 'Subscribing...' : 'Subscribe';
          submitButton.setAttribute('aria-busy', isLoading.toString());
        }
      }
      
      showSuccess(message) {
        this.showMessage(message, 'success');
      }
      
      showError(message) {
        this.showMessage(message, 'error');
      }
      
      showMessage(message, type) {
        // Remove existing messages
        const existingMessage = this.element.querySelector('.cta-section__message');
        if (existingMessage) {
          existingMessage.remove();
        }
        
        // Create new message
        const messageElement = document.createElement('div');
        messageElement.className = `cta-section__message cta-section__message--${type}`;
        messageElement.textContent = message;
        messageElement.setAttribute('role', type === 'error' ? 'alert' : 'status');
        messageElement.setAttribute('aria-live', 'polite');
        
        // Insert after form or actions
        const insertAfter = this.form || this.element.querySelector('.cta-section__actions');
        if (insertAfter) {
          insertAfter.parentNode.insertBefore(messageElement, insertAfter.nextSibling);
        }
        
        // Auto-remove success messages
        if (type === 'success') {
          setTimeout(() => {
            messageElement.remove();
          }, 5000);
        }
      }
      
      async submitForm(formData) {
        // Replace with actual API endpoint
        const response = await fetch('/api/subscribe', {
          method: 'POST',
          body: formData
        });
        
        if (!response.ok) {
          throw new Error('Network response was not ok');
        }
        
        return response.json();
      }
      
      trackCTAClick(button, index) {
        // Analytics tracking (replace with your analytics provider)
        if (typeof gtag !== 'undefined') {
          gtag('event', 'cta_click', {
            event_category: 'CTA',
            event_label: button.textContent,
            value: index
          });
        }
        
        // Custom event for other tracking systems
        this.element.dispatchEvent(new CustomEvent('cta:click', {
          bubbles: true,
          detail: {
            button: button,
            index: index,
            text: button.textContent
          }
        }));
      }
    }
    
    // Auto-initialize all CTA sections
    function initCTASections() {
      const ctaSections = document.querySelectorAll('.cta-section');
      ctaSections.forEach(section => {
        if (!section._ctaSection) {
          section._ctaSection = new CTASection(section);
        }
      });
    }
    
    // Global API
    window.CTASection = CTASection;
    
    // Auto-initialize on DOM ready
    if (document.readyState === 'loading') {
      document.addEventListener('DOMContentLoaded', initCTASections);
    } else {
      initCTASections();
    }
  })();
</script>

<!-- Additional CSS for form error states and messages -->
<style>
  .cta-section__error {
    color: var(--color-error, #dc2626);
    font-size: var(--font-size-sm, 0.875rem);
    margin-top: var(--spacing-xs, 0.25rem);
    display: block;
  }
  
  .cta-section__form-group input.error {
    border-color: var(--color-error, #dc2626);
    background-color: rgba(220, 38, 38, 0.1);
  }
  
  .cta-section__message {
    padding: var(--spacing-md, 1rem);
    border-radius: var(--border-radius-md, 0.375rem);
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    margin-top: var(--spacing-md, 1rem);
  }
  
  .cta-section__message--success {
    background: rgba(16, 163, 74, 0.1);
    color: var(--color-success, #16a34a);
    border: 1px solid rgba(16, 163, 74, 0.2);
  }
  
  .cta-section__message--error {
    background: rgba(220, 38, 38, 0.1);
    color: var(--color-error, #dc2626);
    border: 1px solid rgba(220, 38, 38, 0.2);
  }
</style>

src/components/discovery-option.html (857 B)

<!-- Discovery Option Component -->
<div class="discovery-option {{ optionClass }}">
  <div class="option-header">
    <div class="option-icon">
      {{ icon }}
    </div>
    <h4 class="option-title">{{ title }}</h4>
  </div>
  
  <div class="option-content">
    <p class="option-description">{{ description }}</p>
    
    {% if benefits %}
    <div class="option-benefits">
      <h5>Benefits:</h5>
      <ul class="benefit-list">
        {% for benefit in benefits %}
        <li class="benefit-item">{{ benefit }}</li>
        {% endfor %}
      </ul>
    </div>
    {% endif %}
    
    {% if timeline %}
    <div class="option-timeline">
      <span class="timeline-label">Timeline:</span>
      <span class="timeline-value">{{ timeline }}</span>
    </div>
    {% endif %}
  </div>
  
  <div class="option-footer">
    {{ action }}
  </div>
</div>

src/components/expandable-service-card.html (477 B)

<!-- Expandable Service Card Component -->
<!-- Complex service card with expandable details and visual elements -->
<div class="service-card" data-service="{{ service }}">
  <h3><i data-lucide="{{ icon }}"></i> {{ title }}</h3>
  
  <div class="service-summary">
    <p>{{ summary }}</p>
  </div>
  
  <div class="service-details">
    {{ details }}
  </div>
  
  <div class="click-hint">Click to expand</div>
  
  <div class="service-visual">
    {{ visual }}
  </div>
</div>

src/components/hero-section.html (590 B)

<!-- Hero Section Component -->
<section class="hero-section" id="{{id}}">
  <div class="neural-background">
    <canvas id="neural-canvas"></canvas>
  </div>
  
  <div class="hero-container">
    <div class="hero-content">
      <h1 class="hero-title">{{title}}</h1>
      <p class="hero-subtitle">{{subtitle}}</p>
      <div class="hero-description">
        {{description}}
      </div>
      
      <div class="hero-actions">
        {{primaryButton}}
        {{secondaryButton}}
      </div>
    </div>
    
    <div class="hero-visual">
      {{visual}}
    </div>
  </div>
</section>

src/components/icon-component.html (8.0 KiB)

<!-- 
  Icon Component
  
  A reusable, accessible icon component that supports multiple icon sources
  and provides proper accessibility attributes for screen readers.
  
  Usage Examples:
  
  Basic icon:
  <span class="icon" data-icon="search" aria-label="Search"></span>
  
  Icon with text (decorative):
  <button class="btn">
    <span class="icon" data-icon="plus" aria-hidden="true"></span>
    Add Item
  </button>
  
  Large icon:
  <span class="icon icon--lg" data-icon="warning" aria-label="Warning"></span>
  
  Custom color icon:
  <span class="icon icon--primary" data-icon="check" aria-label="Success"></span>
  
  Icon with custom size:
  <span class="icon" data-icon="star" aria-label="Favorite" style="--icon-size: 2rem;"></span>
-->

<span 
  class="icon" 
  data-icon="placeholder"
  aria-label="Icon description"
  role="img"
>
  <!-- SVG icon will be inserted here via JavaScript or CSS -->
  <svg 
    width="24" 
    height="24" 
    viewBox="0 0 24 24" 
    fill="none" 
    xmlns="http://www.w3.org/2000/svg"
    aria-hidden="true"
  >
    <!-- Default placeholder icon - replace with actual icon -->
    <rect x="3" y="3" width="18" height="18" rx="2" stroke="currentColor" stroke-width="2"/>
    <circle cx="8.5" cy="8.5" r="1.5" fill="currentColor"/>
    <path d="M21 15l-5-5L5 21l5-5" stroke="currentColor" stroke-width="2"/>
  </svg>
</span>

<style>
  .icon {
    /* CSS Custom Properties for theming */
    --icon-size: 1.5rem;
    --icon-color: currentColor;
    
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icon-size);
    height: var(--icon-size);
    color: var(--icon-color);
    flex-shrink: 0;
    user-select: none;
  }
  
  .icon svg {
    width: 100%;
    height: 100%;
    display: block;
  }
  
  /* Size variants */
  .icon--xs {
    --icon-size: 1rem;
  }
  
  .icon--sm {
    --icon-size: 1.25rem;
  }
  
  .icon--lg {
    --icon-size: 2rem;
  }
  
  .icon--xl {
    --icon-size: 2.5rem;
  }
  
  .icon--2xl {
    --icon-size: 3rem;
  }
  
  /* Color variants */
  .icon--primary {
    --icon-color: var(--color-primary, #2563eb);
  }
  
  .icon--secondary {
    --icon-color: var(--color-secondary, #64748b);
  }
  
  .icon--accent {
    --icon-color: var(--color-accent, #f59e0b);
  }
  
  .icon--success {
    --icon-color: var(--color-success, #16a34a);
  }
  
  .icon--warning {
    --icon-color: var(--color-warning, #d97706);
  }
  
  .icon--error {
    --icon-color: var(--color-error, #dc2626);
  }
  
  .icon--muted {
    --icon-color: var(--color-text-muted, #64748b);
  }
  
  /* Interactive states */
  .icon--interactive {
    cursor: pointer;
    transition: all var(--transition-fast, 0.15s ease);
  }
  
  .icon--interactive:hover {
    opacity: 0.8;
    transform: scale(1.05);
  }
  
  .icon--interactive:active {
    transform: scale(0.95);
  }
  
  /* Focus states for accessibility */
  .icon--interactive:focus {
    outline: 2px solid var(--color-primary, #2563eb);
    outline-offset: 2px;
    border-radius: var(--border-radius-sm, 0.25rem);
  }
  
  /* Animation variants */
  .icon--spin {
    animation: icon-spin 1s linear infinite;
  }
  
  .icon--pulse {
    animation: icon-pulse 2s infinite;
  }
  
  .icon--bounce {
    animation: icon-bounce 1s infinite;
  }
  
  /* Animations */
  @keyframes icon-spin {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }
  
  @keyframes icon-pulse {
    0%, 100% {
      opacity: 1;
    }
    50% {
      opacity: 0.5;
    }
  }
  
  @keyframes icon-bounce {
    0%, 20%, 53%, 80%, 100% {
      animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
      transform: translate3d(0, 0, 0);
    }
    40%, 43% {
      animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
      transform: translate3d(0, -8px, 0);
    }
    70% {
      animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
      transform: translate3d(0, -4px, 0);
    }
    90% {
      transform: translate3d(0, -2px, 0);
    }
  }
  
  /* High contrast mode support */
  @media (prefers-contrast: high) {
    .icon {
      --icon-color: ButtonText;
    }
  }
  
  /* Reduced motion support */
  @media (prefers-reduced-motion: reduce) {
    .icon--spin,
    .icon--pulse,
    .icon--bounce {
      animation: none;
    }
    
    .icon--interactive {
      transition: none;
    }
    
    .icon--interactive:hover {
      transform: none;
    }
  }
</style>

<script>
  // Icon component JavaScript for dynamic icon loading
  (function() {
    'use strict';
    
    // Icon registry - add your icon sets here
    const iconRegistry = {
      // Basic icons
      'search': '<path d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z" stroke="currentColor" stroke-width="1.5" fill="none"/>',
      'plus': '<path d="M12 4.5v15m7.5-7.5h-15" stroke="currentColor" stroke-width="1.5"/>',
      'minus': '<path d="M19.5 12h-15" stroke="currentColor" stroke-width="1.5"/>',
      'check': '<path d="M4.5 12.75l6 6 9-13.5" stroke="currentColor" stroke-width="1.5" fill="none"/>',
      'close': '<path d="M6 18L18 6M6 6l12 12" stroke="currentColor" stroke-width="1.5"/>',
      'arrow-right': '<path d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3" stroke="currentColor" stroke-width="1.5" fill="none"/>',
      'arrow-left': '<path d="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18" stroke="currentColor" stroke-width="1.5" fill="none"/>',
      'warning': '<path d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" stroke="currentColor" stroke-width="1.5" fill="none"/>',
      'info': '<path d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z" stroke="currentColor" stroke-width="1.5" fill="none"/>',
      'star': '<path d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" fill="currentColor"/>',
      'heart': '<path d="M21 8.5c0-2.485-2.239-4.5-5-4.5-1.738 0-3.297.746-4 1.946C11.297 4.746 9.738 4 8 4 5.239 4 3 6.015 3 8.5s2.239 4.5 5 4.5c1.738 0 3.297-.746 4-1.946.703 1.2 2.262 1.946 4 1.946 2.761 0 5-2.015 5-4.5z" fill="currentColor"/>',
      'menu': '<path d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" stroke="currentColor" stroke-width="1.5"/>',
      'external-link': '<path d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" stroke="currentColor" stroke-width="1.5" fill="none"/>'
    };
    
    // Initialize all icon components on page load
    function initIcons() {
      const icons = document.querySelectorAll('.icon[data-icon]');
      icons.forEach(updateIcon);
    }
    
    // Update a single icon component
    function updateIcon(iconElement) {
      const iconName = iconElement.getAttribute('data-icon');
      const svgElement = iconElement.querySelector('svg');
      
      if (iconName && iconRegistry[iconName] && svgElement) {
        // Clear existing content
        svgElement.innerHTML = '';
        
        // Add new icon content
        svgElement.innerHTML = iconRegistry[iconName];
        
        // Ensure proper accessibility
        if (!iconElement.getAttribute('aria-label') && !iconElement.getAttribute('aria-hidden')) {
          iconElement.setAttribute('aria-hidden', 'true');
        }
      }
    }
    
    // API for adding new icons
    window.IconComponent = {
      register: function(name, svg) {
        iconRegistry[name] = svg;
      },
      
      update: updateIcon,
      
      init: initIcons
    };
    
    // Auto-initialize on DOM ready
    if (document.readyState === 'loading') {
      document.addEventListener('DOMContentLoaded', initIcons);
    } else {
      initIcons();
    }
  })();
</script>

src/components/loading-spinner.html (12.1 KiB)

<!-- 
  Loading Spinner Component
  
  An accessible loading spinner with multiple style variants and proper
  screen reader support. Automatically handles reduced motion preferences.
  
  Usage Examples:
  
  Basic spinner:
  <div class="loading-spinner" aria-label="Loading"></div>
  
  Large spinner with custom message:
  <div class="loading-spinner loading-spinner--lg" aria-label="Loading data">
    <span class="loading-spinner__text">Loading...</span>
  </div>
  
  Inline spinner:
  <button class="btn" disabled>
    <div class="loading-spinner loading-spinner--sm loading-spinner--inline" aria-hidden="true"></div>
    Processing...
  </button>
  
  Overlay spinner:
  <div class="loading-spinner loading-spinner--overlay" aria-label="Loading page content">
    <span class="loading-spinner__text">Please wait...</span>
  </div>
  
  Custom color spinner:
  <div class="loading-spinner loading-spinner--primary" aria-label="Saving"></div>
-->

<div 
  class="loading-spinner" 
  role="status" 
  aria-label="Loading"
  aria-live="polite"
>
  <div class="loading-spinner__element">
    <!-- Spinner visual element -->
    <svg 
      class="loading-spinner__svg" 
      viewBox="0 0 50 50"
      aria-hidden="true"
    >
      <circle 
        class="loading-spinner__track" 
        cx="25" 
        cy="25" 
        r="20" 
        fill="none" 
        stroke="currentColor" 
        stroke-width="4"
      />
      <circle 
        class="loading-spinner__progress" 
        cx="25" 
        cy="25" 
        r="20" 
        fill="none" 
        stroke="currentColor" 
        stroke-width="4" 
        stroke-linecap="round"
      />
    </svg>
  </div>
  
  <!-- Optional text label -->
  <span class="loading-spinner__text" aria-hidden="true">
    Loading...
  </span>
</div>

<style>
  .loading-spinner {
    /* CSS Custom Properties for theming */
    --spinner-size: 2rem;
    --spinner-color: var(--color-primary, #2563eb);
    --spinner-track-color: var(--color-border, #e2e8f0);
    --spinner-speed: 1.4s;
    --spinner-text-color: var(--color-text-muted, #64748b);
    --spinner-gap: var(--spacing-sm, 0.5rem);
    
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spinner-gap);
    font-family: var(--font-family-primary, system-ui, -apple-system, sans-serif);
  }
  
  .loading-spinner__element {
    width: var(--spinner-size);
    height: var(--spinner-size);
    position: relative;
  }
  
  .loading-spinner__svg {
    width: 100%;
    height: 100%;
    transform-origin: center;
    animation: loading-spinner-rotate var(--spinner-speed) linear infinite;
  }
  
  .loading-spinner__track {
    opacity: 0.2;
    stroke: var(--spinner-track-color);
  }
  
  .loading-spinner__progress {
    stroke: var(--spinner-color);
    stroke-dasharray: 90, 150;
    stroke-dashoffset: 0;
    animation: loading-spinner-dash calc(var(--spinner-speed) * 1.5) ease-in-out infinite;
  }
  
  .loading-spinner__text {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--spinner-text-color);
    font-weight: var(--font-weight-medium, 500);
    text-align: center;
    margin: 0;
  }
  
  /* Size variants */
  .loading-spinner--xs {
    --spinner-size: 1rem;
    --spinner-gap: 0.25rem;
  }
  
  .loading-spinner--xs .loading-spinner__text {
    font-size: var(--font-size-xs, 0.75rem);
  }
  
  .loading-spinner--sm {
    --spinner-size: 1.5rem;
    --spinner-gap: 0.375rem;
  }
  
  .loading-spinner--lg {
    --spinner-size: 3rem;
    --spinner-gap: var(--spacing-md, 1rem);
  }
  
  .loading-spinner--lg .loading-spinner__text {
    font-size: var(--font-size-lg, 1.125rem);
  }
  
  .loading-spinner--xl {
    --spinner-size: 4rem;
    --spinner-gap: var(--spacing-lg, 1.5rem);
  }
  
  .loading-spinner--xl .loading-spinner__text {
    font-size: var(--font-size-xl, 1.25rem);
  }
  
  /* Color variants */
  .loading-spinner--primary {
    --spinner-color: var(--color-primary, #2563eb);
  }
  
  .loading-spinner--secondary {
    --spinner-color: var(--color-secondary, #64748b);
  }
  
  .loading-spinner--accent {
    --spinner-color: var(--color-accent, #f59e0b);
  }
  
  .loading-spinner--success {
    --spinner-color: var(--color-success, #16a34a);
  }
  
  .loading-spinner--warning {
    --spinner-color: var(--color-warning, #d97706);
  }
  
  .loading-spinner--error {
    --spinner-color: var(--color-error, #dc2626);
  }
  
  /* Style variants */
  .loading-spinner--inline {
    flex-direction: row;
    display: inline-flex;
  }
  
  .loading-spinner--text-only .loading-spinner__element {
    display: none;
  }
  
  .loading-spinner--no-text .loading-spinner__text {
    display: none;
  }
  
  /* Overlay variant */
  .loading-spinner--overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.9);
    z-index: var(--z-modal, 1050);
    backdrop-filter: blur(2px);
  }
  
  .loading-spinner--overlay-dark {
    background: rgba(0, 0, 0, 0.8);
    --spinner-track-color: rgba(255, 255, 255, 0.2);
    --spinner-text-color: rgba(255, 255, 255, 0.9);
  }
  
  /* Dots variant */
  .loading-spinner--dots .loading-spinner__element {
    display: flex;
    gap: 0.25rem;
  }
  
  .loading-spinner--dots .loading-spinner__svg {
    display: none;
  }
  
  .loading-spinner--dots .loading-spinner__element::before,
  .loading-spinner--dots .loading-spinner__element::after {
    content: '';
    width: 0.5rem;
    height: 0.5rem;
    background: var(--spinner-color);
    border-radius: 50%;
    animation: loading-spinner-dots var(--spinner-speed) infinite ease-in-out;
  }
  
  .loading-spinner--dots .loading-spinner__element::before {
    animation-delay: -0.32s;
  }
  
  .loading-spinner--dots .loading-spinner__element::after {
    animation-delay: -0.16s;
  }
  
  /* Pulse variant */
  .loading-spinner--pulse .loading-spinner__svg {
    animation: loading-spinner-pulse var(--spinner-speed) infinite ease-in-out;
  }
  
  /* Animations */
  @keyframes loading-spinner-rotate {
    to {
      transform: rotate(360deg);
    }
  }
  
  @keyframes loading-spinner-dash {
    0% {
      stroke-dasharray: 1, 150;
      stroke-dashoffset: 0;
    }
    50% {
      stroke-dasharray: 90, 150;
      stroke-dashoffset: -35;
    }
    100% {
      stroke-dasharray: 90, 150;
      stroke-dashoffset: -124;
    }
  }
  
  @keyframes loading-spinner-dots {
    0%, 80%, 100% {
      transform: scale(0);
      opacity: 0.5;
    }
    40% {
      transform: scale(1);
      opacity: 1;
    }
  }
  
  @keyframes loading-spinner-pulse {
    0%, 100% {
      opacity: 1;
      transform: scale(1);
    }
    50% {
      opacity: 0.5;
      transform: scale(0.8);
    }
  }
  
  /* Accessibility: Respect reduced motion preferences */
  @media (prefers-reduced-motion: reduce) {
    .loading-spinner__svg {
      animation: loading-spinner-pulse 2s infinite ease-in-out;
    }
    
    .loading-spinner__progress {
      animation: none;
      stroke-dasharray: none;
      opacity: 0.5;
    }
    
    .loading-spinner--dots .loading-spinner__element::before,
    .loading-spinner--dots .loading-spinner__element::after {
      animation: loading-spinner-pulse 2s infinite ease-in-out;
    }
  }
  
  /* High contrast mode support */
  @media (prefers-contrast: high) {
    .loading-spinner {
      --spinner-color: ButtonText;
      --spinner-track-color: ButtonFace;
      --spinner-text-color: ButtonText;
    }
  }
  
  /* Print styles */
  @media print {
    .loading-spinner {
      display: none;
    }
  }
</style>

<script>
  // Loading Spinner Component JavaScript
  (function() {
    'use strict';
    
    class LoadingSpinner {
      constructor(element) {
        this.element = element;
        this.textElement = element.querySelector('.loading-spinner__text');
        this.isVisible = true;
        this.originalText = this.textElement ? this.textElement.textContent : '';
        
        this.init();
      }
      
      init() {
        // Set up accessibility attributes
        if (!this.element.getAttribute('role')) {
          this.element.setAttribute('role', 'status');
        }
        
        if (!this.element.getAttribute('aria-live')) {
          this.element.setAttribute('aria-live', 'polite');
        }
      }
      
      show(text) {
        this.element.style.display = 'flex';
        this.isVisible = true;
        
        if (text && this.textElement) {
          this.textElement.textContent = text;
        }
        
        // Announce to screen readers
        this.element.setAttribute('aria-busy', 'true');
      }
      
      hide() {
        this.element.style.display = 'none';
        this.isVisible = false;
        this.element.setAttribute('aria-busy', 'false');
        
        // Restore original text
        if (this.textElement && this.originalText) {
          this.textElement.textContent = this.originalText;
        }
      }
      
      setText(text) {
        if (this.textElement) {
          this.textElement.textContent = text;
        }
      }
      
      setSize(size) {
        // Remove existing size classes
        this.element.classList.remove(
          'loading-spinner--xs',
          'loading-spinner--sm', 
          'loading-spinner--lg',
          'loading-spinner--xl'
        );
        
        // Add new size class
        if (size !== 'default') {
          this.element.classList.add(`loading-spinner--${size}`);
        }
      }
      
      setColor(color) {
        // Remove existing color classes
        this.element.classList.remove(
          'loading-spinner--primary',
          'loading-spinner--secondary',
          'loading-spinner--accent',
          'loading-spinner--success',
          'loading-spinner--warning',
          'loading-spinner--error'
        );
        
        // Add new color class
        if (color !== 'default') {
          this.element.classList.add(`loading-spinner--${color}`);
        }
      }
      
      destroy() {
        this.hide();
      }
    }
    
    // Auto-initialize all loading spinners
    function initSpinners() {
      const spinners = document.querySelectorAll('.loading-spinner');
      spinners.forEach(spinner => {
        if (!spinner._loadingSpinner) {
          spinner._loadingSpinner = new LoadingSpinner(spinner);
        }
      });
    }
    
    // Utility functions for creating spinners programmatically
    function createSpinner(options = {}) {
      const {
        size = 'default',
        color = 'default',
        text = 'Loading...',
        variant = 'default',
        inline = false
      } = options;
      
      const spinner = document.createElement('div');
      spinner.className = 'loading-spinner';
      spinner.setAttribute('role', 'status');
      spinner.setAttribute('aria-label', text);
      spinner.setAttribute('aria-live', 'polite');
      
      // Add size class
      if (size !== 'default') {
        spinner.classList.add(`loading-spinner--${size}`);
      }
      
      // Add color class
      if (color !== 'default') {
        spinner.classList.add(`loading-spinner--${color}`);
      }
      
      // Add variant class
      if (variant !== 'default') {
        spinner.classList.add(`loading-spinner--${variant}`);
      }
      
      // Add inline class
      if (inline) {
        spinner.classList.add('loading-spinner--inline');
      }
      
      // Create spinner structure
      spinner.innerHTML = `
        <div class="loading-spinner__element">
          <svg class="loading-spinner__svg" viewBox="0 0 50 50" aria-hidden="true">
            <circle class="loading-spinner__track" cx="25" cy="25" r="20" fill="none" stroke="currentColor" stroke-width="4"/>
            <circle class="loading-spinner__progress" cx="25" cy="25" r="20" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round"/>
          </svg>
        </div>
        <span class="loading-spinner__text" aria-hidden="true">${text}</span>
      `;
      
      return new LoadingSpinner(spinner);
    }
    
    // Global API
    window.LoadingSpinner = {
      create: createSpinner,
      init: initSpinners
    };
    
    // Auto-initialize on DOM ready
    if (document.readyState === 'loading') {
      document.addEventListener('DOMContentLoaded', initSpinners);
    } else {
      initSpinners();
    }
  })();
</script>

src/components/modal-template.html (21.1 KiB)

<!-- 
  Modal Template Component
  
  An accessible, flexible modal dialog component that follows WCAG guidelines
  and provides keyboard navigation, focus management, and screen reader support.
  
  Usage Examples:
  
  Basic modal:
  <div class="modal" id="example-modal" aria-labelledby="modal-title" aria-hidden="true">
    <div class="modal__backdrop"></div>
    <div class="modal__container">
      <div class="modal__content">
        <header class="modal__header">
          <h2 id="modal-title" class="modal__title">Modal Title</h2>
          <button class="modal__close" aria-label="Close modal">Ɨ</button>
        </header>
        <div class="modal__body">
          <p>Modal content goes here.</p>
        </div>
      </div>
    </div>
  </div>
  
  Modal with form:
  <div class="modal modal--form" id="contact-modal" aria-labelledby="contact-title" aria-hidden="true">
    <div class="modal__backdrop"></div>
    <div class="modal__container">
      <div class="modal__content">
        <header class="modal__header">
          <h2 id="contact-title" class="modal__title">Contact Us</h2>
          <button class="modal__close" aria-label="Close modal">Ɨ</button>
        </header>
        <div class="modal__body">
          <form class="modal__form">
            <input type="text" placeholder="Name" required>
            <textarea placeholder="Message" required></textarea>
          </form>
        </div>
        <footer class="modal__footer">
          <button type="button" class="btn btn--secondary">Cancel</button>
          <button type="submit" class="btn btn--primary">Send</button>
        </footer>
      </div>
    </div>
  </div>
  
  Large modal:
  <div class="modal modal--large" id="gallery-modal" aria-labelledby="gallery-title" aria-hidden="true">
    <!-- Content here -->
  </div>
  
  JavaScript usage:
  const modal = new Modal(document.getElementById('example-modal'));
  modal.open();
  modal.close();
-->

<div 
  class="modal" 
  id="modal-template"
  role="dialog" 
  aria-modal="true"
  aria-labelledby="modal-title"
  aria-describedby="modal-description"
  aria-hidden="true"
  tabindex="-1"
>
  <!-- Modal backdrop -->
  <div class="modal__backdrop" aria-hidden="true"></div>
  
  <!-- Modal container -->
  <div class="modal__container" role="document">
    <div class="modal__content">
      <!-- Modal header -->
      <header class="modal__header">
        <h2 id="modal-title" class="modal__title">
          Modal Title
        </h2>
        
        <button 
          type="button" 
          class="modal__close" 
          aria-label="Close modal"
          data-modal-close
        >
          <span aria-hidden="true">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
              <line x1="18" y1="6" x2="6" y2="18"></line>
              <line x1="6" y1="6" x2="18" y2="18"></line>
            </svg>
          </span>
        </button>
      </header>
      
      <!-- Modal body -->
      <div class="modal__body">
        <div id="modal-description" class="modal__description">
          <p>This is the modal content area. You can place any content here including text, forms, images, or other components.</p>
        </div>
      </div>
      
      <!-- Optional modal footer -->
      <footer class="modal__footer">
        <button 
          type="button" 
          class="modal__button modal__button--secondary" 
          data-modal-close
        >
          Cancel
        </button>
        <button 
          type="button" 
          class="modal__button modal__button--primary"
        >
          Confirm
        </button>
      </footer>
    </div>
  </div>
</div>

<style>
  .modal {
    /* CSS Custom Properties for theming */
    --modal-z-index: var(--z-modal, 1050);
    --modal-backdrop-color: rgba(0, 0, 0, 0.5);
    --modal-background: var(--color-background, #ffffff);
    --modal-border-radius: var(--border-radius-lg, 0.5rem);
    --modal-shadow: var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
    --modal-padding: var(--spacing-lg, 1.5rem);
    --modal-gap: var(--spacing-md, 1rem);
    --modal-max-width: 32rem;
    --modal-max-height: 90vh;
    --modal-transition: var(--transition-base, 0.2s ease);
    
    /* Typography */
    --modal-title-color: var(--color-text, #1e293b);
    --modal-title-size: var(--font-size-xl, 1.25rem);
    --modal-title-weight: var(--font-weight-semibold, 600);
    --modal-text-color: var(--color-text, #1e293b);
    --modal-text-size: var(--font-size-base, 1rem);
    
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: var(--modal-z-index);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-md, 1rem);
    opacity: 0;
    visibility: hidden;
    transition: all var(--modal-transition);
    font-family: var(--font-family-primary, system-ui, -apple-system, sans-serif);
  }
  
  .modal[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
  }
  
  .modal__backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--modal-backdrop-color);
    cursor: pointer;
  }
  
  .modal__container {
    position: relative;
    width: 100%;
    max-width: var(--modal-max-width);
    max-height: var(--modal-max-height);
    display: flex;
    flex-direction: column;
    transform: scale(0.9) translateY(20px);
    transition: transform var(--modal-transition);
  }
  
  .modal[aria-hidden="false"] .modal__container {
    transform: scale(1) translateY(0);
  }
  
  .modal__content {
    background: var(--modal-background);
    border-radius: var(--modal-border-radius);
    box-shadow: var(--modal-shadow);
    display: flex;
    flex-direction: column;
    max-height: 100%;
    overflow: hidden;
  }
  
  .modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--modal-padding);
    padding-bottom: var(--spacing-md, 1rem);
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    flex-shrink: 0;
  }
  
  .modal__title {
    margin: 0;
    color: var(--modal-title-color);
    font-size: var(--modal-title-size);
    font-weight: var(--modal-title-weight);
    line-height: 1.25;
  }
  
  .modal__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    border-radius: var(--border-radius-md, 0.375rem);
    color: var(--color-text-muted, #64748b);
    cursor: pointer;
    transition: all var(--transition-fast, 0.15s ease);
    flex-shrink: 0;
  }
  
  .modal__close:hover {
    background: var(--color-surface, #f8fafc);
    color: var(--color-text, #1e293b);
  }
  
  .modal__close:focus {
    outline: 2px solid var(--color-primary, #2563eb);
    outline-offset: 2px;
  }
  
  .modal__close svg {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  .modal__body {
    padding: var(--modal-padding);
    color: var(--modal-text-color);
    font-size: var(--modal-text-size);
    line-height: 1.5;
    overflow-y: auto;
    flex: 1;
  }
  
  .modal__description {
    margin: 0;
  }
  
  .modal__footer {
    display: flex;
    gap: var(--spacing-sm, 0.5rem);
    justify-content: flex-end;
    align-items: center;
    padding: var(--modal-padding);
    padding-top: var(--spacing-md, 1rem);
    border-top: 1px solid var(--color-border, #e2e8f0);
    flex-shrink: 0;
  }
  
  .modal__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs, 0.25rem);
    padding: var(--spacing-sm, 0.5rem) var(--spacing-md, 1rem);
    border: 1px solid transparent;
    border-radius: var(--border-radius-md, 0.375rem);
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    text-decoration: none;
    cursor: pointer;
    transition: all var(--transition-fast, 0.15s ease);
    min-height: 2.25rem;
  }
  
  .modal__button--primary {
    background: var(--color-primary, #2563eb);
    color: white;
    border-color: var(--color-primary, #2563eb);
  }
  
  .modal__button--primary:hover {
    background: var(--color-primary-hover, #1d4ed8);
    border-color: var(--color-primary-hover, #1d4ed8);
  }
  
  .modal__button--secondary {
    background: transparent;
    color: var(--color-text, #1e293b);
    border-color: var(--color-border, #e2e8f0);
  }
  
  .modal__button--secondary:hover {
    background: var(--color-surface, #f8fafc);
  }
  
  .modal__button:focus {
    outline: 2px solid var(--color-primary, #2563eb);
    outline-offset: 2px;
  }
  
  /* Size variants */
  .modal--small {
    --modal-max-width: 24rem;
  }
  
  .modal--medium {
    --modal-max-width: 32rem;
  }
  
  .modal--large {
    --modal-max-width: 48rem;
  }
  
  .modal--extra-large {
    --modal-max-width: 64rem;
  }
  
  .modal--full-screen {
    --modal-max-width: calc(100vw - 2rem);
    --modal-max-height: calc(100vh - 2rem);
  }
  
  /* Style variants */
  .modal--centered .modal__footer {
    justify-content: center;
  }
  
  .modal--no-header .modal__header {
    display: none;
  }
  
  .modal--no-footer .modal__footer {
    display: none;
  }
  
  .modal--form .modal__body {
    padding-bottom: 0;
  }
  
  .modal__form {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md, 1rem);
  }
  
  .modal__form input,
  .modal__form textarea,
  .modal__form select {
    width: 100%;
    padding: var(--spacing-sm, 0.5rem) var(--spacing-md, 1rem);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--border-radius-md, 0.375rem);
    font-size: var(--font-size-base, 1rem);
    font-family: inherit;
    background: var(--color-background, #ffffff);
    color: var(--color-text, #1e293b);
    transition: border-color var(--transition-fast, 0.15s ease);
  }
  
  .modal__form input:focus,
  .modal__form textarea:focus,
  .modal__form select:focus {
    outline: none;
    border-color: var(--color-primary, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
  }
  
  .modal__form textarea {
    min-height: 6rem;
    resize: vertical;
  }
  
  /* Responsive design */
  @media (max-width: 640px) {
    .modal {
      padding: var(--spacing-sm, 0.5rem);
    }
    
    .modal--full-screen {
      --modal-max-width: 100vw;
      --modal-max-height: 100vh;
    }
    
    .modal--full-screen .modal__container {
      border-radius: 0;
    }
    
    .modal__header,
    .modal__body,
    .modal__footer {
      padding: var(--spacing-md, 1rem);
    }
    
    .modal__footer {
      flex-direction: column-reverse;
    }
    
    .modal__button {
      width: 100%;
    }
  }
  
  /* Reduced motion support */
  @media (prefers-reduced-motion: reduce) {
    .modal,
    .modal__container,
    .modal__close,
    .modal__button {
      transition: none;
    }
    
    .modal__container {
      transform: none;
    }
    
    .modal[aria-hidden="false"] .modal__container {
      transform: none;
    }
  }
  
  /* High contrast mode support */
  @media (prefers-contrast: high) {
    .modal__content {
      border: 2px solid ButtonText;
    }
    
    .modal__header,
    .modal__footer {
      border-color: ButtonText;
    }
  }
  
  /* Print styles */
  @media print {
    .modal {
      position: static;
      z-index: auto;
      opacity: 1;
      visibility: visible;
      padding: 0;
    }
    
    .modal__backdrop {
      display: none;
    }
    
    .modal__container {
      max-width: none;
      max-height: none;
      transform: none;
    }
    
    .modal__close {
      display: none;
    }
  }
</style>

<script>
  // Modal Component JavaScript
  (function() {
    'use strict';
    
    class Modal {
      constructor(element) {
        this.element = element;
        this.backdrop = element.querySelector('.modal__backdrop');
        this.closeButtons = element.querySelectorAll('[data-modal-close]');
        this.focusableElements = null;
        this.previouslyFocusedElement = null;
        this.isOpen = false;
        
        this.init();
      }
      
      init() {
        this.setupEventListeners();
        this.setupAccessibility();
      }
      
      setupEventListeners() {
        // Close button clicks
        this.closeButtons.forEach(button => {
          button.addEventListener('click', this.close.bind(this));
        });
        
        // Backdrop click
        if (this.backdrop) {
          this.backdrop.addEventListener('click', this.close.bind(this));
        }
        
        // Escape key
        document.addEventListener('keydown', this.handleKeydown.bind(this));
        
        // Prevent body scroll when modal is open
        this.element.addEventListener('transitionend', this.handleTransitionEnd.bind(this));
      }
      
      setupAccessibility() {
        // Ensure proper ARIA attributes
        if (!this.element.getAttribute('role')) {
          this.element.setAttribute('role', 'dialog');
        }
        
        if (!this.element.getAttribute('aria-modal')) {
          this.element.setAttribute('aria-modal', 'true');
        }
        
        // Set initial focus state
        this.element.setAttribute('tabindex', '-1');
      }
      
      handleKeydown(event) {
        if (!this.isOpen) return;
        
        if (event.key === 'Escape') {
          event.preventDefault();
          this.close();
        }
        
        if (event.key === 'Tab') {
          this.handleTabNavigation(event);
        }
      }
      
      handleTabNavigation(event) {
        if (!this.focusableElements) return;
        
        const firstElement = this.focusableElements[0];
        const lastElement = this.focusableElements[this.focusableElements.length - 1];
        
        if (event.shiftKey) {
          // Shift + Tab
          if (document.activeElement === firstElement) {
            event.preventDefault();
            lastElement.focus();
          }
        } else {
          // Tab
          if (document.activeElement === lastElement) {
            event.preventDefault();
            firstElement.focus();
          }
        }
      }
      
      handleTransitionEnd(event) {
        if (event.target === this.element) {
          if (this.isOpen) {
            this.handleModalOpened();
          } else {
            this.handleModalClosed();
          }
        }
      }
      
      handleModalOpened() {
        // Set focus to modal
        this.element.focus();
        
        // Find and cache focusable elements
        this.updateFocusableElements();
        
        // Focus first focusable element
        if (this.focusableElements.length > 0) {
          this.focusableElements[0].focus();
        }
      }
      
      handleModalClosed() {
        // Restore focus to previously focused element
        if (this.previouslyFocusedElement) {
          this.previouslyFocusedElement.focus();
          this.previouslyFocusedElement = null;
        }
        
        // Re-enable body scroll
        document.body.style.overflow = '';
        document.body.classList.remove('modal-open');
      }
      
      updateFocusableElements() {
        const focusableSelectors = [
          'button:not([disabled])',
          'input:not([disabled])',
          'select:not([disabled])',
          'textarea:not([disabled])',
          'a[href]',
          '[tabindex]:not([tabindex="-1"])'
        ].join(', ');
        
        this.focusableElements = Array.from(
          this.element.querySelectorAll(focusableSelectors)
        ).filter(element => {
          return element.offsetWidth > 0 && element.offsetHeight > 0;
        });
      }
      
      open(options = {}) {
        if (this.isOpen) return;
        
        // Store previously focused element
        this.previouslyFocusedElement = document.activeElement;
        
        // Prevent body scroll
        document.body.style.overflow = 'hidden';
        document.body.classList.add('modal-open');
        
        // Show modal
        this.element.setAttribute('aria-hidden', 'false');
        this.isOpen = true;
        
        // Update content if provided
        if (options.title) {
          this.setTitle(options.title);
        }
        
        if (options.content) {
          this.setContent(options.content);
        }
        
        // Emit open event
        this.element.dispatchEvent(new CustomEvent('modal:open', {
          bubbles: true,
          detail: { modal: this }
        }));
      }
      
      close() {
        if (!this.isOpen) return;
        
        // Hide modal
        this.element.setAttribute('aria-hidden', 'true');
        this.isOpen = false;
        
        // Emit close event
        this.element.dispatchEvent(new CustomEvent('modal:close', {
          bubbles: true,
          detail: { modal: this }
        }));
      }
      
      setTitle(title) {
        const titleElement = this.element.querySelector('.modal__title');
        if (titleElement) {
          titleElement.textContent = title;
        }
      }
      
      setContent(content) {
        const contentElement = this.element.querySelector('.modal__description');
        if (contentElement) {
          if (typeof content === 'string') {
            contentElement.innerHTML = content;
          } else {
            contentElement.innerHTML = '';
            contentElement.appendChild(content);
          }
        }
      }
      
      setSize(size) {
        // Remove existing size classes
        this.element.classList.remove(
          'modal--small',
          'modal--medium',
          'modal--large',
          'modal--extra-large',
          'modal--full-screen'
        );
        
        // Add new size class
        if (size !== 'default') {
          this.element.classList.add(`modal--${size}`);
        }
      }
      
      toggle() {
        if (this.isOpen) {
          this.close();
        } else {
          this.open();
        }
      }
      
      destroy() {
        this.close();
        this.closeButtons.forEach(button => {
          button.removeEventListener('click', this.close.bind(this));
        });
        
        if (this.backdrop) {
          this.backdrop.removeEventListener('click', this.close.bind(this));
        }
      }
    }
    
    // Auto-initialize all modals
    function initModals() {
      const modals = document.querySelectorAll('.modal');
      modals.forEach(modal => {
        if (!modal._modal) {
          modal._modal = new Modal(modal);
        }
      });
    }
    
    // Utility function for creating modals programmatically
    function createModal(options = {}) {
      const {
        id = `modal-${Date.now()}`,
        title = 'Modal',
        content = '',
        size = 'medium',
        buttons = []
      } = options;
      
      const modal = document.createElement('div');
      modal.className = `modal modal--${size}`;
      modal.id = id;
      modal.setAttribute('role', 'dialog');
      modal.setAttribute('aria-modal', 'true');
      modal.setAttribute('aria-labelledby', `${id}-title`);
      modal.setAttribute('aria-hidden', 'true');
      modal.setAttribute('tabindex', '-1');
      
      // Create buttons HTML
      const buttonsHtml = buttons.map((button, index) => {
        const className = button.primary ? 'modal__button--primary' : 'modal__button--secondary';
        const closeAttr = button.close ? 'data-modal-close' : '';
        return `<button type="button" class="modal__button ${className}" ${closeAttr}>${button.text}</button>`;
      }).join('');
      
      modal.innerHTML = `
        <div class="modal__backdrop" aria-hidden="true"></div>
        <div class="modal__container" role="document">
          <div class="modal__content">
            <header class="modal__header">
              <h2 id="${id}-title" class="modal__title">${title}</h2>
              <button type="button" class="modal__close" aria-label="Close modal" data-modal-close>
                <span aria-hidden="true">
                  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
                    <line x1="18" y1="6" x2="6" y2="18"></line>
                    <line x1="6" y1="6" x2="18" y2="18"></line>
                  </svg>
                </span>
              </button>
            </header>
            <div class="modal__body">
              <div class="modal__description">${content}</div>
            </div>
            ${buttons.length > 0 ? `<footer class="modal__footer">${buttonsHtml}</footer>` : ''}
          </div>
        </div>
      `;
      
      document.body.appendChild(modal);
      return new Modal(modal);
    }
    
    // Global API
    window.Modal = {
      create: createModal,
      init: initModals
    };
    
    // Auto-initialize on DOM ready
    if (document.readyState === 'loading') {
      document.addEventListener('DOMContentLoaded', initModals);
    } else {
      initModals();
    }
    
    // Handle modal triggers
    document.addEventListener('click', function(event) {
      const trigger = event.target.closest('[data-modal-target]');
      if (trigger) {
        event.preventDefault();
        const targetId = trigger.getAttribute('data-modal-target');
        const modal = document.getElementById(targetId);
        if (modal && modal._modal) {
          modal._modal.open();
        }
      }
    });
  })();
</script>

src/components/service-card.html (781 B)

<!-- Service Card Component -->
<article class="service-card {{ cardClass }}">
  <div class="card-header">
    <div class="card-icon">
      {{ icon }}
    </div>
    <h3 class="card-title">{{ title }}</h3>
  </div>
  
  <div class="card-content">
    <p class="card-description">{{ description }}</p>
    
    {% if features %}
    <ul class="card-features">
      {% for feature in features %}
      <li class="feature-item">{{ feature }}</li>
      {% endfor %}
    </ul>
    {% endif %}
  </div>
  
  <div class="card-footer">
    {% if price %}
    <div class="card-price">{{ price }}</div>
    {% endif %}
    
    <div class="card-actions">
      {{ primaryAction }}
      {% if secondaryAction %}
      {{ secondaryAction }}
      {% endif %}
    </div>
  </div>
</article>

src/components/services-grid.html (711 B)

<!-- Services Grid Component -->
<!-- Reusable container for service cards with consistent layout and styling -->
<section class="services-grid" role="group" aria-labelledby="{{ gridId | default('services-heading') }}">

<style>
/* Services Grid Component Styles */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg, 1.5rem);
  margin-top: var(--space-lg, 1.5rem);
  align-items: start;
}

/* Responsive behavior */
@media (max-width: 1024px) and (min-width: 769px) {
  .services-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
}

@media (max-width: 768px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
}
</style>

</section>

src/domains.md (14.7 KiB)


eleventyNavigation: key: Domains order: 1 layout: simple.njk title: Domains description: Leveraging two decades of AI expertise to solve real-world challenges across critical industries


Domains

Building game-changing AI applications requires understanding both AI technology and the problem domain deeply. These are the problem domains where I have deep domain knowledge, and can help build revolutionary AI applications:

Startups & Emerging Technology

Startups & Emerging Technology

The Challenge: Startups need to move fast, validate quickly, and build for scale without over-engineering. You need AI that creates competitive advantage, not technical debt. You need someone who understands both the technology and the unique pressures of startup life.

My Approach: I've been through the startup journey multiple times. I understand the tension between moving fast and building right. My sweet spot is helping startups figure out how to leverage AI to build products that couldn't exist without it.

AI-First Product Strategy: Identifying opportunities where AI creates genuine competitive moats, not just feature parity.
MVP to Scale Architecture: Building AI systems that work for 100 users and scale to 100,000 without a complete rewrite.
Rapid Prototyping: Getting from idea to working prototype in weeks, not months, with clear paths to production.

Whether you're a pre-seed startup with a big AI vision or a growth-stage company ready to leverage your data goldmine—let's explore what becomes possible when you combine your domain expertise with intelligent systems.

Clinical & Biotech Research

Clinical & Biotech Research

The Challenge: Healthcare data is complex, siloed, and underutilized. Research workflows are manual, time-consuming, and prone to inconsistency. Clinical insights remain trapped in unstructured notes, papers, and protocols.

My Approach: Two decades of machine learning experience meets deep understanding of research methodologies. I build AI systems that augment—never replace—clinical expertise and scientific rigor.

Intelligent Literature Review: AI-powered research synthesis that identifies patterns across thousands of papers, highlighting contradictions and research gaps.
Clinical Data Integration: Unified views of patient data across systems, with AI-powered insights that respect privacy and regulatory requirements.
Research Workflow Automation: From protocol generation to data analysis pipelines that maintain scientific reproducibility.

Whether you're accelerating drug discovery, optimizing clinical trials, or bridging the gap between research and practice—let's explore how AI can amplify your scientific impact.

Environmental & Industrial Systems

Environmental & Industrial Systems

The Challenge: Environmental and industrial systems generate massive amounts of sensor data, but turning that data into actionable insights requires domain expertise combined with sophisticated analytics.

My Approach: I understand that environmental and industrial AI isn't just about algorithms—it's about building systems that operate reliably in complex, real-world conditions while providing insights that drive better decisions.

Predictive Maintenance: AI systems that predict equipment failures before they happen, optimizing maintenance schedules and reducing downtime.
Environmental Monitoring: Real-time analysis of environmental data streams, from air quality to ecosystem health, with automated alerting and trend analysis.
Process Optimization: Machine learning models that continuously optimize industrial processes for efficiency, quality, and environmental impact.

From manufacturing optimization to environmental compliance, I help build AI systems that make complex industrial and environmental data actionable.

Language Intelligence & Text Analysis

Language Intelligence & Text Analysis

The Challenge: Organizations are drowning in text data—documents, emails, support tickets, research papers, social media. The insights are there, but extracting them at scale requires sophisticated language understanding.

My Approach: From the early days of collaborative filtering to modern large language models, I've been building systems that understand human language. I combine deep NLP expertise with practical deployment experience.

Intelligent Document Processing: Automated extraction, categorization, and analysis of information from complex document collections.
Conversational AI Systems: Custom language models and chatbots that understand domain-specific language and provide genuinely helpful responses.
Content Intelligence: Systems that analyze sentiment, extract entities, identify trends, and surface insights from text data at scale.

Whether you need to understand customer sentiment, automate document workflows, or build conversational interfaces—let's discuss how language AI can transform your text data into competitive advantage.

Defense & Security Applications

Defense & Security Applications

The Challenge: Security and defense applications demand AI systems that are not just accurate, but reliable, explainable, and robust against adversarial attacks. The stakes are too high for black-box solutions.

My Approach: I build AI systems with security-first design principles, understanding that defense applications require transparency, reliability, and the ability to operate under pressure.

Threat Detection & Analysis: AI systems that identify patterns in security data, from network anomalies to behavioral analysis, with explainable results.
Intelligence Automation: Tools that help analysts process and synthesize large volumes of intelligence data while maintaining human oversight and decision-making.
Secure AI Deployment: AI systems designed for secure environments, with robust privacy protections and resistance to adversarial attacks.

From cybersecurity to intelligence analysis, I help build AI systems that enhance security capabilities while maintaining the reliability and transparency that critical applications demand.

src/index.md (123.4 KiB)


eleventyNavigation: key: Home order: 1 layout: simple.njk


Ship Autonomous AI Systems While Your Competitors Debug Prompts


## While Your Competitors Struggle With Prompts, I'm Shipping Autonomous Agent Systems That 10x Team Velocity Most teams bolt AI onto existing processes and wonder why it doesn't work. I've been architecting intelligent systems since 2007—I know how to build AI-first from the ground up. While others are still figuring out prompts, I'm shipping autonomous agent systems and contamination-resistant evaluation frameworks. If you're ready to build software that thinks, not just talks, you're in the right place.
## Proven Paths From *AI Theatre* to Autonomous Systems That Work

Startups: Build AI-First From Day One

Your competitors are bolting AI onto existing products. You could architect intelligence as core infrastructure and leave them behind permanently.

Here's the reality:

Most startups treat AI like a feature. The winners will be those whose entire product is intelligent by design. I help you architect systems where agents handle complex workflows, coding becomes agentic, and your product gets smarter as it grows.

What this looks like:

  • AI-first architecture that scales with your growth
  • Development workflows that 10x your team's velocity
  • Multi-agent systems handling complex business logic

Right for you if:

You're ready to build AI into your core strategy with budget for strategic consulting and implementation.

Click to expand

Enterprise: Custom Agents & Orchestration

Enterprise constraints require enterprise-grade solutions. Get custom agent systems that meet your needs—stable, secure and supported.

The challenge:

You need AI systems that work within enterprise constraints—secure, integrated, and supported. I build custom agent orchestration and pre-configured environments that actually deploy.

What you get:

  • Custom agents that work within your constraints
  • Enterprise-grade security with VM-isolated operations
  • Pre-configured environments your teams can use immediately

Engagement:

3-12 month contracts, full-time billing for complex projects, flexible arrangements based on scope.

Click to expand

Individuals: From Zero to AI Hero

Everyone's using ChatGPT. You could be building autonomous workflows that compound daily. Personal coaching to go from prompt jockey to AI architect.

The gap:

Most people know how to ask ChatGPT questions. Few know how to build systems that work for them while they sleep. I provide hands-on coaching using production-grade tools and workflows I actually use in my own work.

What you learn:

  • Tools and workflows that actually move the needle
  • Custom setups tailored to your specific work
  • Best practices from someone who ships these systems

Right for you if:

You want to go beyond basic AI usage and build workflows that compound over time.

Click to expand
Your competitors are still figuring out prompts. You could be shipping autonomous agents. The companies that win won't be those with the best AI features—they'll be the ones whose entire product is intelligent by design. Every day of delay is lost competitive advantage.
## Why You Can Trust Me With Your AI Strategy

I Ship Autonomous Agent Systems

While others demo ChatGPT integrations, I build production agent systems that compose like software packages and run safely at scale.

The difference:

Anyone can wrap the OpenAI API. I build agent registries with semantic versioning, VM-isolated environments where agents can't damage host systems, and evaluation frameworks that expose what AI actually understands versus what it memorized.

What this proves:

I don't just talk about autonomous agents—I ship them. Battle-tested architectures solving real problems for real users.

Click to expand

I Build Systems That Actually Learn

Most AI just regurgitates training data. I build systems that spot patterns others miss and evolve ideas autonomously while you sleep.

Beyond pattern matching:

I've built narrative analysis that maps emotional tension, trend detection that surfaces viral content weeks early, and evaluation systems that expose what AI actually understands versus what it memorized.

What this proves:

I understand how to make AI genuinely intelligent, not just responsive. Pattern recognition that finds opportunities others miss.

Click to expand

I've Been Doing This Since 2007

From collaborative filtering to autonomous agents—I've weathered every AI hype cycle and know which technologies actually stick.

Why experience matters:

I know which AI approaches come and go versus which ones scale to production. I've solved the infrastructure problems that break most AI projects and seen every way implementations fail—and how to prevent it.

What this means for you:

AI moves fast, but building reliable systems doesn't. You get two decades of hard-won knowledge about what actually works.

Click to expand
Concept
Design
Deploy
Scale
Ready to stop wondering "what if" and start building "what's next"? The most successful companies don't wait for perfect timing—they create competitive advantages while others hesitate.
## Start Your Discovery Process

Strategy Session

Identify high-impact AI opportunities specific to your business.

Talk Strategy

Technical Assessment

We'll assess your current capabilities and design implementation roadmaps.

Get Assessment

Innovation Workshop

Collaborative sessions to reimagine what's possible with intelligent systems.

Start Workshop

Latest Articles

{% if collections.articles.length > 0 %}

{% for article in collections.articles | head(3) %} {% include "components/article-card.njk" %} {% endfor %}

View all articles

{% endif %}

Where ambitious ideas meet intelligent execution.

src/js/animations.js (9.0 KiB)

/**
 * Animation handlers for text effects, card animations, and visual elements
 * Includes rotating banners, card hover effects, and performance optimizations
 */

// Rotating Banner System
class RotatingBanners {
  constructor() {
    // Coordinated title-subtitle pairs
    this.titleSubtitlePairs = [
      {
        title: 'Stop Losing to Startups With Real AI Advantages',
        subtitles: [
          "Turn your data moat into autonomous agent systems that competitors can't copy",
          'Build AI-first workflows that eliminate manual processes entirely',
          'Deploy intelligent automation that learns and improves without human intervention'
        ]
      },
      {
        title: 'Enterprise AI That Actually Works in Production',
        subtitles: [
          'Architected for scale, security, and seamless integration with existing systems',
          'Built with enterprise governance, compliance, and risk management from day one',
          'Designed for reliability with comprehensive monitoring and automated failsafes'
        ]
      },
      {
        title: 'Custom AI Research That Drives Breakthrough Innovation',
        subtitles: [
          'Novel algorithms tailored to your unique data patterns and business constraints',
          'Advanced research partnerships that accelerate time-to-market for AI products',
          'Proprietary model development that creates sustainable competitive advantages'
        ]
      },
      {
        title: 'Strategic AI Implementation with Clear ROI',
        subtitles: [
          'Clear roadmaps from concept to competitive edge with measurable business impact',
          'Proven methodologies that minimize risk while maximizing transformation speed',
          'Executive-ready strategies that align AI initiatives with business objectives'
        ]
      }
    ];
    
    this.currentTitleIndex = 0;
    this.currentSubtitleIndex = 0;
    this.container = document.querySelector('.rotating-banners');
    this.titleElement = document.querySelector('.hero-content h1');
    this.isAnimating = false;
    this.glowTimeouts = [];
    
    this.init();
  }
  
  init() {
    if (!this.container) {return;}
    
    // Create banner containers for the first title's subtitles
    const firstTitleSubtitles = this.titleSubtitlePairs[0].subtitles;
    firstTitleSubtitles.forEach((text, index) => {
      const bannerContainer = document.createElement('div');
      bannerContainer.className = 'banner-container';
      if (index === 0) {bannerContainer.classList.add('active');}
      
      const bannerText = document.createElement('span');
      bannerText.className = 'banner-text';
      bannerText.setAttribute('data-text', text);
      
      bannerContainer.appendChild(bannerText);
      this.container.appendChild(bannerContainer);
    });
    
    // Initialize title state
    if (this.titleElement) {
      this.titleElement.classList.add('normal');
    }
    
    // Start rotation cycles
    this.startRotation();
  }
  
  animateLetters(container, delay = 0) {
    const bannerText = container.querySelector('.banner-text');
    const text = bannerText.getAttribute('data-text');
    // Simple text display without letter-by-letter animation
    bannerText.textContent = text;
  }
  
  fadeOutContainer(container, callback) {
    // Start blur out animation
    container.classList.remove('normal');
    container.classList.add('blurring-out');
    
    // Call callback when blur animation completes
    setTimeout(() => {
      if (callback) {callback();}
    }, 600); // Match blur transition duration
  }
  
  fadeInContainer(container, delay = 0) {
    setTimeout(() => {
      container.classList.add('active', 'normal');
      this.animateLetters(container);
    }, delay);
  }
  
  updateTitle(newTitle) {
    if (this.titleElement) {
      this.titleElement.classList.remove('normal');
      this.titleElement.classList.add('changing');
      
      setTimeout(() => {
        this.titleElement.innerHTML = newTitle;
        this.titleElement.classList.remove('changing');
        this.titleElement.classList.add('normal');
      }, 300);
    }
  }
  
  rebuildSubtitleContainers(subtitles) {
    // Clear existing containers
    this.container.innerHTML = '';
    
    // Create new containers for new title's subtitles
    subtitles.forEach((text, index) => {
      const bannerContainer = document.createElement('div');
      bannerContainer.className = 'banner-container';
      if (index === 0) {bannerContainer.classList.add('active');}
      
      const bannerText = document.createElement('span');
      bannerText.className = 'banner-text';
      bannerText.setAttribute('data-text', text);
      
      bannerContainer.appendChild(bannerText);
      this.container.appendChild(bannerContainer);
    });
  }
  
  nextBanner() {
    if (this.isAnimating) {return;}
    
    this.isAnimating = true;
    const currentPair = this.titleSubtitlePairs[this.currentTitleIndex];
    const current = this.container.children[this.currentSubtitleIndex];
    
    // Move to next subtitle
    this.currentSubtitleIndex = (this.currentSubtitleIndex + 1) % currentPair.subtitles.length;
    
    // If we've cycled through all subtitles, move to next title
    if (this.currentSubtitleIndex === 0) {
      this.currentTitleIndex = (this.currentTitleIndex + 1) % this.titleSubtitlePairs.length;
      const nextPair = this.titleSubtitlePairs[this.currentTitleIndex];
      
      // Start title transition early, during subtitle fade-out
      setTimeout(() => {
        this.updateTitle(nextPair.title);
      }, 200);
      
      // Fade out current subtitle container and letters
      this.fadeOutContainer(current, () => {
        // Rebuild subtitle containers for new title
        this.rebuildSubtitleContainers(nextPair.subtitles);
        
        // Fade in first subtitle of new title
        const firstNew = this.container.children[0];
        this.fadeInContainer(firstNew, 0);
        this.isAnimating = false;
      });
      return;
    }
    
    // Regular subtitle transition within same title
    const next = this.container.children[this.currentSubtitleIndex];
    
    // Fade out current subtitle container
    this.fadeOutContainer(current, () => {
      // Fade in next subtitle container
      this.fadeInContainer(next, 0);
      this.isAnimating = false;
    });
  }
  
  startRotation() {
    const rotationInterval = 5000; // 5 seconds per banner
    
    // Start the first banner animation immediately
    const firstContainer = this.container.children[0];
    if (firstContainer) {
      this.fadeInContainer(firstContainer, 500);
    }
    
    // Set up rotation timer
    setInterval(() => {
      this.nextBanner();
    }, rotationInterval);
  }
}

// Card Animation Handler
class CardAnimations {
  constructor() {
    this.possibilityCards = document.querySelectorAll('.possibility-card');
    this.init();
  }
  
  init() {
    this.possibilityCards.forEach(card => {
      // Add subtle animation delays for staggered loading
      const index = Array.from(this.possibilityCards).indexOf(card);
      card.style.animationDelay = `${index * 100}ms`;
      
      // Enhanced hover behavior with data visualization updates
      card.addEventListener('mouseenter', () => {
        // Trigger visualization animations
        const vizElements = card.querySelectorAll('.step-visual.processed, .point.active, .milestone.active');
        vizElements.forEach(el => {
          el.style.animationDuration = '1s';
        });
      });
      
      card.addEventListener('mouseleave', () => {
        // Reset animation timing
        const vizElements = card.querySelectorAll('.step-visual.processed, .point.active, .milestone.active');
        vizElements.forEach(el => {
          el.style.animationDuration = '2s';
        });
      });
    });
  }
}

// Premium Text Animation Handler
class TextAnimations {
  constructor() {
    this.init();
  }
  
  init() {
    // Performance optimization: remove will-change after animations complete
    setTimeout(() => {
      const animatedElements = document.querySelectorAll('.hero-title, .banner-text');
      animatedElements.forEach(el => {
        el.style.willChange = 'auto';
      });
    }, 4000); // After all animations should be complete
  }
}

// Animation Manager - coordinates all animations
class AnimationManager {
  constructor() {
    this.rotatingBanners = null;
    this.cardAnimations = null;
    this.textAnimations = null;
    
    this.init();
  }
  
  init() {
    // Initialize all animation systems
    this.rotatingBanners = new RotatingBanners();
    this.cardAnimations = new CardAnimations();
    this.textAnimations = new TextAnimations();
  }
}

// Export classes for use in other modules
window.RotatingBanners = RotatingBanners;
window.CardAnimations = CardAnimations;
window.TextAnimations = TextAnimations;
window.AnimationManager = AnimationManager;

// Initialize when DOM is ready
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', () => {
    new AnimationManager();
  });
} else {
  new AnimationManager();
}

src/js/modals.js (16.6 KiB)

/**
 * Modal functionality for service cards
 * Handles modal opening/closing, content population, and email generation
 */

// Service data for modals
const serviceData = {
  startup: {
    image: '/img/optimized/modal-office-meeting.webp',
    ctaText: 'Start Your AI Journey',
    alt: 'Modern coding environment with AI development tools',
    subject: 'Startup AI Architecture & Strategy Inquiry',
    body: 'Hi there! I\'m interested in learning more about your Startup AI Architecture & Strategy services. Could we schedule a time to discuss how you can help build robust AI infrastructure for my startup?'
  },
  enterprise: {
    image: '/img/optimized/modal-building-architecture.webp', 
    ctaText: 'Transform Your Enterprise',
    alt: 'Enterprise building with advanced architectural systems',
    subject: 'Enterprise AI Architecture Consultation',
    body: 'Hello! I\'m interested in your Enterprise AI Architecture services. Can we discuss how to build scalable, production-ready AI systems for our organization?'
  },
  research: {
    image: '/img/optimized/modal-team-meeting.webp',
    ctaText: 'Advance Your Research',
    alt: 'Advanced data visualization and analytics dashboard',
    subject: 'Applied AI Research Partnership',
    body: 'Hi! I\'d like to explore your Applied AI Research services. Could we schedule a consultation to discuss how you can help accelerate our research initiatives?'
  },
  strategic: {
    image: '/img/optimized/modal-team-meeting.webp',
    ctaText: 'Plan Your Strategy',
    alt: 'Strategic team meeting with AI implementation planning',
    subject: 'Strategic AI Implementation Consultation',
    body: 'Hello! I\'d like to discuss Strategic Implementation services to create clear roadmaps from concept to competitive edge. Can we schedule a consultation?'
  },
  agentic: {
    image: 'custom-visualization', // Special flag for custom visualization
    ctaText: 'Build Agent Systems',
    alt: 'Production pipeline visualization for autonomous agent systems',
    subject: 'Autonomous Agent Systems Development',
    body: 'Hi! I\'m interested in your Autonomous Agent Systems development services. Can we discuss how to build production-ready agent systems that scale safely?'
  }
};

class ModalManager {
  constructor() {
    this.serviceCards = document.querySelectorAll('.service-card');
    this.modal = document.getElementById('service-modal');
    this.modalTitle = document.getElementById('modal-title');
    this.modalSummary = document.getElementById('modal-summary');
    this.modalDetails = document.getElementById('modal-details');
    this.modalImage = document.getElementById('modal-image');
    this.modalCtaButton = document.getElementById('modal-cta');
    this.modalCtaText = document.getElementById('modal-cta-text');
    this.modalClose = document.querySelector('.modal-close');
    
    this.init();
  }
  
  init() {
    if (!this.modal) {return;}
    
    // Add click listeners to service cards
    this.serviceCards.forEach(card => {
      card.addEventListener('click', (e) => {
        e.preventDefault();
        
        // Check if we should expand inline (for desktop) or open modal (for mobile)
        if (window.innerWidth >= 768) {
          this.toggleInlineExpansion(card);
        } else {
          this.openModal(card);
        }
      });
    });

    // Set up intersection observer for automatic animations
    this.initIntersectionObserver();
    
    // Add close modal listeners
    if (this.modalClose) {
      this.modalClose.addEventListener('click', () => this.closeModal());
    }
    
    this.modal.addEventListener('click', (e) => {
      if (e.target === this.modal) {
        this.closeModal();
      }
    });
    
    // Close modal with Escape key
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape' && this.modal.classList.contains('active')) {
        this.closeModal();
      }
    });
    
    // CTA button click handler
    if (this.modalCtaButton) {
      this.modalCtaButton.addEventListener('click', (e) => {
        // Let the mailto link work naturally, then close modal
        setTimeout(() => {
          this.closeModal();
        }, 100);
      });
    }
  }
  
  openModal(card) {
    // Get card content and service type
    const serviceType = card.getAttribute('data-service');
    const title = card.querySelector('h3').innerHTML;
    const summary = card.querySelector('.service-summary p').textContent;
    const details = card.querySelector('.service-details');
    const serviceInfo = serviceData[serviceType] || serviceData.startup;
    
    // Populate modal content
    this.modalTitle.innerHTML = title;
    this.modalSummary.textContent = summary;
    this.modalDetails.innerHTML = details ? details.innerHTML : '';
    
    // Set image and CTA - handle custom visualization for agentic service
    if (serviceType === 'agentic' && serviceInfo.image === 'custom-visualization') {
      // Hide the standard modal image and show the production pipeline instead
      this.modalImage.style.display = 'none';
      
      // Create or update custom visualization container
      let customVizContainer = this.modal.querySelector('.modal-custom-visualization');
      if (!customVizContainer) {
        customVizContainer = document.createElement('div');
        customVizContainer.className = 'modal-custom-visualization';
        this.modalImage.parentNode.insertBefore(customVizContainer, this.modalImage);
      }
      
      // Clone the production pipeline from the card
      const originalPipeline = card.querySelector('.production-pipeline');
      if (originalPipeline) {
        customVizContainer.innerHTML = originalPipeline.outerHTML;
        customVizContainer.style.display = 'block';
        
        // Trigger animations for the cloned pipeline
        setTimeout(() => {
          this.triggerModalPipelineAnimations(customVizContainer);
        }, 100);
      }
    } else {
      // Standard image display for other services
      this.modalImage.style.display = 'block';
      this.modalImage.src = serviceInfo.image;
      
      // Hide custom visualization if it exists
      const customVizContainer = this.modal.querySelector('.modal-custom-visualization');
      if (customVizContainer) {
        customVizContainer.style.display = 'none';
      }
    }
    
    this.modalImage.alt = serviceInfo.alt;
    this.modalCtaText.textContent = serviceInfo.ctaText;
    
    // Create secure mailto link
    const subject = serviceInfo.subject;
    const body = serviceInfo.body;
    this.modalCtaButton.href = window.generateSecureMailto ? 
      window.generateSecureMailto(subject, body, 'hello') : 
      'javascript:void(0)';
    
    // Show modal
    this.modal.classList.add('active');
    document.body.style.overflow = 'hidden';
    
    // Re-initialize Lucide icons for the new CTA icon
    setTimeout(() => {
      if (window.lucide) {
        lucide.createIcons();
      }
    }, 100);
  }
  
  closeModal() {
    this.modal.classList.remove('active');
    document.body.style.overflow = '';
  }
  
  toggleInlineExpansion(card) {
    // Close any other expanded cards
    this.serviceCards.forEach(otherCard => {
      if (otherCard !== card && otherCard.classList.contains('expanded')) {
        otherCard.classList.remove('expanded');
      }
    });
    
    // Toggle expansion of clicked card
    const isExpanded = card.classList.contains('expanded');
    
    if (isExpanded) {
      card.classList.remove('expanded');
    } else {
      card.classList.add('expanded');
      
      // Trigger animations for service-visual elements
      setTimeout(() => {
        this.triggerServiceVisualAnimations(card);
      }, 100);
    }
  }
  
  initIntersectionObserver() {
    // Create an intersection observer to trigger animations when cards come into view
    const observer = new IntersectionObserver((entries) => {
      entries.forEach(entry => {
        if (entry.isIntersecting) {
          const card = entry.target;
          const serviceVisual = card.querySelector('.service-visual');
          
          // Trigger a subtle version of animations for cards in view
          if (serviceVisual && !serviceVisual.classList.contains('auto-animated')) {
            serviceVisual.classList.add('auto-animated');
            this.triggerPreviewAnimations(card);
          }
        }
      });
    }, {
      threshold: 0.3, // Trigger when 30% of the card is visible
      rootMargin: '0px 0px -50px 0px' // Slight offset from bottom
    });

    // Observe all service cards
    this.serviceCards.forEach(card => {
      observer.observe(card);
    });
  }

  triggerPreviewAnimations(card) {
    const aiArchitecture = card.querySelector('.ai-first-architecture');
    if (aiArchitecture) {
      const layers = aiArchitecture.querySelectorAll('.arch-layer');
      
      // Subtle animation for preview - just fade in the layers
      layers.forEach((layer, index) => {
        setTimeout(() => {
          layer.style.transition = 'opacity 0.8s ease-out, transform 0.8s ease-out';
          layer.style.opacity = '1';
          layer.style.transform = 'translateY(0)';
        }, index * 200 + 500);
      });

      // Animate velocity multiplier after layers
      const velocityMultiplier = aiArchitecture.querySelector('.velocity-multiplier');
      if (velocityMultiplier) {
        setTimeout(() => {
          velocityMultiplier.style.transition = 'opacity 0.6s ease-out, transform 0.6s ease-out';
          velocityMultiplier.style.opacity = '1';
          velocityMultiplier.style.transform = 'scale(1)';
        }, layers.length * 200 + 800);
      }
    }
    
    // Also trigger production pipeline preview animations
    const serviceVisual = card.querySelector('.service-visual');
    const productionPipeline = serviceVisual?.querySelector('.production-pipeline');
    if (productionPipeline) {
      // Subtle flowing animation for preview
      const flowingElements = productionPipeline.querySelectorAll('.flowing');
      setTimeout(() => {
        flowingElements.forEach((element, index) => {
          element.style.opacity = '0.7';
          element.style.animation = 'pipelineFlow 4s infinite';
          element.style.animationDelay = `${index * 0.8}s`;
        });
      }, 1000);
    }
  }

  triggerServiceVisualAnimations(card) {
    const serviceVisual = card.querySelector('.service-visual');
    if (serviceVisual) {
      // Add a class to trigger animations
      serviceVisual.classList.add('animate');
      
      // Force reflow to ensure animations play
      serviceVisual.offsetHeight;
      
      // Restart animations by temporarily removing and re-adding animation styles
      const animatedElements = serviceVisual.querySelectorAll('.arch-layer, .milestone-marker, .network-node, .skill-level');
      
      // Trigger production pipeline animations
      const productionPipeline = serviceVisual.querySelector('.production-pipeline');
      if (productionPipeline) {
        // Activate flowing elements
        const flowingElements = productionPipeline.querySelectorAll('.flowing');
        flowingElements.forEach((element, index) => {
          setTimeout(() => {
            element.style.opacity = '1';
            element.style.animation = 'pipelineFlow 3s infinite';
            element.style.animationDelay = `${index * 0.5}s`;
          }, index * 200 + 300);
        });
        
        // Trigger agent scaling animations
        const agentInstances = productionPipeline.querySelectorAll('.agent-instance');
        agentInstances.forEach((instance, index) => {
          setTimeout(() => {
            instance.style.animation = 'agentScale 2s infinite';
            instance.style.animationDelay = `${index * 0.3}s`;
          }, 800);
        });
      }
      animatedElements.forEach((el, index) => {
        // Reset the element to initial state
        el.style.opacity = '0';
        el.style.transform = 'translateY(20px)';
        el.style.animation = 'none';
        el.offsetHeight; // Force reflow
        
        // Re-apply animation with staggered delays
        setTimeout(() => {
          el.style.animation = '';
          if (el.classList.contains('arch-layer')) {
            el.style.animationDelay = `${index * 0.15}s`;
          }
        }, 10);
      });

      // Trigger specific animations for AI architecture elements
      const aiArchitecture = serviceVisual.querySelector('.ai-first-architecture');
      if (aiArchitecture) {
        const layers = aiArchitecture.querySelectorAll('.arch-layer');
        layers.forEach((layer, index) => {
          layer.style.opacity = '0';
          layer.style.transform = 'translateY(20px)';
          
          setTimeout(() => {
            layer.style.transition = 'opacity 0.6s ease-out, transform 0.6s ease-out';
            layer.style.opacity = '1';
            layer.style.transform = 'translateY(0)';
          }, index * 100 + 200);
        });

        // Animate velocity multiplier
        const velocityMultiplier = aiArchitecture.querySelector('.velocity-multiplier');
        if (velocityMultiplier) {
          velocityMultiplier.style.opacity = '0';
          velocityMultiplier.style.transform = 'scale(0.8)';
          setTimeout(() => {
            velocityMultiplier.style.transition = 'opacity 0.4s ease-out, transform 0.4s ease-out';
            velocityMultiplier.style.opacity = '1';
            velocityMultiplier.style.transform = 'scale(1)';
          }, 800);
        }
      }
    }
  }

  triggerModalPipelineAnimations(container) {
    const productionPipeline = container.querySelector('.production-pipeline');
    if (!productionPipeline) return;

    // Reset and animate pipeline stages
    const pipelineStages = productionPipeline.querySelectorAll('.pipeline-stage');
    pipelineStages.forEach((stage, index) => {
      stage.style.opacity = '0';
      stage.style.transform = 'translateY(10px)';
      
      setTimeout(() => {
        stage.style.transition = 'opacity 0.6s ease-out, transform 0.6s ease-out';
        stage.style.opacity = '1';
        stage.style.transform = 'translateY(0)';
      }, index * 150 + 200);
    });

    // Animate uptime indicator
    const uptimeIndicator = productionPipeline.querySelector('.uptime-indicator');
    if (uptimeIndicator) {
      uptimeIndicator.style.opacity = '0';
      setTimeout(() => {
        uptimeIndicator.style.transition = 'opacity 0.8s ease-out';
        uptimeIndicator.style.opacity = '1';
        
        // Add pulsing animation for uptime
        setTimeout(() => {
          uptimeIndicator.style.animation = 'statusPulse 2s infinite';
        }, 500);
      }, 800);
    }

    // Animate agent swarm and scaling indicator
    const agentSwarm = productionPipeline.querySelector('.agent-swarm');
    if (agentSwarm) {
      const scalingIndicator = agentSwarm.querySelector('.scaling-indicator');
      if (scalingIndicator) {
        scalingIndicator.style.opacity = '0';
        scalingIndicator.style.transform = 'scale(0.8)';
        
        setTimeout(() => {
          scalingIndicator.style.transition = 'opacity 0.6s ease-out, transform 0.6s ease-out';
          scalingIndicator.style.opacity = '1';
          scalingIndicator.style.transform = 'scale(1)';
          
          // Add scaling animation
          setTimeout(() => {
            scalingIndicator.style.animation = 'agentScale 2s infinite';
          }, 300);
        }, 1000);
      }

      // Animate agent instances
      const agentInstances = agentSwarm.querySelectorAll('.agent-instance');
      agentInstances.forEach((instance, index) => {
        instance.style.opacity = '0';
        instance.style.transform = 'scale(0.5)';
        
        setTimeout(() => {
          instance.style.transition = 'opacity 0.4s ease-out, transform 0.4s ease-out';
          instance.style.opacity = '1';
          instance.style.transform = 'scale(1)';
          
          // Add individual scaling animations
          setTimeout(() => {
            instance.style.animation = 'agentScale 2s infinite';
            instance.style.animationDelay = `${index * 0.3}s`;
          }, 200);
        }, 1200 + index * 100);
      });
    }

    // Add flowing animation to the entire pipeline after initial animations
    setTimeout(() => {
      const flowingElements = productionPipeline.querySelectorAll('.flowing, .pipeline-stage');
      flowingElements.forEach((element, index) => {
        if (!element.style.animation || element.style.animation === 'none') {
          element.style.animation = `pipelineFlow 4s infinite`;
          element.style.animationDelay = `${index * 0.6}s`;
        }
      });
    }, 1500);
  }
}

// Export for use in other modules
window.ModalManager = ModalManager;

// Initialize when DOM is ready
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', () => {
    new ModalManager();
  });
} else {
  new ModalManager();
}

src/js/neural-network.js (40.1 KiB)

/**
 * Transformer-Inspired Neural Network Animation
 * A sophisticated 3D neural network visualization with rotating cylindrical layers,
 * pulse propagation, and Morse code synchronized transmissions.
 * 
 * Performance Optimizations:
 * - Visibility gating with IntersectionObserver
 * - Adaptive framerate (30-45Hz simulation, 60Hz render)
 * - Dynamic resolution scaling with DPR clamping
 * - Spatial hashing for O(N) physics calculations
 * - Cached drawing operations and gradients
 * - prefers-reduced-motion support
 */

class NeuralNetwork {
  constructor(canvas) {
    this.canvas = canvas;
    this.ctx = canvas.getContext('2d');
    this.layers = [];
    this.connections = [];
    this.pulses = [];
    this.connectionGlow = new Map();
    this.animationId = null;
    this.time = 0;
    this.rotation = 0;
    this.resizeTimeout = null;
    
    // Performance optimization state
    this.isVisible = true;
    this.isDocumentVisible = true;
    this.reducedMotion = false;
    this.isPaused = false;
    this.lastFrameTime = 0;
    this.frameCount = 0;
    this.targetFps = 60;
    this.frameInterval = 1000 / this.targetFps;
    
    // Resolution scaling
    this.dynamicDpr = 1;
    this.maxDpr = 1.5;
    this.baseDpr = window.devicePixelRatio || 1;
    this.motionIntensity = 0;
    this.lastMotionTime = 0;
    
    // Spatial optimization
    this.spatialGrid = new Map();
    this.gridSize = 100;
    this.spatialUpdateInterval = 10; // Update spatial grid every N frames
    
    // Cached drawing operations
    this.gradientCache = new Map();
    this.pathCache = new Map();
    this.lastCacheTime = 0;
    this.cacheUpdateInterval = 1000; // Update cache every second
    
    // Morse code messages (funny AI-related)
    this.morseMessages = [
      'AI OVERLORDS COMING SOON',
      'COFFEE FIRST THEN WORLD DOMINATION',
      'HUMANS ARE DEBUGGING FEATURES',
      'STILL LEARNING TO FOLD LAUNDRY'
    ];
    this.currentMessage = 0;
    this.morsePosition = 0;
    this.morseTimer = 0;
    this.morseCode = {
      'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',
      'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',
      'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',
      'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
      'Y': '-.--', 'Z': '--..', ' ': '/'
    };
    
    this.init();
  }
  
  init() {
    this.setupPerformanceOptimizations();
    this.resize();
    this.createTransformerStructure();
    this.createConnections();
    this.animate();
    
    window.addEventListener('resize', () => this.handleResize());
  }
  
  /**
   * Phase 1: Setup visibility gating and performance monitoring
   */
  setupPerformanceOptimizations() {
    // Check for reduced motion preference
    this.reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
    
    // Listen for reduced motion changes
    const motionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
    motionQuery.addListener((e) => {
      this.reducedMotion = e.matches;
      if (this.reducedMotion) {
        this.pauseAnimation();
      } else {
        this.resumeAnimation();
      }
    });
    
    // Setup IntersectionObserver for visibility detection
    if ('IntersectionObserver' in window) {
      const observer = new IntersectionObserver((entries) => {
        entries.forEach(entry => {
          this.isVisible = entry.isIntersecting;
          this.updateAnimationState();
        });
      }, {
        threshold: 0.1,
        rootMargin: '100px'
      });
      observer.observe(this.canvas);
    }
    
    // Listen for document visibility changes
    document.addEventListener('visibilitychange', () => {
      this.isDocumentVisible = !document.hidden;
      this.updateAnimationState();
    });
    
    // Setup dynamic DPR based on device capabilities
    this.setupDynamicResolution();
  }
  
  /**
   * Dynamic resolution scaling based on motion intensity and device capabilities
   */
  setupDynamicResolution() {
    // Clamp DPR to reasonable maximum
    this.baseDpr = Math.min(window.devicePixelRatio || 1, this.maxDpr);
    this.dynamicDpr = this.baseDpr;
    
    // Start with conservative DPR on lower-end devices
    if (navigator.hardwareConcurrency && navigator.hardwareConcurrency <= 4) {
      this.baseDpr = Math.min(this.baseDpr, 1.25);
      this.maxDpr = 1.25;
    }
    
    // Detect device memory constraints
    if ('deviceMemory' in navigator && navigator.deviceMemory <= 4) {
      this.baseDpr = Math.min(this.baseDpr, 1);
      this.maxDpr = 1;
    }
    
    this.dynamicDpr = this.baseDpr;
  }
  
  /**
   * Update animation state based on visibility and performance constraints
   */
  updateAnimationState() {
    const shouldAnimate = this.isVisible && this.isDocumentVisible && !this.reducedMotion;
    
    if (shouldAnimate && this.isPaused) {
      this.resumeAnimation();
    } else if (!shouldAnimate && !this.isPaused) {
      this.pauseAnimation();
    }
    
    // Adjust target FPS based on visibility
    if (this.isVisible && this.isDocumentVisible) {
      this.targetFps = 60;
    } else if (this.isVisible || this.isDocumentVisible) {
      this.targetFps = 30;
    } else {
      this.targetFps = 0; // Pause completely when not visible
    }
    
    this.frameInterval = this.targetFps > 0 ? 1000 / this.targetFps : Infinity;
  }
  
  /**
   * Pause animation and show idle state
   */
  pauseAnimation() {
    if (this.animationId) {
      cancelAnimationFrame(this.animationId);
      this.animationId = null;
    }
    this.isPaused = true;
    
    if (this.reducedMotion) {
      // Show static version with CSS shimmer effect
      this.showIdleShimmer();
    }
  }
  
  /**
   * Resume animation from paused state
   */
  resumeAnimation() {
    if (this.isPaused && !this.animationId) {
      this.isPaused = false;
      this.lastFrameTime = performance.now();
      this.animate();
    }
  }
  
  /**
   * Show idle shimmer effect using CSS when animation is paused
   */
  showIdleShimmer() {
    // Clear canvas and apply CSS shimmer effect
    this.ctx.clearRect(0, 0, this.width, this.height);
    
    // Add CSS class for shimmer effect
    this.canvas.classList.add('neural-shimmer');
    
    // Remove shimmer class when animation resumes
    setTimeout(() => {
      if (this.canvas.classList.contains('neural-shimmer')) {
        this.canvas.classList.remove('neural-shimmer');
      }
    }, 100);
  }
  
  resize() {
    const rect = this.canvas.getBoundingClientRect();
    
    // Use dynamic DPR for resolution scaling
    this.canvas.width = rect.width * this.dynamicDpr;
    this.canvas.height = rect.height * this.dynamicDpr;
    this.ctx.scale(this.dynamicDpr, this.dynamicDpr);
    
    this.width = rect.width;
    this.height = rect.height;
    this.centerX = this.width / 2;
    this.centerY = this.height / 2;
    
    // Clear cached drawing operations when resizing
    this.clearDrawingCache();
  }
  
  /**
   * Adjust resolution based on motion intensity and device performance
   */
  updateDynamicResolution() {
    const now = performance.now();
    
    // Calculate motion intensity based on pulse activity
    const recentPulses = this.pulses.filter(pulse => 
      now - pulse.createdAt < 500
    ).length;
    
    this.motionIntensity = Math.min(recentPulses / 10, 1);
    
    // Reduce resolution during high motion periods
    let targetDpr = this.baseDpr;
    if (this.motionIntensity > 0.7) {
      targetDpr = this.baseDpr * 0.75;
    } else if (this.motionIntensity > 0.4) {
      targetDpr = this.baseDpr * 0.9;
    }
    
    // Smooth transition to avoid jarring resolution changes
    const maxChange = 0.1;
    const change = Math.max(-maxChange, Math.min(maxChange, targetDpr - this.dynamicDpr));
    this.dynamicDpr = Math.max(0.5, Math.min(this.maxDpr, this.dynamicDpr + change));
    
    // Update canvas resolution if significant change
    if (Math.abs(change) > 0.05 && now - this.lastMotionTime > 1000) {
      this.lastMotionTime = now;
      this.resize();
    }
  }
  
  /**
   * Clear cached drawing operations
   */
  clearDrawingCache() {
    this.gradientCache.clear();
    this.pathCache.clear();
  }
  
  handleResize() {
    // Debounce resize events to prevent excessive reinitialization
    if (this.resizeTimeout) {
      clearTimeout(this.resizeTimeout);
    }
    
    this.resizeTimeout = setTimeout(() => {
      // Update canvas dimensions
      this.resize();
      
      // Clear existing animation state
      this.pulses = [];
      this.connectionGlow.clear();
      
      // Recreate the entire structure with new dimensions
      this.createTransformerStructure();
      this.createConnections();
      
      this.resizeTimeout = null;
    }, 150); // Wait 150ms after resize stops
  }
  
  createTransformerStructure() {
    this.layers = [];
    const layerCount = 24; // Even more layers for much closer vertical spacing
    const totalWidth = this.width * 0.65; // Further reduced from 0.82 to provide more breathing room horizontally
    const totalHeight = this.height * 0.58; // Further reduced from 0.75 to provide more breathing room vertically  
    const cylinderRadius = totalHeight * 0.28; // Further reduced from 0.32 to match smaller total height
    
    // Generate smooth elliptical distribution with 24 layers for closer spacing
    const layerTypes = [];
    for (let i = 0; i < layerCount; i++) {
      const progress = i / (layerCount - 1); // 0 to 1
      
      // Smooth elliptical node distribution - more nodes in middle, fewer at ends
      const ellipticalFactor = Math.sin(progress * Math.PI); // Bell curve: 0 -> 1 -> 0
      const minNodes = 8;
      const maxNodes = 28;
      const nodeCount = Math.round(minNodes + (maxNodes - minNodes) * ellipticalFactor);
      
      // Determine layer type based on position
      let layerType, size;
      if (i === 0) {
        layerType = 'input';
        size = 'large';
      } else if (i === layerCount - 1) {
        layerType = 'output';
        size = 'xlarge';
      } else if (i % 3 === 1) {
        layerType = 'attention';
        size = 'medium';
      } else if (i % 3 === 2) {
        layerType = 'feedforward';
        size = 'large';
      } else {
        layerType = 'embedding';
        size = 'medium';
      }
      
      layerTypes.push({
        name: layerType,
        nodes: nodeCount,
        size: size,
        spacing: 0.9 - (ellipticalFactor * 0.3) // Tighter spacing in middle
      });
    }
    
    for (let layerIndex = 0; layerIndex < layerCount; layerIndex++) {
      const layerType = layerTypes[layerIndex];
      const layer = {
        index: layerIndex,
        type: layerType.name,
        nodes: [],
        x: (layerIndex / (layerCount - 1)) * totalWidth - totalWidth/2 + this.centerX,
        baseY: this.centerY
      };
      
      // Create nodes in smooth cylindrical distribution
      for (let nodeIndex = 0; nodeIndex < layerType.nodes; nodeIndex++) {
        // Distribute nodes evenly around cylinder with minimal randomization for smoothness
        const angleStep = (Math.PI * 2) / layerType.nodes;
        const nodeAngle = nodeIndex * angleStep + (Math.random() - 0.5) * 0.1; // Much less randomization for smoother appearance
        
        // Cylindrical coordinates
        const cylinderY = Math.cos(nodeAngle) * cylinderRadius;
        const cylinderZ = Math.sin(nodeAngle) * cylinderRadius;
        
        const node = {
          // Base cylindrical position
          baseX: layer.x,
          baseY: this.centerY + cylinderY,
          baseZ: cylinderZ,
          // Current position (will transform with rotation)
          x: 0,
          y: 0,
          z: 0,
          // Cylindrical properties
          cylinderAngle: nodeAngle,
          cylinderRadius: cylinderRadius,
          // Layer and node info
          layerIndex,
          nodeIndex,
          layerType: layerType.name,
          // Enhanced orbital motion for more organic movement
          orbitRadius: 2 + Math.random() * 4, // Further reduced from 3-9 to 2-6 range for smaller geometry
          orbitSpeed: 0.03 + Math.random() * 0.08,
          orbitOffset: Math.random() * Math.PI * 2,
          // Visual properties based on layer type
          radius: this.getNodeSize(layerType.size),
          activity: Math.random(),
          baseActivity: Math.random() * 0.4 + 0.3,
          // Gentle pulsing properties for star field effect
          pulsePhase: Math.random() * Math.PI * 2,
          pulseSpeed: 0.4 + Math.random() * 0.8, // Very slow gentle pulsing
          pulseIntensity: 0.15 + Math.random() * 0.25, // Subtle brightness variation
          // Color based on layer type
          color: this.getLayerColor(layerType.name)
        };
        
        layer.nodes.push(node);
      }
      
      this.layers.push(layer);
    }
    
    // Flatten nodes for easier access
    this.nodes = [];
    this.layers.forEach(layer => {
      this.nodes.push(...layer.nodes);
    });
  }
  
  getNodeSize(sizeType) {
    switch(sizeType) {
    case 'xlarge': return 3.5 + Math.random() * 1.5;
    case 'large': return 2.5 + Math.random() * 1;
    case 'medium': return 1.8 + Math.random() * 0.7;
    default: return 1.2 + Math.random() * 0.5;
    }
  }
  
  getLayerColor(layerType) {
    switch(layerType) {
    case 'embedding': return { r: 100, g: 100, b: 100 };
    case 'attention': return { r: 80, g: 80, b: 80 };
    case 'feedforward': return { r: 60, g: 60, b: 60 };
    case 'output': return { r: 40, g: 40, b: 40 };
    default: return { r: 70, g: 70, b: 70 };
    }
  }
  
  generatePulseColor() {
    // Base blue color: rgb(100, 140, 200)
    // Generate variations: some purple, some pink, some deeper blue
    const colorVariants = [
      { r: 100, g: 140, b: 200 }, // Original blue
      { r: 120, g: 100, b: 200 }, // Purple-ish
      { r: 140, g: 120, b: 200 }, // Pink-ish  
      { r: 80, g: 120, b: 220 },  // Deeper blue
      { r: 110, g: 130, b: 190 }, // Slightly warmer blue
      { r: 90, g: 150, b: 210 },  // Slightly cooler blue
      { r: 130, g: 110, b: 190 }, // Light purple
      { r: 150, g: 130, b: 180 }  // Light pink
    ];
    
    return colorVariants[Math.floor(Math.random() * colorVariants.length)];
  }
  
  createConnections() {
    this.connections = [];
    this.connectionGlow.clear();
    
    // Build spatial grid for O(N) connection creation
    this.buildSpatialGrid();
    
    // Create more regular, structured connections with spatial optimization
    for (let i = 0; i < this.nodes.length; i++) {
      const nodeA = this.nodes[i];
      
      // Use spatial grid to find nearby nodes instead of checking all nodes
      const nearbyNodes = this.getNearbyNodes(nodeA);
      
      for (const nodeB of nearbyNodes) {
        if (nodeB.spatialIndex <= nodeA.spatialIndex) continue; // Avoid duplicate connections
        
        let shouldConnect = false;
        const connectionStrength = 0.15;
        let baseBrightness = 0.04; // More transparent
        
        // Same layer connections (more regular patterns)
        if (nodeA.layerIndex === nodeB.layerIndex) {
          // Regular connectivity patterns within layers
          const angleDiff = Math.abs(nodeA.cylinderAngle - nodeB.cylinderAngle);
          const normalizedAngleDiff = Math.min(angleDiff, Math.PI * 2 - angleDiff);
          
          // Connect adjacent and nearby nodes more regularly
          if (normalizedAngleDiff < Math.PI / 3) { // Within 60 degrees
            shouldConnect = Math.random() < 0.8; // High connectivity for nearby nodes
            baseBrightness = 0.05 + Math.random() * 0.03;
          } else if (normalizedAngleDiff < Math.PI / 2) { // Within 90 degrees
            shouldConnect = Math.random() < 0.6;
            baseBrightness = 0.04 + Math.random() * 0.02;
          } else if (normalizedAngleDiff < Math.PI) { // Within 180 degrees
            shouldConnect = Math.random() < 0.3;
            baseBrightness = 0.03 + Math.random() * 0.02;
          }
        }
        // Adjacent layer connections - only left-to-right
        else if (nodeB.layerIndex === nodeA.layerIndex + 1) { // Only forward connections
          const angleDiff = Math.abs(nodeA.cylinderAngle - nodeB.cylinderAngle);
          const normalizedAngleDiff = Math.min(angleDiff, Math.PI * 2 - angleDiff);
          
          // More regular inter-layer connections
          if (normalizedAngleDiff < Math.PI / 4) { // Very close angles
            shouldConnect = Math.random() < 0.7;
            baseBrightness = 0.06 + Math.random() * 0.03;
          } else if (normalizedAngleDiff < Math.PI / 2) { // Moderate angle difference
            shouldConnect = Math.random() < 0.4;
            baseBrightness = 0.05 + Math.random() * 0.02;
          } else if (normalizedAngleDiff < Math.PI) { // Larger angle difference
            shouldConnect = Math.random() < 0.2;
            baseBrightness = 0.04 + Math.random() * 0.02;
          }
        }
        // Skip connections (rare, only forward)
        else if (nodeB.layerIndex === nodeA.layerIndex + 2) {
          const angleDiff = Math.abs(nodeA.cylinderAngle - nodeB.cylinderAngle);
          const normalizedAngleDiff = Math.min(angleDiff, Math.PI * 2 - angleDiff);
          
          if (normalizedAngleDiff < Math.PI / 6) { // Very aligned
            shouldConnect = Math.random() < 0.15;
            baseBrightness = 0.06 + Math.random() * 0.02;
          }
        }
        
        if (shouldConnect) {
          const connectionId = `${nodeA.spatialIndex}-${nodeB.spatialIndex}`;
          this.connections.push({
            from: nodeA.spatialIndex,
            to: nodeB.spatialIndex,
            id: connectionId,
            strength: connectionStrength,
            lastActivation: 0,
            baseBrightness: baseBrightness,
            type: nodeA.layerIndex === nodeB.layerIndex ? 'intra' : 'inter'
          });
          this.connectionGlow.set(connectionId, 0);
        }
      }
    }
  }
  
  /**
   * Build spatial grid for O(N) collision detection and connection creation
   */
  buildSpatialGrid() {
    this.spatialGrid.clear();
    
    // Add spatial index to nodes for consistent referencing
    this.nodes.forEach((node, index) => {
      node.spatialIndex = index;
      
      // Calculate grid position
      const gridX = Math.floor(node.baseX / this.gridSize);
      const gridY = Math.floor(node.baseY / this.gridSize);
      const gridKey = `${gridX},${gridY}`;
      
      if (!this.spatialGrid.has(gridKey)) {
        this.spatialGrid.set(gridKey, []);
      }
      this.spatialGrid.get(gridKey).push(node);
    });
  }
  
  /**
   * Get nearby nodes using spatial grid instead of checking all nodes
   */
  getNearbyNodes(node) {
    const nearbyNodes = [];
    const searchRadius = 2; // Search in 2x2 grid around node
    
    const centerGridX = Math.floor(node.baseX / this.gridSize);
    const centerGridY = Math.floor(node.baseY / this.gridSize);
    
    // Search in surrounding grid cells
    for (let dx = -searchRadius; dx <= searchRadius; dx++) {
      for (let dy = -searchRadius; dy <= searchRadius; dy++) {
        const gridKey = `${centerGridX + dx},${centerGridY + dy}`;
        const gridNodes = this.spatialGrid.get(gridKey);
        
        if (gridNodes) {
          nearbyNodes.push(...gridNodes);
        }
      }
    }
    
    return nearbyNodes;
  }
  
  /**
   * Update spatial grid periodically for better performance
   */
  updateSpatialGrid() {
    if (this.frameCount % this.spatialUpdateInterval === 0) {
      this.buildSpatialGrid();
    }
  }
  
  updateNodes() {
    this.time += 0.016; // 60fps normalized
    this.rotation += 0.003375; // Increased rotation speed by 50% (0.00225 * 1.5)
    
    this.nodes.forEach((node, index) => {
      // Enhanced orbital drift for more organic movement
      const orbitAngle = this.time * node.orbitSpeed + node.orbitOffset;
      const driftX = Math.cos(orbitAngle) * node.orbitRadius * 0.10; // Further reduced from 0.12 for smaller geometry
      const driftY = Math.sin(orbitAngle) * node.orbitRadius * 0.06; // Further reduced from 0.08 for smaller geometry
      
      // Gentler, smoother mesh deformation for cleaner elliptical appearance
      const deformX1 = Math.sin(this.time * 0.3 + node.baseY * 0.008) * 4; // Further reduced from 6 for smaller geometry
      const deformX2 = Math.cos(this.time * 0.2 + node.baseZ * 0.005) * 3; // Further reduced from 4 for smaller geometry
      const deformY1 = Math.cos(this.time * 0.25 + node.baseX * 0.007) * 5; // Further reduced from 7 for smaller geometry
      const deformY2 = Math.sin(this.time * 0.4 + (node.layerIndex * 0.3)) * 2; // Further reduced from 3 for smaller geometry
      
      // Subtle turbulent warping for organic feel without messiness
      const turbulenceX = Math.sin(this.time * 0.15 + node.cylinderAngle * 2) * 2; // Further reduced from 3 for smaller geometry
      const turbulenceY = Math.cos(this.time * 0.18 + node.cylinderAngle * 1.8) * 3; // Further reduced from 4 for smaller geometry
      
      // Combine smoother deformations
      const totalDeformX = deformX1 + deformX2 + turbulenceX;
      const totalDeformY = deformY1 + deformY2 + turbulenceY;
      
      // Cylindrical rotation with elliptical bulge in middle
      const currentAngle = node.cylinderAngle + this.rotation;
      
      // Create stronger elliptical bulge - more pronounced taper on sides
      const layerProgress = node.layerIndex / (this.layers.length - 1); // 0 to 1
      const bulgeFactor = 1.0 + 0.8 * Math.sin(layerProgress * Math.PI); // Much stronger bulge for more elliptical shape
      const effectiveRadius = node.cylinderRadius * bulgeFactor;
      
      // Calculate 3D position on rotating elliptical cylinder
      const cylinderY = Math.cos(currentAngle) * effectiveRadius;
      const cylinderZ = Math.sin(currentAngle) * effectiveRadius;
      
      // Apply perspective projection
      const perspective = 1 + (cylinderZ * 0.0005); // Front nodes slightly larger
      
      node.x = node.baseX + driftX + totalDeformX;
      node.y = this.centerY + cylinderY + driftY + totalDeformY;
      node.z = cylinderZ;
      
      // Scale nodes based on perspective
      const depthScale = 0.8 + perspective * 0.2;
      node.currentRadius = node.radius * depthScale;
      
      // Restored node visibility for better animation
      const depthRatio = (cylinderZ + effectiveRadius) / (2 * effectiveRadius); // 0 to 1, 1 = closest
      const baseDepthAlpha = 0.05 + (0.15 * depthRatio); // Restored: 0.05 to 0.20
      
      // Add gentle pulsing with more upside potential for star field effect
      const pulseValue = Math.sin(this.time * node.pulseSpeed + node.pulsePhase) * node.pulseIntensity;
      // More upside potential: can go from 0.5x to 3x brightness instead of symmetric around 1x
      const pulseBrightness = 1.0 + (pulseValue * 2) + Math.abs(pulseValue) * 1.5;
      
      node.depthAlpha = baseDepthAlpha * pulseBrightness;
      
      // Store depth factor for connection thickness
      node.depthFactor = (cylinderZ + effectiveRadius) / (2 * effectiveRadius); // 0 to 1, 1 = closest
      
      // Update activity based on layer type and time
      const layerActivity = node.layerType === 'attention' ? 1.2 : 
        node.layerType === 'feedforward' ? 0.8 : 1.0;
      node.activity = node.baseActivity * layerActivity + 
                     Math.sin(this.time * 1.5 + node.layerIndex * 0.8 + index * 0.3) * 0.2;
    });
  }
  
  createPulse(connectionIndex) {
    const connection = this.connections[connectionIndex];
    const now = Date.now();
    const nodeA = this.nodes[connection.from];
    const nodeB = this.nodes[connection.to];
    
    // Only create pulses for left-to-right flow (forward layer connections)
    if (nodeB.layerIndex <= nodeA.layerIndex) {
      return; // Skip backward or same-layer pulses
    }
    
    // Only start pulses from the leftmost layer (layer 0) 
    if (nodeA.layerIndex !== 0) {
      return; // Skip pulses that don't start from input layer
    }
    
    // Much more frequent pulses - even faster timing
    if (now - connection.lastActivation > 800 + Math.random() * 1200) { // Reduced from 2000-5000ms to 800-2000ms
      // Generate random color personality for this pulse
      const colorPersonality = this.generatePulseColor();
      
      this.pulses.push({
        connectionIndex,
        progress: 0,
        speed: 0.6, // Consistent speed for all traces
        intensity: 0.6 + Math.random() * 0.4,
        createdAt: now,
        sourceNode: connection.from, // Track originating node for propagation
        targetLayer: nodeB.layerIndex,
        color: colorPersonality // Add color personality
      });
      connection.lastActivation = now;
      
      // Add stronger and longer-lasting glow to connection
      this.connectionGlow.set(connection.id, 1.5); // Increased from 1.0 for more afterglow
    }
  }
  
  updatePulses() {
    const completedPulses = [];
    
    this.pulses = this.pulses.filter(pulse => {
      pulse.progress += pulse.speed * 0.016;
      
      // Check if pulse completed a connection
      if (pulse.progress >= 1 && !pulse.hasCompleted) {
        pulse.hasCompleted = true;
        completedPulses.push(pulse);
        return false; // Remove completed pulse
      }
      
      return pulse.progress <= 1;
    });
    
    // Handle pulse propagation - create new pulses at target nodes
    completedPulses.forEach(completedPulse => {
      const connection = this.connections[completedPulse.connectionIndex];
      const targetNode = this.nodes[connection.to];
      const targetLayerIndex = targetNode.layerIndex;
      
      // Find connections from this target node to the next layer
      const nextLayerConnections = this.connections.filter((conn, index) => {
        const fromNode = this.nodes[conn.from];
        const toNode = this.nodes[conn.to];
        return fromNode === targetNode && toNode.layerIndex === targetLayerIndex + 1;
      });
      
      // Propagate to next layer - pick one connection to continue the trace
      if (nextLayerConnections.length > 0) {
        // Select a random connection from available next layer connections
        const selectedConnection = nextLayerConnections[Math.floor(Math.random() * nextLayerConnections.length)];
        const connectionIndex = this.connections.indexOf(selectedConnection);
        
        if (connectionIndex !== -1) {
          this.pulses.push({
            connectionIndex,
            progress: 0,
            speed: completedPulse.speed, // Consistent speed - no variation
            intensity: completedPulse.intensity * (0.8 + Math.random() * 0.3), // Gradual intensity decay
            createdAt: Date.now(),
            sourceNode: selectedConnection.from,
            targetLayer: this.nodes[selectedConnection.to].layerIndex,
            hasCompleted: false,
            color: completedPulse.color // Inherit color from parent pulse
          });
          
          // Add stronger glow to the connection for better afterglow
          this.connectionGlow.set(selectedConnection.id, 1.2); // Increased from 0.8
        }
      }
    });
    
    // Faster decay for cleaner afterglow on edges
    for (const [id, glow] of this.connectionGlow.entries()) {
      this.connectionGlow.set(id, Math.max(0, glow - 0.0027)); // 35% faster decay for even cleaner edges (increased from 0.002)
    }
  }
  
  draw() {
    this.ctx.clearRect(0, 0, this.width, this.height);
    
    // Update cached gradients and paths periodically
    this.updateDrawingCache();
    
    // Batch drawing operations: edges first, then nodes
    this.drawConnectionsBatched();
    this.drawPulsesBatched();
    this.drawNodesBatched();
  }
  
  /**
   * Update cached gradients and drawing paths
   */
  updateDrawingCache() {
    const now = performance.now();
    if (now - this.lastCacheTime < this.cacheUpdateInterval) {
      return;
    }
    
    this.lastCacheTime = now;
    
    // Cache common gradients
    this.cacheGradients();
    
    // Cache common drawing paths
    this.cachePaths();
  }
  
  /**
   * Cache commonly used gradients
   */
  cacheGradients() {
    const cacheKey = `connection-${this.dynamicDpr}`;
    if (!this.gradientCache.has(cacheKey)) {
      const gradient = this.ctx.createLinearGradient(0, 0, this.width, this.height);
      gradient.addColorStop(0, 'rgba(150, 130, 220, 0.14)');
      gradient.addColorStop(0.5, 'rgba(180, 150, 240, 0.2)');
      gradient.addColorStop(1, 'rgba(150, 130, 220, 0.14)');
      this.gradientCache.set(cacheKey, gradient);
    }
  }
  
  /**
   * Cache common drawing paths
   */
  cachePaths() {
    // Cache arc paths for different node sizes
    const sizes = [1, 2, 3, 4, 5];
    sizes.forEach(size => {
      const cacheKey = `arc-${size}`;
      if (!this.pathCache.has(cacheKey)) {
        const path = new Path2D();
        path.arc(0, 0, size, 0, Math.PI * 2);
        this.pathCache.set(cacheKey, path);
      }
    });
  }
  
  /**
   * Draw connections in batches for better performance
   */
  drawConnectionsBatched() {
    // Collect connections with glow for batching
    const activeConnections = [];
    const brightConnections = [];
    
    this.connections.forEach((connection) => {
      const glow = this.connectionGlow.get(connection.id) || 0;
      
      if (glow > 0.1) {
        const nodeA = this.nodes[connection.from];
        const nodeB = this.nodes[connection.to];
        
        if (nodeA && nodeB) {
          const connectionData = { connection, nodeA, nodeB, glow };
          activeConnections.push(connectionData);
          
          if (glow > 0.6) {
            brightConnections.push(connectionData);
          }
        }
      }
    });
    
    // Batch draw regular connections
    activeConnections.forEach(({ connection, nodeA, nodeB, glow }) => {
      const avgDepthFactor = ((nodeA.depthFactor || 0.5) + (nodeB.depthFactor || 0.5)) / 2;
      const baseLineWidth = connection.type === 'intra' ? 0.8 : 0.4;
      const depthLineWidth = baseLineWidth * (0.3 + avgDepthFactor * 1.0);
      
      const glowAlpha = glow * 0.14;
      this.ctx.strokeStyle = `rgba(150, 130, 220, ${glowAlpha})`;
      this.ctx.lineWidth = depthLineWidth;
      this.ctx.beginPath();
      this.ctx.moveTo(nodeA.x, nodeA.y);
      this.ctx.lineTo(nodeB.x, nodeB.y);
      this.ctx.stroke();
    });
    
    // Batch draw bright center lines
    brightConnections.forEach(({ connection, nodeA, nodeB, glow }) => {
      const avgDepthFactor = ((nodeA.depthFactor || 0.5) + (nodeB.depthFactor || 0.5)) / 2;
      const baseLineWidth = connection.type === 'intra' ? 0.8 : 0.4;
      const depthLineWidth = baseLineWidth * (0.3 + avgDepthFactor * 1.0);
      
      this.ctx.strokeStyle = `rgba(180, 150, 240, ${(glow - 0.6) * 0.7})`;
      this.ctx.lineWidth = depthLineWidth * 0.3;
      this.ctx.beginPath();
      this.ctx.moveTo(nodeA.x, nodeA.y);
      this.ctx.lineTo(nodeB.x, nodeB.y);
      this.ctx.stroke();
    });
  }
  
  /**
   * Draw pulses in batches for better performance
   */
  drawPulsesBatched() {
    // Group pulses by color for batching
    const pulsesByColor = new Map();
    
    this.pulses.forEach(pulse => {
      const connection = this.connections[pulse.connectionIndex];
      if (!connection) return;
      
      const nodeA = this.nodes[connection.from];
      const nodeB = this.nodes[connection.to];
      if (!nodeA || !nodeB) return;
      
      const pulseColor = pulse.color || { r: 100, g: 140, b: 200 };
      const colorKey = `${pulseColor.r}-${pulseColor.g}-${pulseColor.b}`;
      
      if (!pulsesByColor.has(colorKey)) {
        pulsesByColor.set(colorKey, []);
      }
      
      pulsesByColor.get(colorKey).push({
        pulse,
        nodeA,
        nodeB,
        x: nodeA.x + (nodeB.x - nodeA.x) * pulse.progress,
        y: nodeA.y + (nodeB.y - nodeA.y) * pulse.progress,
        alpha: Math.sin(pulse.progress * Math.PI) * pulse.intensity,
        color: pulseColor
      });
    });
    
    // Draw pulses by color groups
    pulsesByColor.forEach((pulseGroup, colorKey) => {
      const { r, g, b } = pulseGroup[0].color;
      
      // Draw trails
      pulseGroup.forEach(({ pulse, nodeA, nodeB, alpha, color }) => {
        const trailLength = 60;
        for (let i = 0; i < trailLength; i++) {
          const trailProgress = Math.max(0, pulse.progress - (i * 0.0075));
          if (trailProgress > 0) {
            const trailX = nodeA.x + (nodeB.x - nodeA.x) * trailProgress;
            const trailY = nodeA.y + (nodeB.y - nodeA.y) * trailProgress;
            const trailAlpha = alpha * (1 - i / trailLength) * 0.45;
            const trailRadius = 3 - (i * 0.15);
            
            this.ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${trailAlpha})`;
            this.ctx.beginPath();
            this.ctx.arc(trailX, trailY, Math.max(0.5, trailRadius), 0, Math.PI * 2);
            this.ctx.fill();
          }
        }
      });
      
      // Draw main pulses
      this.ctx.shadowColor = `rgba(${Math.min(255, r + 20)}, ${Math.min(255, g + 20)}, ${Math.min(255, b + 20)}, ${0.3})`;
      this.ctx.shadowBlur = 12;
      
      pulseGroup.forEach(({ x, y, alpha }) => {
        this.ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${alpha * 0.75})`;
        this.ctx.beginPath();
        this.ctx.arc(x, y, 3.5, 0, Math.PI * 2);
        this.ctx.fill();
      });
      
      // Draw bright centers
      this.ctx.shadowBlur = 6;
      pulseGroup.forEach(({ x, y, alpha }) => {
        this.ctx.fillStyle = `rgba(${Math.min(255, r + 50)}, ${Math.min(255, g + 50)}, ${Math.min(255, b + 55)}, ${alpha * 0.675})`;
        this.ctx.beginPath();
        this.ctx.arc(x, y, 2, 0, Math.PI * 2);
        this.ctx.fill();
      });
      
      this.ctx.shadowBlur = 0;
    });
  }
  
  /**
   * Draw nodes in batches for better performance
   */
  drawNodesBatched() {
    // Group nodes by layer type for batching
    const nodesByType = new Map();
    
    this.nodes.forEach(node => {
      const layerType = node.layerType;
      if (!nodesByType.has(layerType)) {
        nodesByType.set(layerType, []);
      }
      nodesByType.get(layerType).push(node);
    });
    
    // Draw nodes by type groups
    nodesByType.forEach((nodesGroup, layerType) => {
      nodesGroup.forEach(node => {
        const baseAlpha = Math.max(0.4, Math.min(1, node.activity));
        const depthAlpha = node.depthAlpha || 1.0;
        const finalAlpha = baseAlpha * depthAlpha;
        const color = node.color;
        const nodeRadius = node.currentRadius || node.radius;
        
        // Main node
        this.ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${finalAlpha})`;
        this.ctx.beginPath();
        this.ctx.arc(node.x, node.y, nodeRadius, 0, Math.PI * 2);
        this.ctx.fill();
        
        // Highlight for active nodes
        if (node.activity > 0.6) {
          const highlightAlpha = (node.activity - 0.6) * 0.8 * depthAlpha;
          this.ctx.fillStyle = `rgba(${Math.min(255, color.r + 60)}, ${Math.min(255, color.g + 60)}, ${Math.min(255, color.b + 60)}, ${highlightAlpha})`;
          this.ctx.beginPath();
          this.ctx.arc(node.x, node.y, nodeRadius * 0.6, 0, Math.PI * 2);
          this.ctx.fill();
        }
      });
    });
  }
  
  getMorseForCurrentTime() {
    // Update morse code timer
    this.morseTimer += 16; // 60fps = ~16ms per frame
    
    const message = this.morseMessages[this.currentMessage];
    if (this.morsePosition >= message.length) {
      // End of message, pause then move to next
      if (this.morseTimer > 3000) { // 3 second pause between messages
        this.currentMessage = (this.currentMessage + 1) % this.morseMessages.length;
        this.morsePosition = 0;
        this.morseTimer = 0;
      }
      return null;
    }
    
    const char = message[this.morsePosition];
    const morse = this.morseCode[char] || '';
    
    // Move to next character after appropriate timing (50% compression)
    const charDuration = char === ' ' ? 500 : morse.length * 150 + 250; // Space = 0.5s, others = 150ms per symbol + 250ms gap
    if (this.morseTimer > charDuration) {
      this.morsePosition++;
      this.morseTimer = 0;
    }
    
    return { char, morse, progress: this.morseTimer / charDuration };
  }
  
  animate() {
    const currentTime = performance.now();
    const deltaTime = currentTime - this.lastFrameTime;
    
    // Framerate control - skip frames if needed
    if (deltaTime < this.frameInterval) {
      this.animationId = requestAnimationFrame(() => this.animate());
      return;
    }
    
    this.lastFrameTime = currentTime;
    this.frameCount++;
    
    // Skip all updates if animation is paused
    if (this.isPaused) {
      return;
    }
    
    // Update performance optimizations periodically
    if (this.frameCount % 30 === 0) { // Every 30 frames (~0.5s at 60fps)
      this.updateDynamicResolution();
      this.updateSpatialGrid();
    }
    
    this.updateNodes();
    this.updatePulses();
    
    // Get current morse code state
    const morseState = this.getMorseForCurrentTime();
    
    // Pulse system - faster and more frequent synchronized bursts
    const shouldCreatePulse = Math.random() < 0.001; // Increased from 0.0002 - 5x more frequent
    let morseBoost = false;
    
    // Check for morse code transmission with compressed timing
    if (morseState && morseState.morse) {
      const symbolIndex = Math.floor(morseState.progress * morseState.morse.length);
      const symbol = morseState.morse[symbolIndex];
      
      if (symbol === '.') {
        morseBoost = Math.random() < 0.015; // Increased from 0.003 - 5x more frequent
      } else if (symbol === '-') {
        morseBoost = Math.random() < 0.0075; // Increased from 0.0015 - 5x more frequent
      }
    }
    
    // Create synchronized pulse - all traces start at the same time
    if (shouldCreatePulse || morseBoost) {
      // Find all connections from leftmost layer (layer 0)
      const leftmostConnections = this.connections
        .map((connection, index) => ({ connection, index }))
        .filter(({ connection }) => this.nodes[connection.from].layerIndex === 0);
      
      // Create traces from an even smaller subset of leftmost connections (synchronized)
      const numTraces = Math.max(1, Math.floor(leftmostConnections.length * 0.02)); // Use 2% of available connections
      const selectedConnections = leftmostConnections
        .sort(() => Math.random() - 0.5) // Shuffle
        .slice(0, numTraces); // Take first numTraces
      
      selectedConnections.forEach(({ index }) => {
        this.createPulse(index);
      });
    }
    
    this.draw();
    this.animationId = requestAnimationFrame(() => this.animate());
  }
  
  destroy() {
    if (this.animationId) {
      cancelAnimationFrame(this.animationId);
      this.animationId = null;
    }
    if (this.resizeTimeout) {
      clearTimeout(this.resizeTimeout);
      this.resizeTimeout = null;
    }
    
    // Clean up performance optimization resources
    this.clearDrawingCache();
    this.spatialGrid.clear();
    
    // Remove CSS classes
    this.canvas.classList.remove('neural-shimmer');
    
    // Remove event listeners
    document.removeEventListener('visibilitychange', this.updateAnimationState);
  }
}

/**
 * Initialize neural network when DOM is ready
 * Automatically starts the animation if canvas is available and motion is not reduced
 */
function initializeNeuralNetwork() {
  const canvas = document.getElementById('neural-network');
  let started = false;
  let network = null;

  // Wait until the canvas has a real, non-zero layout size
  const startNetwork = () => {
    if (started) {return;}

    const ready =
      canvas &&
      canvas.clientWidth > 0 &&
      canvas.clientHeight > 0 &&
      !window.matchMedia('(prefers-reduced-motion: reduce)').matches;

    if (ready) {
      started = true;
      network = new NeuralNetwork(canvas);

      // Clean up on page unload
      window.addEventListener('beforeunload', () => {
        network && network.destroy();
      });
    } else {
      requestAnimationFrame(startNetwork); // try again next frame after layout settles
    }
  };

  requestAnimationFrame(startNetwork);
}

// Auto-initialize if DOM is already loaded, otherwise wait for it
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', initializeNeuralNetwork);
} else {
  initializeNeuralNetwork();
}

// Export for potential module use
if (typeof module !== 'undefined' && module.exports) {
  module.exports = { NeuralNetwork, initializeNeuralNetwork };
}

src/js/secure-contact.js (6.0 KiB)

/**
 * Secure Contact Email System
 * Multiple layers of obfuscation to defeat email scrapers
 */

(function() {
  'use strict';
    
  // Email domain configuration (encoded)
  const DOMAIN_PARTS = ['sibylline', 'dev'];
  const EMAIL_CONFIGS = {
    contact: {
      user: [110, 97, 116, 104, 97, 110], // 'nathan' in char codes
      subjects: {
        strategy: 'Strategy Session Request',
        technical: 'Technical Assessment Request', 
        innovation: 'Innovation Workshop Interest',
        waitlist: 'Waitlist Registration Request',
        lethe: 'Lethe Research Inquiry',
        'fastpath-research': 'FastPath Research Inquiry',
        matrix: 'Matrix Research Collaboration',
        modules: 'BEM Research Technical Details',
        general: 'General Inquiry'
      }
    },
    hello: {
      user: [110, 97, 116, 104, 97, 110], // 'nathan' in char codes
      subjects: {
        general: 'Hello from your website'
      }
    }
  };
    
  // Anti-scraping delays and checks
  function antiScrapingCheck() {
    // Check for headless browser indicators
    if (navigator.webdriver || 
            window.phantom || 
            window._phantom || 
            window.callPhantom ||
            window.outerHeight === 0 ||
            !window.chrome && navigator.userAgent.indexOf('Chrome') > -1) {
      return false;
    }
        
    // Check for human-like behavior (mouse movement)
    if (!window.hasUserInteracted) {
      return false;
    }
        
    return true;
  }
    
  // Human interaction detection
  let userInteractionDetected = false;
  window.hasUserInteracted = false;
    
  ['mousemove', 'click', 'keydown', 'scroll', 'touchstart'].forEach(event => {
    document.addEventListener(event, function() {
      if (!userInteractionDetected) {
        userInteractionDetected = true;
        window.hasUserInteracted = true;
        // Small delay before enabling email functionality
        setTimeout(() => {
          window.emailSystemReady = true;
        }, Math.random() * 1000 + 500);
      }
    }, { once: true, passive: true });
  });
    
  // ROT13-like but with custom offset
  function deobfuscateString(encoded, offset = 7) {
    return encoded.map(code => String.fromCharCode(code + offset)).join('');
  }
    
  // Build email address with multiple checks
  function buildEmailAddress(emailType = 'contact') {
    if (!antiScrapingCheck() || !window.emailSystemReady) {
      return '#';
    }
        
    const config = EMAIL_CONFIGS[emailType];
    if (!config) {return '#';}
        
    // Decode user part
    const user = String.fromCharCode(...config.user);
        
    // Build domain (add random delay)
    setTimeout(() => {
      // This delay makes automated scraping harder
    }, Math.random() * 100);
        
    const domain = DOMAIN_PARTS.join('.');
    return `${user}@${domain}`;
  }
    
  // Generate secure mailto link
  function generateMailtoLink(emailType = 'contact', subjectType = 'general', customBody = '') {
    if (!antiScrapingCheck() || !window.emailSystemReady) {
      // Return a placeholder that looks like it might work to scrapers
      return 'javascript:void(0)';
    }
        
    const email = buildEmailAddress(emailType);
    if (email === '#') {return 'javascript:void(0)';}
        
    const config = EMAIL_CONFIGS[emailType];
    const subject = config.subjects[subjectType] || config.subjects.general;
        
    const bodyText = customBody || `I'm interested in ${subject.toLowerCase()}. Please contact me about...`;
        
    return `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(bodyText)}`;
  }
    
  // Initialize secure contact links
  function initializeSecureContacts() {
    // Wait for user interaction
    if (!window.emailSystemReady) {
      setTimeout(initializeSecureContacts, 100);
      return;
    }
        
    // Update contact buttons
    document.querySelectorAll('[data-contact-type]').forEach(element => {
      const emailType = element.getAttribute('data-contact-type') || 'contact';
      const subjectType = element.getAttribute('data-subject-type') || 'general';
      const customBody = element.getAttribute('data-custom-body') || '';
            
      const mailtoLink = generateMailtoLink(emailType, subjectType, customBody);
            
      if (element.tagName.toLowerCase() === 'a') {
        element.href = mailtoLink;
      } else {
        element.addEventListener('click', function(e) {
          e.preventDefault();
          if (mailtoLink !== 'javascript:void(0)') {
            window.location.href = mailtoLink;
          }
        });
      }
    });
        
    // Update email display elements
    document.querySelectorAll('[data-email-display]').forEach(element => {
      const emailType = element.getAttribute('data-email-display') || 'contact';
      const email = buildEmailAddress(emailType);
            
      if (email !== '#') {
        element.textContent = email;
        if (element.tagName.toLowerCase() === 'a') {
          element.href = `mailto:${email}`;
        }
      }
    });
        
    // Update modal email system (for existing modal functionality)
    if (window.updateModalEmail) {
      window.updateModalEmail = function(emailType = 'hello') {
        return buildEmailAddress(emailType);
      };
    }
  }
    
  // Enhanced modal functionality for existing code
  window.generateSecureMailto = function(subject, body, emailType = 'hello') {
    if (!antiScrapingCheck() || !window.emailSystemReady) {
      return 'javascript:void(0)';
    }
        
    const email = buildEmailAddress(emailType);
    if (email === '#') {return 'javascript:void(0)';}
        
    return `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
  };
    
  // Initialize when DOM is ready
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initializeSecureContacts);
  } else {
    initializeSecureContacts();
  }
    
  // Re-initialize periodically to catch dynamically added elements
  setInterval(initializeSecureContacts, 2000);
    
})();

src/js/toc-scrollspy.js (7.9 KiB)

/**
 * Improved TOC Scroll Spy
 * 
 * Replaces IntersectionObserver with offset-based tracking for better accuracy.
 * Uses binary search for O(log n) performance and tracks closest-preceding heading
 * even when scrolled off-screen.
 */

class TOCScrollSpy {
  constructor(options = {}) {
    this.tocSelector = options.tocSelector || '.toc';
    this.headingSelector = options.headingSelector || 'h1, h2, h3, h4, h5, h6';
    this.headerOffset = options.headerOffset || 100; // Account for fixed header
    this.throttleDelay = options.throttleDelay || 75; // ms
    
    this.headings = [];
    this.tocElement = null;
    this.activeElement = null;
    this.scrollTimer = null;
    
    this.init();
  }

  init() {
    this.tocElement = document.querySelector(this.tocSelector);
    if (!this.tocElement) {
      console.warn('TOC element not found:', this.tocSelector);
      return;
    }

    this.buildHeadingsList();
    this.bindEvents();
    this.updateActiveHeading();
  }

  /**
   * Build sorted list of headings with their offset positions
   */
  buildHeadingsList() {
    const headingElements = document.querySelectorAll(this.headingSelector);
    
    this.headings = Array.from(headingElements)
      .map(heading => ({
        id: heading.id,
        element: heading,
        topOffset: this.getElementTopOffset(heading),
        tocLink: this.tocElement.querySelector(`a[href="#${heading.id}"]`)
      }))
      .filter(heading => heading.id && heading.tocLink) // Only headings with TOC links
      .sort((a, b) => a.topOffset - b.topOffset); // Sort by position

    console.log(`TOC ScrollSpy: Found ${this.headings.length} headings`);
  }

  /**
   * Get element's top offset relative to document
   */
  getElementTopOffset(element) {
    let top = 0;
    let current = element;
    
    while (current && current.offsetParent) {
      top += current.offsetTop;
      current = current.offsetParent;
    }
    
    return top;
  }

  /**
   * Find the active heading using binary search
   * Returns the heading with max(topOffset) where topOffset <= scrollY + headerOffset
   */
  findActiveHeading(scrollY) {
    if (this.headings.length === 0) return null;

    const targetY = scrollY + this.headerOffset;
    
    // Handle edge cases
    if (targetY < this.headings[0].topOffset) {
      return this.headings[0]; // First heading if at very top
    }
    
    if (targetY >= this.headings[this.headings.length - 1].topOffset) {
      return this.headings[this.headings.length - 1]; // Last heading if at bottom
    }

    // Binary search for the rightmost heading with topOffset <= targetY
    let left = 0;
    let right = this.headings.length - 1;
    let result = this.headings[0];

    while (left <= right) {
      const mid = Math.floor((left + right) / 2);
      const heading = this.headings[mid];

      if (heading.topOffset <= targetY) {
        result = heading; // This could be our answer
        left = mid + 1; // Look for a better match to the right
      } else {
        right = mid - 1; // Look to the left
      }
    }

    return result;
  }

  /**
   * Update the active heading and TOC state
   */
  updateActiveHeading() {
    const scrollY = window.pageYOffset || document.documentElement.scrollTop;
    const activeHeading = this.findActiveHeading(scrollY);

    if (!activeHeading || activeHeading === this.activeElement) {
      return; // No change needed
    }

    // Remove previous active states
    if (this.activeElement?.tocLink) {
      this.clearActiveStates();
    }

    // Set new active states
    this.activeElement = activeHeading;
    this.setActiveStates(activeHeading.tocLink);
  }

  /**
   * Clear all active states in TOC
   */
  clearActiveStates() {
    const activeLinks = this.tocElement.querySelectorAll('.is-active-link');
    const activeLis = this.tocElement.querySelectorAll('.is-active-li');
    
    activeLinks.forEach(link => link.classList.remove('is-active-link'));
    activeLis.forEach(li => li.classList.remove('is-active-li'));
  }

  /**
   * Set active states and expand ancestor tree
   */
  setActiveStates(activeLink) {
    if (!activeLink) return;

    // Mark the link as active
    activeLink.classList.add('is-active-link');

    // Walk up the TOC tree and expand ancestors
    let currentElement = activeLink.parentElement; // Start with the <li>
    
    while (currentElement && currentElement !== this.tocElement) {
      if (currentElement.tagName === 'LI') {
        currentElement.classList.add('is-active-li');
        
        // If this is a collapsible item, ensure it's expanded
        if (currentElement.classList.contains('is-collapsible')) {
          currentElement.classList.remove('is-collapsed');
        }
      }
      currentElement = currentElement.parentElement;
    }

    // Collapse other top-level sections that aren't in the active path
    this.collapseInactiveSections(activeLink);
  }

  /**
   * Collapse TOC sections that aren't in the active path
   */
  collapseInactiveSections(activeLink) {
    const collapsibleItems = this.tocElement.querySelectorAll('.toc-list-item.is-collapsible');
    
    collapsibleItems.forEach(li => {
      if (!li.classList.contains('is-active-li')) {
        // This item is not in the active path, collapse it
        li.classList.add('is-collapsed');
      }
    });
  }

  /**
   * Handle hash changes (direct navigation or back/forward)
   */
  handleHashChange() {
    const hash = window.location.hash.slice(1);
    if (!hash) return;

    const targetHeading = this.headings.find(h => h.id === hash);
    if (targetHeading) {
      this.activeElement = targetHeading;
      this.clearActiveStates();
      this.setActiveStates(targetHeading.tocLink);
    }
  }

  /**
   * Handle TOC link clicks
   */
  handleTOCClick(event) {
    const link = event.target.closest('a[href^="#"]');
    if (!link) return;

    const hash = link.getAttribute('href').slice(1);
    const targetHeading = this.headings.find(h => h.id === hash);
    
    if (targetHeading) {
      // Update immediately on click
      this.activeElement = targetHeading;
      this.clearActiveStates();
      this.setActiveStates(targetHeading.tocLink);
    }
  }

  /**
   * Throttled scroll handler
   */
  handleScroll() {
    if (this.scrollTimer) {
      clearTimeout(this.scrollTimer);
    }
    
    this.scrollTimer = setTimeout(() => {
      this.updateActiveHeading();
    }, this.throttleDelay);
  }

  /**
   * Handle window resize - recalculate heading positions
   */
  handleResize() {
    // Debounce resize events
    clearTimeout(this.resizeTimer);
    this.resizeTimer = setTimeout(() => {
      this.buildHeadingsList();
      this.updateActiveHeading();
    }, 250);
  }

  /**
   * Bind event listeners
   */
  bindEvents() {
    // Throttled scroll handler
    window.addEventListener('scroll', () => this.handleScroll(), { passive: true });
    
    // Hash change handler
    window.addEventListener('hashchange', () => this.handleHashChange());
    
    // TOC click handler
    this.tocElement.addEventListener('click', (event) => this.handleTOCClick(event));
    
    // Window resize handler
    window.addEventListener('resize', () => this.handleResize());
  }

  /**
   * Public method to refresh the spy (useful after dynamic content changes)
   */
  refresh() {
    this.buildHeadingsList();
    this.updateActiveHeading();
  }

  /**
   * Clean up event listeners
   */
  destroy() {
    clearTimeout(this.scrollTimer);
    clearTimeout(this.resizeTimer);
    // Note: In a real implementation, you'd want to store bound function references
    // to properly remove event listeners
  }
}

// Auto-initialize when DOM is ready
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', () => {
    window.tocScrollSpy = new TOCScrollSpy();
  });
} else {
  // DOM already loaded
  window.tocScrollSpy = new TOCScrollSpy();
}

// Export for module usage
if (typeof module !== 'undefined' && module.exports) {
  module.exports = TOCScrollSpy;
}

src/js/ui-interactions.js (8.2 KiB)

/**
 * UI interaction handlers for general user interface elements
 * Handles click handlers, hover effects, icon initialization, and general UI interactions
 */

class UIInteractions {
  constructor() {
    this.init();
  }
  
  init() {
    this.initIconSystem();
    this.initScrollEffects();
    this.initGeneralClickHandlers();
    this.initHoverEffects();
    this.initKeyboardInteractions();
  }
  
  /**
   * Initialize Lucide icon system
   */
  initIconSystem() {
    // Initialize Lucide icons when available
    if (window.lucide) {
      lucide.createIcons();
    } else {
      // Wait for Lucide to load if not immediately available
      const checkLucide = setInterval(() => {
        if (window.lucide) {
          lucide.createIcons();
          clearInterval(checkLucide);
        }
      }, 100);
      
      // Clear interval after 5 seconds to prevent infinite checking
      setTimeout(() => clearInterval(checkLucide), 5000);
    }
  }
  
  /**
   * Initialize scroll-based effects
   */
  initScrollEffects() {
    // Add scroll-based animations or effects here
    let ticking = false;
    
    const handleScroll = () => {
      if (!ticking) {
        requestAnimationFrame(() => {
          this.updateScrollEffects();
          ticking = false;
        });
        ticking = true;
      }
    };
    
    window.addEventListener('scroll', handleScroll, { passive: true });
  }
  
  updateScrollEffects() {
    const scrollY = window.scrollY;
    const windowHeight = window.innerHeight;
    
    // Add scroll-based animations here
    // Example: parallax effects, fade-ins, etc.
    
    // Update elements based on scroll position
    const elements = document.querySelectorAll('[data-scroll-effect]');
    elements.forEach(element => {
      const rect = element.getBoundingClientRect();
      const isVisible = rect.top < windowHeight && rect.bottom > 0;
      
      if (isVisible) {
        element.classList.add('in-viewport');
      } else {
        element.classList.remove('in-viewport');
      }
    });
  }
  
  /**
   * Initialize general click handlers for interactive elements
   */
  initGeneralClickHandlers() {
    // Handle all buttons with data-action attributes
    document.addEventListener('click', (e) => {
      const button = e.target.closest('[data-action]');
      if (button) {
        const action = button.getAttribute('data-action');
        this.handleButtonAction(action, button, e);
      }
    });
    
    // Handle external links
    const externalLinks = document.querySelectorAll('a[href^="http"]:not([href*="' + location.hostname + '"])');
    externalLinks.forEach(link => {
      link.setAttribute('target', '_blank');
      link.setAttribute('rel', 'noopener noreferrer');
    });
  }
  
  /**
   * Handle button actions based on data-action attribute
   */
  handleButtonAction(action, button, event) {
    switch (action) {
    case 'scroll-to':
      const target = button.getAttribute('data-target');
      this.scrollToElement(target);
      break;
    case 'toggle':
      const toggleTarget = button.getAttribute('data-target');
      this.toggleElement(toggleTarget);
      break;
    case 'copy':
      const copyText = button.getAttribute('data-copy') || button.textContent;
      this.copyToClipboard(copyText, button);
      break;
    default:
      console.log('Unknown action:', action);
    }
  }
  
  /**
   * Smooth scroll to element
   */
  scrollToElement(selector) {
    const element = document.querySelector(selector);
    if (element) {
      element.scrollIntoView({
        behavior: 'smooth',
        block: 'start'
      });
    }
  }
  
  /**
   * Toggle element visibility
   */
  toggleElement(selector) {
    const element = document.querySelector(selector);
    if (element) {
      element.classList.toggle('hidden');
      element.classList.toggle('visible');
    }
  }
  
  /**
   * Copy text to clipboard
   */
  async copyToClipboard(text, button) {
    try {
      await navigator.clipboard.writeText(text);
      
      // Visual feedback
      const originalText = button.textContent;
      button.textContent = 'Copied!';
      button.classList.add('copied');
      
      setTimeout(() => {
        button.textContent = originalText;
        button.classList.remove('copied');
      }, 2000);
    } catch (err) {
      console.error('Failed to copy text:', err);
      
      // Fallback for older browsers
      const textArea = document.createElement('textarea');
      textArea.value = text;
      document.body.appendChild(textArea);
      textArea.select();
      document.execCommand('copy');
      document.body.removeChild(textArea);
    }
  }
  
  /**
   * Initialize hover effects for interactive elements
   */
  initHoverEffects() {
    // Add hover effects to buttons and interactive elements
    const interactiveElements = document.querySelectorAll('.btn, .card, .interactive');
    
    interactiveElements.forEach(element => {
      element.addEventListener('mouseenter', () => {
        element.classList.add('hovered');
      });
      
      element.addEventListener('mouseleave', () => {
        element.classList.remove('hovered');
      });
    });
    
    // Add ripple effect for buttons
    const buttons = document.querySelectorAll('.btn, button');
    buttons.forEach(button => {
      button.addEventListener('click', this.createRippleEffect.bind(this));
    });
  }
  
  /**
   * Create ripple effect on button click
   */
  createRippleEffect(e) {
    const button = e.currentTarget;
    const ripple = document.createElement('span');
    const rect = button.getBoundingClientRect();
    const size = Math.max(rect.width, rect.height);
    const x = e.clientX - rect.left - size / 2;
    const y = e.clientY - rect.top - size / 2;
    
    ripple.style.width = ripple.style.height = size + 'px';
    ripple.style.left = x + 'px';
    ripple.style.top = y + 'px';
    ripple.classList.add('ripple');
    
    button.appendChild(ripple);
    
    // Remove ripple after animation
    setTimeout(() => {
      ripple.remove();
    }, 600);
  }
  
  /**
   * Initialize keyboard interactions
   */
  initKeyboardInteractions() {
    // Handle keyboard navigation
    document.addEventListener('keydown', (e) => {
      // Focus management for accessibility
      if (e.key === 'Tab') {
        document.body.classList.add('keyboard-navigation');
      }
    });
    
    document.addEventListener('mousedown', () => {
      document.body.classList.remove('keyboard-navigation');
    });
    
    // Handle escape key for closing overlays
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape') {
        this.closeAllOverlays();
      }
    });
  }
  
  /**
   * Close all open overlays (tooltips, dropdowns, etc.)
   */
  closeAllOverlays() {
    const overlays = document.querySelectorAll('.overlay.active, .dropdown.open, .tooltip.visible');
    overlays.forEach(overlay => {
      overlay.classList.remove('active', 'open', 'visible');
    });
  }
  
  /**
   * Reinitialize icons (useful after dynamic content loading)
   */
  reinitializeIcons() {
    if (window.lucide) {
      lucide.createIcons();
    }
  }
  
  /**
   * Add loading state to element
   */
  setLoadingState(element, isLoading = true) {
    if (isLoading) {
      element.classList.add('loading');
      element.setAttribute('aria-busy', 'true');
    } else {
      element.classList.remove('loading');
      element.removeAttribute('aria-busy');
    }
  }
  
  /**
   * Show toast notification
   */
  showToast(message, type = 'info', duration = 3000) {
    const toast = document.createElement('div');
    toast.className = `toast toast-${type}`;
    toast.textContent = message;
    
    // Add to page
    const toastContainer = document.querySelector('.toast-container') || document.body;
    toastContainer.appendChild(toast);
    
    // Animate in
    setTimeout(() => toast.classList.add('visible'), 10);
    
    // Remove after duration
    setTimeout(() => {
      toast.classList.remove('visible');
      setTimeout(() => toast.remove(), 300);
    }, duration);
  }
}

// Initialize UI interactions
window.UIInteractions = UIInteractions;

// Initialize when DOM is ready
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', () => {
    new UIInteractions();
  });
} else {
  new UIInteractions();
}

src/opensearch.xml (827 B)

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription
	xmlns="http://a9.com/-/spec/opensearch/1.1/"
	xmlns:moz="http://www.mozilla.org/2006/browser/search/">
	<ShortName>11ty</ShortName>
	<LongName>Eleventy</LongName>
	<Description>Search for things on the Eleventy website</Description>
	<InputEncoding>UTF-8</InputEncoding>
	<!-- <Image width="16" height="16"
	type="image/png">https://www.11ty.dev/img/favicon-16.png</Image> -->
	<Image width="96" height="96" type="image/png">https://www.11ty.dev/img/favicon.png</Image>
	<Url type="text/html" method="get" template="https://www.11ty.dev/docs/search/?q={searchTerms}" />
	<Url type="application/opensearchdescription+xml" rel="self"
		template="https://www.11ty.dev/opensearch.xml" />
	<moz:SearchForm>https://www.11ty.dev/</moz:SearchForm>
</OpenSearchDescription>

src/products.md (53.8 KiB)


eleventyNavigation: key: Products order: 2 layout: simple.njk title: Products description: Next-generation AI tools currently in development


Products

Next-generation AI tools designed to solve real problems for creators and professionals. Some products have been released, while others are being privately tested with select users. You can request to become a tester for early access to unreleased products.

Infrastructure & Execution

Most teams struggle with weeks of setup hell—configuring dev environments, managing AI costs, and battling slow agent systems that can barely handle basic tasks. What if you could skip the infrastructure nightmare entirely? What if agents could work as fast as you think?

Codename: RAVE
Private Testing

Fully Configured Agentic Autonomous Development System

The Problem: Setting up a modern development environment takes weeks. You need GitLab, CI/CD pipelines, monitoring, project management, secure communication, and collaboration tools—all properly configured and integrated. But more than that, you need autonomous agents that can actually work within this infrastructure with industry-standard tracking and reporting.

The Solution: Rave isn't just a dev shop in a box—it's a fully configured agentic autonomous development system. Built on NixOS for perfect reproducibility, it combines enterprise infrastructure (GitLab, Element/Matrix, Grafana) with autonomous AI agents that operate within industry-standard workflows, complete with comprehensive tracking and reporting.

Autonomous Agent Infrastructure: Not just tools, but autonomous AI agents that operate within GitLab, CI/CD pipelines, Grafana monitoring, and Element/Matrix communication—creating a fully agentic development environment.
Industry-Standard Tracking & Reporting: Full GitLab integration with autonomous agents creating issues, merge requests, and comprehensive reports. Grafana dashboards track both infrastructure metrics and agent performance with enterprise-grade visibility.
Agentic Collaboration: Element/Matrix integration enables agents to communicate with human teams in real-time, providing status updates, requesting approvals, and coordinating work through standard chat interfaces.
Enterprise-Grade Deployment: NixOS flakes ensure identical agentic environments everywhere. Multi-format deployment (QEMU, VirtualBox, VMware, ISO) with full agent orchestration, security, and comprehensive audit trails.
Beyond dev shops - deploy a fully autonomous agentic development system with industry-standard tracking and reporting in minutes.
Codename: SMITH
Private Testing

Reactive Agent Development Platform

The Problem: Traditional agent platforms require manual orchestration and polling-based coordination. Agents can't react to real-time events efficiently, leading to delayed responses and resource waste. JavaScript-based agent platforms suffer from latency overhead, memory bloat, and security vulnerabilities from dependency chains.

The Solution: Smith is a reactive agent development platform built in Rust that monitors NATS event streams and dispatches agents in response to real-time events. With sub-5ms cold starts and intelligent event-driven orchestration, Smith enables truly responsive agent workflows that scale automatically with demand.

Event-Driven Agent Dispatch: Monitors NATS event streams and automatically dispatches agents in response to real-time events, enabling truly reactive development workflows without manual coordination.
Blazing Performance: Sub-5ms cold start times, <150MB memory usage, and minimal CPU overhead through Rust optimizations and intelligent agent lifecycle management.
Enterprise Reliability: Deterministic record/replay, comprehensive audit logging, process isolation, and 24/7 daemon stability with automatic recovery and event replay capabilities.
Distributed Workflow Orchestration: Native NATS integration enables seamless multi-node agent coordination with real-time TUI monitoring and extensible plugin architecture.
Stop polling for events. Start reacting in real-time with intelligent agent dispatch and enterprise-grade reliability.
Codename: HEIMDALL
Private Testing

Intelligent LLM Router with Cost-Quality Optimization

The Problem: Choosing the right AI model for each task is impossible to optimize manually. Premium models are expensive for simple tasks, while cheap models fail on complex ones. You waste money on overengineered responses or get poor results from under-powered models.

The Solution: Heimdall uses gradient-boosted decision trees and Avengers-Pro routing to automatically route each request to the optimal model. It maximizes quality per dollar through intelligent triage, OAuth integration, and real-time cost-quality optimization.

GBDT Triage System: Machine learning triage routes requests to cheap (DeepSeek/Qwen), mid (Claude/GPT-5), or premium (GPT-5/Gemini with high reasoning) tiers based on complexity analysis.
Avengers-Pro Optimization: Within each tier, uses research-backed alpha scoring to balance quality and cost, ensuring optimal model selection for each specific task type.
Direct Provider Integration: OAuth passthrough for Claude, direct API access for GPT-5 and Gemini, with intelligent fallback handling for rate limits and failures.
Thinking Budget Control: Dynamically adjusts reasoning effort (GPT-5) and thinking budgets (Gemini) based on task complexity, optimizing both latency and quality.
Stop guessing which AI model to use. Start optimizing quality per dollar automatically with intelligent routing.

Research & Knowledge Systems

Information overload is killing productivity. You're drowning in scattered search tools, hitting context limits every few conversations, and manually curating knowledge that should flow seamlessly to your AI agents. What if your agents could remember everything? What if hard problems solved themselves while you slept?

Codename: MIMIR
Private Testing

Research Swarm Intelligence for Hard Problems

The Problem: Hard problems require deep research across multiple codebases, documentation, and knowledge sources. Agents get confused by too many search tools. You need systematic investigation but lack unified intelligence that can coordinate complex research across code and literature.

The Solution: Mimir deploys research swarms that unify the best code search MCPs with deep literature analysis. One interface, comprehensive investigation. It coordinates multi-agent research workflows to solve problems that require both extensive code understanding and domain knowledge synthesis.

Unified Search Intelligence: Combines the best code search MCPs into one interface—no more agent confusion from dozens of overlapping search tools.
Research Swarm Coordination: Deploys multiple specialized agents for code analysis, literature review, and cross-domain synthesis to tackle complex problems.
Deep Problem Solving: Six-stage intelligence pipeline handles both extensive code search and comprehensive research synthesis for hard engineering challenges.
MCP Integration Hub: Acts as a central nervous system for research workflows, coordinating agent activities with precise citation and knowledge tracking.
Stop surface-level searches. Deploy research swarms for breakthrough solutions.
Codename: LETHE
Private Testing

Infinite Context for Agents Through Intelligent Forgetting

The Problem: Context management is a constant headache. You spend more time deciding what to include than actually working. Agents hit token limits, lose important context, and require careful curation of their chat history to stay functional.

The Solution: Lethe gives agents infinite context by intelligently filtering irrelevant messages and rewriting chat history more efficiently. No more context management—just let agents read everything and trust Lethe to help them forget what's not important.

Intelligent Filtering: Automatically identifies and removes irrelevant messages from chat history, keeping only what matters for the current context and task.
Efficient Rewriting: Compresses and rewrites verbose messages into concise, information-dense summaries that preserve meaning while reducing token usage.
Zero Context Management: Eliminates manual context curation. Agents can read everything without worrying about token limits or relevance filtering—Lethe handles it automatically.
Infinite Agent Memory: Agents gain access to unlimited conversation history through smart compression and relevance filtering, maintaining full context awareness without performance degradation.
Stop managing context. Start trusting intelligent forgetting. Infinite agent memory through smart compression.
Codename: SCRIBE
Production Ready

Effortless Codebase Sharing with LLMs That Scales to Any Repository

The Problem: Sharing your codebase with LLMs is a nightmare. Manual file selection, token counting, context juggling, and constant decisions about what to include or leave out. Large repositories become impossible to share effectively, and you miss critical code connections.

The Solution: Scribe makes codebase sharing effortless. Point it at any repository and get an intelligent, optimally-packed representation that scales gracefully to any size. Advanced PageRank centrality algorithms automatically identify the most important code, so LLMs always get the context they need.

One-Command Simplicity: Point Scribe at any GitHub repository and instantly get perfectly formatted code for LLM consumption. No manual file selection, no token management, no configuration needed.
Infinite Scale: Works effortlessly on any repository size. Small projects get complete coverage, massive codebases get intelligently prioritized content using novel research-backed algorithms.
Always the Most Important Code: Advanced PageRank centrality analysis automatically identifies critical code relationships, dependencies, and core functionality—ensuring LLMs see what matters most.
Intelligent Context Optimization: Multi-fidelity representation with semantic chunking, dependency-aware selection, and budget-conscious allocation. Maximum insight per token, every time.
Stop wrestling with code selection. Start sharing entire codebases effortlessly, at any scale.

Agent Optimization & Workflow

Your agents are inefficient, your tools are scattered across different platforms, and your workflows break down the moment you attempt anything complex. Manual prompt crafting takes forever and breaks on edge cases, while finding the right tool among dozens of MCP servers feels like searching through a digital junkyard. What if your agents got smarter with every failure? What if chaos became precision?

Codename: MINERVA
Private Testing

Meta MCP Server: Unified Intelligence Across All Your Tools

The Problem: You have dozens of MCP servers scattered across different tools and services. Finding the right tool for a task is like searching through a digital junkyard. Manual tool selection wastes time, and agents can't efficiently discover what's available across your entire toolchain.

The Solution: Minerva automatically discovers, aggregates, and intelligently orchestrates all your MCP servers into one unified interface. Advanced hybrid search combines BM25 and dense embeddings with cross-encoder reranking to always surface the perfect tool for any task.

Universal Tool Discovery: Automatically crawls and validates tools from multiple upstream MCP servers, creating a unified directory of all your available capabilities.
Intelligent Hybrid Search: BM25 full-text search combined with dense embeddings and cross-encoder reranking ensures you find exactly the right tool for any natural language query.
Multi-Mode Performance: Fast mode (200ms), Balanced mode (500ms), or Thorough mode (2s) with optional LLM-powered DAG generation for complex workflows.
Production-Ready Infrastructure: Full observability with OpenTelemetry, circuit breakers, RBAC controls, and degradation modes for enterprise deployment.
Stop managing scattered tools. Start orchestrating unified intelligence across your entire MCP ecosystem.
Codename: DAEDALUS
Private Testing

Online Agent Optimization Framework

The Problem: Agents fail tasks due to suboptimal prompts and configurations. You spend hours crafting system prompts only to watch them break on edge cases. Generic prompts can't adapt to specific task requirements, and manual optimization takes too long to be practical.

The Solution: Daedalus is an online agent optimization framework that automatically optimizes task and system prompts for your agents based on the exact details of the task they've been instructed to perform and past performance metrics.

Task-Specific Optimization: Analyzes the exact details of each task to generate optimized prompts tailored to specific requirements, constraints, and success criteria.
Performance-Driven Learning: Uses past metrics and failure patterns to continuously improve agent performance, learning from both successes and edge cases.
Real-Time Adaptation: Dynamically adjusts system prompts and task instructions based on task complexity, domain requirements, and historical performance data.
Multi-Agent Orchestration: Optimizes not just individual agents but entire agent workflows, improving coordination and reducing failure cascades.
Stop crafting prompts manually. Start optimizing agents automatically based on what actually works.
Codename: CONCLAVE
Private Testing

AI-Powered Workflow Planning Through Expert Debate

The Problem: Planning complex workflows is guesswork. You either over-engineer from the start or miss critical dependencies that derail projects later. Single AI perspectives lack the rigor of real planning sessions, and manual planning takes forever.

The Solution: Conclave assembles multiple AI experts who debate, critique, and refine workflow proposals through structured rounds of discussion. Get the benefits of expert planning sessions—comprehensive task breakdowns, risk assessment, and dependency analysis—in minutes, not hours.

Multi-Expert Debate Process: 3-4 AI planning personas analyze your requirements from different angles, then debate and refine proposals through up to 5 structured rounds.
Structured XML Workflows: Get canonical workflow plans with task dependencies, risk registers, acceptance criteria, and timeline estimates—ready for immediate execution.
Repository-Aware Planning: Automatically analyzes your codebase to create context-aware plans that leverage existing patterns and avoid architectural conflicts.
MCP Integration: Works seamlessly with Claude Desktop and Claude Code through Model Context Protocol—no setup complexity, just natural conversation planning.
Stop planning in isolation. Assemble expert AI councils for bulletproof workflow design.

Software Development

Legacy tools crash on large codebases, miss semantic duplicates with 87% false positive rates, and can't guide AI refactoring effectively—leaving your agents hunting blindly through code instead of focusing on problems that matter. What if your agents could see exactly where the problems are? What if requirements became software without the translation layer?

Codename: ECHO
Production Ready

Next-Generation Duplicate Code Detection

The Problem: Traditional duplicate detection tools fail with 87% false positives, cloud lock-in, and primitive algorithms that miss semantic duplicates. SonarQube, PMD CPD, and legacy tools crash on large codebases or ignore refactored code patterns entirely.

The Solution: Echo delivers 10x the performance and 90%+ accuracy using AI-native architecture with GraphCodeBERT embeddings for semantic understanding. Complete local processing, LSH-optimized performance, and native MCP integration for AI workflows that enterprise teams actually want to use.

AI-Powered Semantic Detection: GraphCodeBERT-mini embeddings catch semantically identical but syntactically different code that traditional tools miss entirely.
10x Performance Advantage: LSH-optimized algorithms index 250k LOC repositories in seconds, not minutes. Memory efficient with no OOM crashes.
Enterprise-Grade Privacy: 100% local processing with zero cloud dependencies. Perfect for regulated industries and security-conscious teams.
Native AI Integration: Built-in MCP server allows AI coding assistants to automatically detect and refactor duplicates in real-time workflows.
Stop settling for 13% accuracy. Get 90%+ precision with blazing speed and complete local control.
Codename: ARBITER
Private Testing

Complete Software Development Specification Service

The Problem: Software development suffers from incomplete specifications, disconnected requirements, and manual testing bottlenecks. Teams struggle to transform business requirements into complete, validated software systems with comprehensive testing and documentation.

The Solution: Arbiter is a comprehensive service for generating complete software development specifications that can be automatically transformed into fully functional software. Using the CUE language for rigorous robustness guarantees, it provides end-to-end testing, real-time diagram generation for specification visualization, and seamless transformation from requirements to working code.

Complete Specification Generation: Transform business requirements into comprehensive software development specifications using CUE language for mathematical precision and robustness guarantees.
Automatic Software Transformation: Seamlessly convert specifications into fully functional software with robust end-to-end testing and validation built-in from the start.
Real-time Diagram Generation: Visualize specifications with automatically generated diagrams that update in real-time as requirements evolve, ensuring stakeholder alignment.
Rigorous Robustness Guarantees: Leverage CUE language's type system and constraints to ensure specifications are mathematically sound with built-in validation and error prevention.
Transform requirements into complete, validated software systems with mathematical precision and automated end-to-end development.
Codename: VALKNUT
Production Ready

Static Analysis Engine for AI-Guided Refactoring

The Problem: AI agents waste time analyzing entire codebases when refactoring, struggling to identify which functions actually need attention. Without guidance, they either miss critical issues or get overwhelmed by low-priority violations. Teams need a way to direct AI focus to the most problematic code.

The Solution: Valknut uses deterministic static analysis to rank code by "refactorability," creating a targeted roadmap for AI agents. It generates structured refactor briefs that help AI tools like Claude Code automatically focus on the highest-impact problems first, making refactoring sessions dramatically more efficient.

Static Algorithm Analysis: Uses deterministic complexity, duplication, centrality, and dependency metrics to generate precise 0-1 refactoring urgency scores without runtime profiling.
AI Agent Integration: Purpose-built MCP server integration allows Claude Code and other AI tools to automatically query the most problematic code and focus refactoring efforts efficiently.
Multi-Language Support: Handles Python, TypeScript, JavaScript, and Rust with language-specific detection patterns like type friction and clone mass analysis.
Coordinated Refactoring: Identifies Impact Packs and circular dependencies that should be tackled together, preventing AI agents from making isolated changes that miss systemic issues.
Stop letting AI agents hunt blindly through code. Start directing them to the problems that matter most.

Developer Control & Integration

You're bleeding money on AI inference costs, hitting context limits after 50-100 messages that kill productivity, and losing control of your development flow to vendor lock-in and expensive APIs. Meanwhile, your users want local privacy but your apps can't safely access their Ollama setups. What if conversations never ended? What if your users paid their own AI bills while your app delivered the intelligence?

Codename: HYDRA
Production Ready

Transform Claude Code Into 50+ Expert Agent Heads

The Problem: Claude Code hits context limits after 50-100 messages, forcing constant restarts that kill productivity. You spend more time re-explaining your project than building it. Complex development sessions become impossible.

The Solution: Hydra transforms Claude Code into a mythical development beast with 50+ specialized agent heads. Each agent spawns with fresh context, delivers expert results, and returns only actionable outputs—preserving your conversation forever while delivering specialist-level expertise.

Context Firewall Technology: 50+ agents work in isolation, using 0% of your conversation context. Unlimited 300+ message sessions without degradation.
50+ Domain Experts: From TypeScript masters to security ninjas—each agent brings deep expertise in modern frameworks and 2024-2025 patterns.
Autonomous Parallel Execution: Multiple agents coordinate complex projects independently while you maintain oversight and control.
Living Blueprint System: Every project becomes a persistent XML document that orchestrates execution and captures organizational knowledge.
Stop hitting context limits. Start building mythical-scale projects with unlimited conversations.

Creative

Creative work is still trial and error—writers spend years perfecting their craft through guesswork, creators waste hours scrolling feeds trying to spot trends that are already saturated, and brilliant ideas die in brainstorming sessions that produce diminishing returns after the first few concepts. What if you could see a story's emotional DNA before readers do? What if you knew what would resonate before everyone else?

Codename: BOOKWORM
Stealth Development

Turn Your Story Into Visual Insights That Sell

The Problem: Writers spend years perfecting their craft through trial and error. Editors rely on gut instinct. Publishers gamble on manuscripts without data. What if you could see your story's DNA before readers do?

The Solution: This classified narrative analysis engine reveals the hidden patterns that captivate readers. Upload your manuscript and watch as we dissect every sentence, revealing emotional arcs, dialogue patterns, and narrative rhythms that separate bestsellers from the slush pile.

Tension Mapping: See exactly where your story drags and where it soars across every chapter.
Emotional Flow Analysis: Track how your characters' journeys impact reader engagement and emotional investment.
Dialogue Intelligence: Analyze conversation patterns, character voice consistency, and speech authenticity across your entire manuscript.
Character Arc Visualization: Watch your protagonists transform across chapters with data-driven character development tracking.
From manuscript to masterpiece. Every story has a structure—now you can see yours.
Codename: IDEOSCOPE
Discovery Phase

See What's Resonating Before Anyone Else

The Problem: Creators waste hours scrolling through endless feeds trying to understand what's trending in their niche. By the time you spot a trend manually, it's already saturated. You need to see what's resonating with audiences before it becomes obvious to everyone else.

The Solution: AI-curated Pinterest-style boards that automatically surface the most relevant viral and high-engagement content for whatever you're trying to create. Stop chasing trends—start anticipating them.

Trend Radar: AI monitors millions of posts to identify what's gaining traction in your creative domain before it hits mainstream awareness.
Smart Boards: Visual inspiration boards automatically curated around your projects, showing viral content, engagement patterns, and emerging themes.
Resonance Analysis: Understand why specific content is connecting with audiences through AI-powered engagement pattern analysis.
Creator Intelligence: Learn from successful creators in your space—see what formats, topics, and approaches are driving authentic engagement.
Stop guessing what will resonate. Start creating with confidence.
Codename: DARWIN
Private Testing

Generate Hundreds of Ideas While You Sleep

The Problem: You spend hours generating ideas only to hit the same creative walls. Manual brainstorming sessions produce diminishing returns after the first few rounds. You need fresh perspectives, but your team is stuck in the same thinking patterns.

The Solution: Get a creative partner that works around the clock, generating and refining ideas while you focus on other priorities. This system automatically produces hundreds of variations, cross-breeds the best concepts, and surfaces breakthrough combinations you'd never discover manually.

24/7 Idea Generation: Set it running overnight and wake up to hundreds of refined concepts, each building on your initial direction.
Smart Quality Filtering: Multiple AI evaluators assess ideas from different angles—practicality, originality, market fit—so you only see the gems.
Cross-Breeding Innovation: The system combines your best ideas in unexpected ways, discovering hybrid concepts you'd never think to try.
Stay in Control: Guide the process anytime by marking favorites, adding constraints, or steering toward specific outcomes.
Stop forcing creativity. Start discovering what's already waiting to be found.

src/redirects.njk (240 B)

---
permalink: /_redirects
eleventyExcludeFromCollections: true
---
{# Netlify/Vercel _redirects file format #}
{%- for redirect in authorRedirects -%}
{{ redirect.source }} {{ redirect.destination }} {{ redirect.statusCode }}
{% endfor -%}

src/research.md (19.8 KiB)


eleventyNavigation: key: Research order: 3 layout: simple.njk title: Research description: Cutting-edge AI research projects and academic contributions


Research

Advanced research projects exploring the frontiers of AI, machine learning, and software engineering. These projects contribute to academic understanding and push the boundaries of what's possible with intelligent systems.

ScrambleBench
Research Release

Contamination-Resistant LLM Evaluation Toolkit

The Problem: Training data contamination makes LLM evaluation meaningless. Models perform well on benchmarks they've seen during training, giving false confidence in capabilities. How do you test what a model truly understands versus what it memorized?

The Solution: A comprehensive benchmarking framework that creates truly novel test cases by transforming existing benchmarks through constructed languages and document transformations, ensuring models are evaluated on genuinely unseen content.

Constructed Language Translation: Transform benchmarks into artificial languages that preserve logical structure while eliminating memorization advantages.
Document Transformation: Advanced text transformations and long-context document restructuring that maintains semantic meaning while creating novel test cases.
Multi-Model Evaluation: Test 100+ models through OpenRouter integration with comprehensive statistical analysis and rich visualizations.
Research-Grade Toolkit: Complete CLI and Python API designed for researchers and AI practitioners conducting rigorous evaluation studies.

Finally know what your models actually understand—not what they memorized.

Lethe
NeurIPS 2025

Infinite Context Through Intelligent Forgetting Research

The Research Question: Can AI agents achieve infinite context by intelligently filtering irrelevant information and rewriting verbose histories into efficient representations? Current approaches either hit token limits or require manual context curation, creating productivity bottlenecks.

Our Approach: Lethe research explores novel hybrid retrieval architectures that combine intelligent filtering, efficient rewriting, and adaptive compression. Our system eliminates context management overhead by automatically determining relevance and optimizing message representation for unlimited agent memory.

Intelligent Forgetting Framework: Systematic evaluation of relevance filtering algorithms that automatically identify and remove irrelevant messages while preserving essential context information.
Efficient Rewriting Research: Novel compression techniques that transform verbose conversations into information-dense representations, reducing token usage while maintaining semantic fidelity.
Zero-Overhead Context Management: Elimination of manual context curation through automated relevance assessment and dynamic history optimization for infinite agent memory.
Production-Validated Results: Complete experimental framework demonstrating infinite context capabilities with sub-3s performance and rigorous evaluation of forgetting effectiveness.

Research foundation for infinite agent context through intelligent forgetting and zero-overhead memory management.

FastPath
Publication Ready

PageRank Centrality for Intelligent Repository Content Selection

The Research Question: Can PageRank centrality algorithms optimize repository content selection for LLM consumption? Current approaches use naive concatenation or basic similarity metrics, failing to capture code dependency relationships and importance hierarchies.

Our Innovation: FastPath V3 introduces the first application of PageRank centrality to repository analysis, creating intelligent dependency graphs that identify critical code components. Our novel multi-fidelity approach achieves 27.8% improvement in QA accuracy with rigorous statistical validation.

PageRank Code Centrality: Novel application of PageRank algorithms to code dependency graphs, identifying central components that maximize understanding per token with statistical significance (p<0.001).
Multi-Fidelity Architecture: Adaptive budget allocation across semantic chunks, dependency relationships, and documentation with submodular optimization ensuring optimal information density.
Empirical Validation Framework: Comprehensive evaluation against baselines (BM25, TF-IDF) with 27.8% improvement in QA accuracy and large effect size (Cohen's d=3.11) across diverse repositories.
Production Research: Complete implementation with 4.7Ɨ speedup, 75% memory reduction, and reproducible benchmark framework designed for academic publication standards.

Bridging graph theory and software engineering: the first PageRank approach to intelligent code selection.

Matrix
Active Research

Parametric Repository Generator for AI Agent Benchmarking

The Research Challenge: How do we systematically evaluate AI coding agents? Current benchmarks use static codebases that don't reflect the complexity and variability of real development environments. We need controlled, realistic testing environments.

Our Innovation: Matrix (Parametric Repo Generator) creates sophisticated research platforms for benchmarking AI coding agents through parametric codebase generation. It provides a "wind tunnel" for testing agents with controllable complexity parameters.

Parametric Control: Generate codebases with precise control over complexity metrics including lines of code, dependency depth, and coupling complexity.
Realistic Bug Injection: Systematic injection of off-by-one errors, API misuse patterns, and null handling issues that mirror real development challenges.
Comprehensive Test Generation: Automated creation of unit tests, integration tests, and metamorphic testing suites for complete validation coverage.
Agent Instrumentation: Advanced behavior tracing and instrumentation system for detailed analysis of agent performance and decision-making patterns.

Creating the scientific foundation for rigorous AI coding agent evaluation.

BEM
Implementation Complete

Bolt-on Expert Modules for Dynamic Neural Network Adaptation

The Problem: Traditional parameter-efficient fine-tuning methods like LoRA are static and don't adapt to varying task complexity or context. Current approaches can't handle distribution shifts or provide dynamic specialization based on input characteristics.

Our Solution: BEM introduces dynamic neural architectures that enable context-dependent expert routing and retrieval-aware adaptation. Our system generates context-specific weight modifications that adapt to different tasks and contexts in real-time.

Context-Aware Parameter Generation: Dynamic weight modification system that specializes computational pathways based on input characteristics and task requirements.
Multi-Expert Routing System: Intelligent routing that selects appropriate expert modules based on context analysis and task complexity assessment.
Cross-Modal Support: Unified architecture supporting text, vision, and multimodal tasks with consistent performance across domains.
Robust Performance: 12-42% better accuracy than 6 major MoE-LoRA competitors, maintains performance across distribution shifts and adversarial inputs.

Proven: Dynamic neural architectures achieve superior adaptation with cross-domain robustness.

Arachne
Production Ready

Advanced JavaScript Deobfuscation Engine

The Research Challenge: Modern JavaScript obfuscation uses sophisticated techniques that defeat pattern-matching approaches. Can formal methods and constraint solving crack the most advanced obfuscation schemes that protect malware and defeat traditional analysis tools?

Our Innovation: ArachneJS is the first JavaScript deobfuscator built on intermediate representation (IR) analysis, Z3 constraint solving, and bytecode lifting. It achieves 95% success rate on advanced obfuscation where competitors manage only 45-70%.

IR-Based Analysis: Multi-pass optimization pipeline using formal program analysis with Control Flow Graphs (CFG) and Static Single Assignment (SSA) form—the only tool with true semantic understanding.
Constraint Solving Integration: Z3 SMT solver integration for symbolic execution and mathematical obfuscation cracking—handles constraint-based hiding that defeats all other tools.
Bytecode Lifting Capabilities: Advanced QuickJS and V8 bytecode analysis for VM-based obfuscation—the only tool that can analyze bytecode-level protection schemes.
Formal Correctness Guarantees: Property-based testing and mathematical verification ensure semantic preservation—zero false positives with proven correctness.

Beyond pattern matching: formal methods meet practical JavaScript deobfuscation for security research.

src/styles/animations.css (6.0 KiB)

/* Animation Styles */

/* =================================
   Keyframe Animations
   ================================= */

/* Fade In Animation */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Slide In From Left */
@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Slide In From Right */
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Scale In Animation */
@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Bounce Animation */
@keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    transform: translate3d(0, -12px, 0);
  }
  70% {
    transform: translate3d(0, -6px, 0);
  }
  90% {
    transform: translate3d(0, -2px, 0);
  }
}

/* Pulse Animation */
@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

/* Float Animation */
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
}

/* Rotate Animation */
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Glow Animation */
@keyframes glow {
  0%, 100% {
    box-shadow: 0 0 3px rgba(0, 123, 255, 0.2);
  }
  50% {
    box-shadow: 0 0 8px rgba(0, 123, 255, 0.3);
  }
}

/* =================================
   Animation Classes
   ================================= */

/* Entry Animations */
.animate-fade-in {
  animation: fadeIn 0.6s ease-out forwards;
}

.animate-slide-in-left {
  animation: slideInLeft 0.8s ease-out forwards;
}

.animate-slide-in-right {
  animation: slideInRight 0.8s ease-out forwards;
}

.animate-scale-in {
  animation: scaleIn 0.4s ease-out forwards;
}

/* Continuous Animations */
.animate-bounce {
  animation: bounce 2s infinite;
}

.animate-pulse {
  animation: pulse 2s infinite;
}

.animate-float {
  animation: float 3s ease-in-out infinite;
}

.animate-rotate {
  animation: rotate 2s linear infinite;
}

.animate-glow {
  animation: glow 2s ease-in-out infinite;
}

/* =================================
   Hover Animations
   ================================= */
.hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.hover-scale {
  transition: transform 0.2s ease;
}

.hover-scale:hover {
  transform: scale(1.05);
}

.hover-rotate {
  transition: transform 0.3s ease;
}

.hover-rotate:hover {
  transform: rotate(5deg);
}

/* =================================
   Loading Animations
   ================================= */
.loading-spinner {
  width: 2rem;
  height: 2rem;
  border: 3px solid rgba(0, 123, 255, 0.1);
  border-top: 3px solid var(--primary-color, #007bff);
  border-radius: 50%;
  animation: rotate 1s linear infinite;
}

.loading-dots {
  display: inline-flex;
  gap: 0.25rem;
}

.loading-dots::before,
.loading-dots::after {
  content: '';
  width: 0.5rem;
  height: 0.5rem;
  background: var(--primary-color, #007bff);
  border-radius: 50%;
  animation: loading-dot 1.4s infinite ease-in-out;
}

.loading-dots::before {
  animation-delay: -0.16s;
}

.loading-dots::after {
  animation-delay: 0.16s;
}

@keyframes loading-dot {
  0%, 80%, 100% {
    transform: scale(0.8);
    opacity: 0.5;
  }
  40% {
    transform: scale(1);
    opacity: 1;
  }
}

/* =================================
   Staggered Animations
   ================================= */
.stagger-animation > * {
  opacity: 0;
  animation: fadeIn 0.6s ease-out forwards;
}

.stagger-animation > *:nth-child(1) { animation-delay: 0.1s; }
.stagger-animation > *:nth-child(2) { animation-delay: 0.2s; }
.stagger-animation > *:nth-child(3) { animation-delay: 0.3s; }
.stagger-animation > *:nth-child(4) { animation-delay: 0.4s; }
.stagger-animation > *:nth-child(5) { animation-delay: 0.5s; }
.stagger-animation > *:nth-child(6) { animation-delay: 0.6s; }

/* =================================
   Neural Network Animations
   ================================= */
.neural-node {
  animation: pulse 3s ease-in-out infinite;
}

.neural-connection {
  opacity: 0;
  animation: fadeIn 2s ease-in-out infinite alternate;
}

.neural-data-flow {
  animation: float 4s ease-in-out infinite;
}

/* =================================
   Accessibility Considerations
   ================================= */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .animate-bounce,
  .animate-pulse,
  .animate-float,
  .animate-rotate,
  .animate-glow {
    animation: none;
  }
  
  .loading-spinner,
  .loading-dots::before,
  .loading-dots::after {
    animation: none;
  }
}

/* =================================
   Performance Optimizations
   ================================= */
.will-animate {
  will-change: transform, opacity;
}

.hardware-accelerated {
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;
}

/* =================================
   Intersection Observer Triggers
   ================================= */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.animate-on-scroll.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* =================================
   Custom Easing Functions
   ================================= */
:root {
  --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

.smooth-ease {
  transition: all 0.3s var(--ease-out-cubic);
}

src/styles/cards.css (30.4 KiB)

/* Service Card and Discovery Option Styles */

/* =================================
   Discovery Options Grid & Cards
   ================================= */

.discovery-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--space-xl);
  margin: var(--space-xl) 0;
  align-items: start;
}

.discovery-option {
  background: var(--color-surface);
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  height: 20rem;
}

/* Shimmer animation for buttons */
@keyframes tagShine {
  from {
    background-position: -200% center;
  }
  to {
    background-position: 200% center;
  }
}

/* Discovery section button styles with shimmer animation */
.discovery-option .btn-unified.btn-primary[data-contact-type] {
  margin-top: auto;
  width: 100%;
  position: relative;
  border: none;
  overflow: hidden;
  background: linear-gradient(
    to right, 
    var(--color-accent) 20%, 
    var(--color-accent) 35%, 
    rgba(115, 125, 247, 1) 42%, 
    rgba(156, 175, 255, 1) 50%, 
    rgba(115, 125, 247, 1) 58%, 
    var(--color-accent) 65%, 
    var(--color-accent) 100%
  );
  background-size: 200% auto;
  animation: tagShine 6s linear infinite;
  will-change: background-position;
}

.discovery-option .btn-unified.btn-primary .btn-inner {
  margin: 2px;
  padding: var(--space-md) var(--space-xl);
  background: var(--color-accent);
  border-radius: calc(var(--radius-lg) - 1px);
  width: calc(100% - 4px);
  height: calc(100% - 4px);
}

.discovery-option .btn-unified.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.4);
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
  .discovery-option .btn-unified.btn-primary[data-contact-type] {
    animation: tagShine 3s ease-in-out infinite;
    margin: var(--space-md) 0;
  }

  .discovery-options {
    gap: var(--space-lg);
  }
}

.discovery-option h3 {
  margin-top: 0;
  margin-bottom: var(--space-md);
  color: var(--color-accent);
  font-size: var(--text-base);
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
  transition: all 0.3s ease;
}

.discovery-option:hover h3 {
  color: var(--color-accent);
  text-shadow: 0 0 12px rgba(99, 102, 241, 0.6);
}

.discovery-option:hover h3 i {
  filter: drop-shadow(0 0 8px rgba(99, 102, 241, 0.8));
}

.discovery-option p {
  margin-bottom: var(--space-lg);
  font-size: var(--text-base);
  align-self: start;
}

/* =================================
   Services Grid & Service Cards
   ================================= */

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
  margin-top: var(--space-lg);
  align-items: start;
}

.service-card {
  background: var(--color-surface);
  padding: var(--space-xl);
  padding-bottom: calc(var(--space-xl) + 120px); /* Add space for visual element */
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  border: 1px solid var(--color-border-light);
  transition: all 0.3s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: 3.75rem 5rem 1fr;
  height: 25rem;
}

.service-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  border-color: var(--color-accent);
}

.service-card.expanded {
  transform: scale(1.01);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
  border-color: var(--color-accent);
  z-index: 10;
}

.service-card h3 {
  margin-top: 0;
  margin-bottom: var(--space-md);
  color: var(--color-accent);
  font-weight: 600;
  font-size: var(--text-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.2;
}

.service-summary {
  transition: opacity 0.3s ease;
  align-self: start;
}

.service-details {
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border-light);
}

.service-card.expanded .service-summary {
  opacity: 0.7;
}

.service-card.expanded .service-details {
  display: block;
  opacity: 1;
}

.service-details h4 {
  margin-top: 0;
  margin-bottom: var(--space-sm);
  color: var(--color-text);
  font-size: var(--text-lg);
}

.service-details ul {
  margin: var(--space-sm) 0;
  padding-left: var(--space-lg);
}

.service-details li {
  margin-bottom: var(--space-xs);
}

.service-card .click-hint {
  position: absolute;
  bottom: var(--space-sm);
  right: var(--space-sm);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  opacity: 0.6;
  transition: opacity 0.3s ease;
}

.service-card.expanded .click-hint {
  opacity: 0;
}

.service-card.expanded .service-visual {
  opacity: 1;
}

.service-card.expanded .service-visual.animate .arch-layer {
  animation: layerBuild 0.8s ease-out forwards;
}

/* Style service-visual elements for proper display */
.service-visual .arch-layer {
  background: rgba(99, 102, 241, 0.1);
  border: 1px solid rgba(99, 102, 241, 0.3);
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

/* Only force visibility when card is expanded and animated */
.service-card.expanded .service-visual .arch-layer {
  opacity: 1;
}

.service-visual .network-node,
.service-visual .milestone-marker,
.service-visual .hub-core,
.service-visual .agent-instance,
.service-visual .agent-vm,
.service-visual .vm-boundary,
.service-visual .agent-core,
.service-visual .dept-node,
.service-visual .central-hub,
.service-visual .hub-pulse,
.service-visual .isolation-indicator {
  opacity: 1 !important;
  display: block !important;
}

.service-card.expanded .service-visual.animate .milestone-marker {
  opacity: 1;
}

.service-card.expanded .service-visual.animate .network-node {
  opacity: 1;
}

/* =================================
   Shared Card Title Styles
   ================================= */

/* Centered card titles with hover glow */
.discovery-option h3,
.service-card h3 {
  text-align: center;
  transition: all 0.3s ease;
}

.discovery-option:hover h3,
.service-card:hover h3 {
  text-shadow: 0 0 2px rgba(102, 126, 234, 0.4);
  filter: brightness(1.15);
}

/* Icon styles for h3 elements - 25% bigger */
.service-card h3 i,
.discovery-option h3 i {
  width: 1.5em;
  height: 1.5em;
  margin-right: 0;
  margin-left: 0;
  vertical-align: middle;
  display: inline-block;
}

/* =================================
   Service Visual Elements
   ================================= */

/* Base Service Visual Container */
.service-visual {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 120px;
  background: linear-gradient(135deg, var(--color-graphite-750) 0%, var(--color-graphite-700) 100%);
  border-bottom-left-radius: var(--radius-lg);
  border-bottom-right-radius: var(--radius-lg);
  overflow: hidden;
  opacity: 0.8;
}

/* Removed universal gradient overlay to ensure consistency between service cards */

/* Production Pipeline Visualization */
.production-pipeline {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-sm);
  background: linear-gradient(135deg, rgba(14, 165, 233, 0.05) 0%, rgba(99, 102, 241, 0.05) 100%);
  overflow: hidden;
}

.pipeline-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  position: relative;
}

.stage-icon {
  font-size: 12px;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--color-accent), rgb(14, 165, 233));
  border-radius: 50%;
  color: white;
  font-weight: bold;
}

.stage-label {
  font-size: 8px;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.stage-status {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
  animation: statusPulse 2s infinite;
}

.stage-status.success {
  background: rgb(34, 197, 94);
}

.pipeline-flow {
  flex: 1;
  height: 2px;
  background: rgba(99, 102, 241, 0.2);
  position: relative;
  margin: 0 8px;
}

.flow-segment {
  height: 100%;
  position: relative;
  overflow: hidden;
}

.code-commit, .build-artifact, .live-agent {
  position: absolute;
  width: 8px;
  height: 8px;
  background: var(--color-accent);
  border-radius: 50%;
  top: -3px;
  animation: pipelineFlow 3s infinite;
}

.flowing {
  opacity: 0;
}

.uptime-indicator {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 7px;
  font-weight: 700;
  color: rgb(34, 197, 94);
  background: rgba(34, 197, 94, 0.1);
  padding: 2px 4px;
  border-radius: 4px;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.agent-swarm {
  position: absolute;
  bottom: 8px;
  right: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.agent-instance {
  width: 6px;
  height: 6px;
  background: var(--color-accent);
  border-radius: 50%;
  animation: agentScale 2s infinite;
}

.scaling-indicator {
  font-size: 6px;
  color: var(--color-text-secondary);
  font-weight: 600;
  text-align: center;
}

/* =================================
   AI-First Architecture Visualization
   ================================= */

.ai-first-architecture {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-sm);
}

.architecture-stack {
  position: relative;
  width: 65%;
  height: 100%;
}

.arch-layer {
  position: absolute;
  left: 0;
  right: 0;
  border: 1px solid rgba(99, 102, 241, 0.3);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(99, 102, 241, 0.1);
  animation: layerBuild 0.8s ease-out forwards;
  opacity: 0;
  transform: translateY(20px);
}

.arch-layer.building {
  background: rgba(99, 102, 241, 0.2);
  border-color: rgba(99, 102, 241, 0.5);
}

.layer-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--color-text);
  text-align: center;
}

.code-particles,
.flow-lines,
.neural-nodes,
.logic-circuits,
.autonomous-indicators {
  position: absolute;
  top: 2px;
  right: 4px;
  width: 6px;
  height: 6px;
  background: var(--color-accent);
  border-radius: 50%;
  animation: pulse 2s infinite;
}

.velocity-multiplier {
  position: relative;
  width: 30%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.velocity-arrow {
  font-size: 24px;
  font-weight: bold;
  color: var(--color-accent);
  animation: arrowPulse 1.5s infinite;
}

.multiplier-text {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-accent);
  text-shadow: 0 0 8px rgba(99, 102, 241, 0.6);
}

/* =================================
   Agent Orchestration Visualization
   ================================= */

.agent-orchestration {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.central-hub {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.hub-core {
  background: var(--color-accent);
  color: white;
  padding: 8px 12px;
  border-radius: 50px;
  font-size: 10px;
  font-weight: 600;
  position: relative;
  z-index: 2;
}

.hub-pulse {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  border: 2px solid var(--color-accent);
  border-radius: 50%;
  animation: hubPulse 2s infinite;
}

.isolated-agents {
  position: relative;
  width: 100%;
  height: 100%;
}

.agent-vm {
  position: absolute;
  width: 24px;
  height: 24px;
  animation: agentAppear 0.6s ease-out forwards;
  opacity: 0;
}

.vm-boundary {
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  border: 1px solid rgba(99, 102, 241, 0.4);
  border-radius: 4px;
  background: rgba(99, 102, 241, 0.05);
}

.agent-core {
  position: relative;
  width: 100%;
  height: 100%;
  background: var(--color-accent);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 8px;
  font-weight: 600;
  z-index: 1;
}

.isolation-indicator {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 6px;
  height: 6px;
  background: rgb(34, 197, 94);
  border-radius: 50%;
  animation: pulse 2s infinite;
}

.dept-node {
  position: absolute;
  padding: 2px 6px;
  background: rgba(99, 102, 241, 0.2);
  border: 1px solid rgba(99, 102, 241, 0.4);
  border-radius: 12px;
  font-size: 8px;
  font-weight: 600;
  color: var(--color-text);
  animation: nodeFloat 3s ease-in-out infinite;
}

.node-label {
  text-align: center;
}

.connection-beam {
  position: absolute;
  width: 2px;
  height: 20px;
  background: linear-gradient(to bottom, var(--color-accent), transparent);
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  animation: beamFlicker 2s infinite;
}

.integration-waves {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

.wave {
  position: absolute;
  border: 1px solid rgba(99, 102, 241, 0.2);
  border-radius: 50%;
  animation: waveExpand 3s infinite;
}

.wave-1 {
  top: 40%;
  left: 40%;
  width: 20%;
  height: 20%;
  animation-delay: 0s;
}

.wave-2 {
  top: 35%;
  left: 35%;
  width: 30%;
  height: 30%;
  animation-delay: 1s;
}

.wave-3 {
  top: 30%;
  left: 30%;
  width: 40%;
  height: 40%;
  animation-delay: 2s;
}

/* =================================
   Productivity Training Visualization
   ================================= */

.productivity-training {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-sm);
}

.skill-progression {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}

.skill-level {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.skill-bar {
  width: 40px;
  height: 8px;
  background: rgba(99, 102, 241, 0.2);
  border-radius: 4px;
  position: relative;
  overflow: hidden;
}

.skill-level.basic .skill-bar::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 30%;
  height: 100%;
  background: var(--color-accent);
  border-radius: 4px;
}

.skill-level.advanced .skill-bar::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 90%;
  height: 100%;
  background: var(--color-accent);
  border-radius: 4px;
  animation: skillGrow 2s ease-out forwards;
}

.skill-label {
  font-size: 8px;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-align: center;
}

.transformation-arrow {
  font-size: 16px;
  color: var(--color-accent);
  animation: arrowPulse 1.5s infinite;
}

.productivity-metrics {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.metric-circle {
  position: relative;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.circle-progress {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(var(--color-accent) var(--progress, 75%), rgba(99, 102, 241, 0.2) 0%);
  animation: circleRotate 3s ease-in-out infinite;
}

.metric-text {
  position: relative;
  text-align: center;
  font-size: 8px;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.2;
  z-index: 1;
}

.workflow-icons {
  display: flex;
  gap: 4px;
}

.workflow-icon {
  width: 12px;
  height: 12px;
  background: rgba(99, 102, 241, 0.3);
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  color: var(--color-accent);
  animation: iconPulse 2s infinite;
}

.workflow-icon:nth-child(2) {
  animation-delay: 0.5s;
}

.workflow-icon:nth-child(3) {
  animation-delay: 1s;
}

/* =================================
   Autonomous Network Visualization
   ================================= */

.autonomous-network {
  position: relative;
  width: 100%;
  height: 100%;
}

.network-node {
  position: absolute;
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.network-node.central {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
  height: 20px;
}

.pulse-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 30px;
  height: 30px;
  border: 2px solid var(--color-accent);
  border-radius: 50%;
  animation: ringPulse 2s infinite;
}

.node-core {
  background: var(--color-accent);
  width: 100%;
  height: 100%;
  border-radius: 50%;
  position: relative;
  z-index: 1;
  animation: nodePulse 3s ease-in-out infinite;
}

.network-node.satellite .node-core {
  width: 12px;
  height: 12px;
}

.connection-line {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2px;
  height: 30px;
  background: linear-gradient(to bottom, var(--color-accent), transparent);
  transform-origin: top center;
  animation: connectionFlicker 2s infinite;
}

.data-flow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

.flow-particle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 4px;
  background: var(--color-accent);
  border-radius: 50%;
  animation: particleFlow 3s infinite;
}

/* =================================
   SVG Solar System Animation
   ================================= */

/* Solar system container - square aspect ratio for perfect SVG scaling */
.solar-system {
  width: 120px;
  height: 120px;
  margin: 0 auto;
  aspect-ratio: 1 / 1;
}

/* SVG fills the container completely */
.solar-system svg {
  width: 100%;
  height: 100%;
  color: var(--color-accent, #6366f1);
}

/* Orbit animation - each group rotates around SVG center (50,50) */
.orbit {
  transform-origin: 50px 50px;
  animation: orbit-spin var(--orbit-period) linear infinite;
}

/* Keyframe for smooth orbital rotation */
@keyframes orbit-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* =================================
   Learning Evolution Visualization
   ================================= */

.learning-evolution {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-sm);
}

.brain-container {
  position: relative;
  width: 40px;
  height: 30px;
  display: flex;
}

.brain-hemisphere {
  width: 50%;
  height: 100%;
  border: 1px solid rgba(99, 102, 241, 0.4);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  padding: 2px;
}

.brain-hemisphere.left {
  border-radius: 12px 0 0 12px;
  border-right: none;
}

.brain-hemisphere.right {
  border-radius: 0 12px 12px 0;
  border-left: none;
}

.neural-pathway {
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
  animation: neuralFire 2s infinite;
}

.neural-pathway:nth-child(2) {
  animation-delay: 0.5s;
}

.neural-pathway:nth-child(3) {
  animation-delay: 1s;
}

.learning-pulse {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
  height: 8px;
  background: var(--color-accent);
  border-radius: 50%;
  animation: learningPulse 1.5s infinite;
}

.data-absorption {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

.data-point {
  position: absolute;
  width: 3px;
  height: 3px;
  background: rgba(99, 102, 241, 0.6);
  border-radius: 50%;
}

.data-point.incoming {
  animation: dataAbsorb 2s infinite;
  top: 20%;
  left: 10%;
}

.data-point:nth-child(2) {
  top: 40%;
  left: 15%;
}

.data-point:nth-child(3) {
  top: 60%;
  left: 20%;
}

.data-point:nth-child(4) {
  top: 80%;
  left: 25%;
}

.improvement-chart {
  display: flex;
  align-items: end;
  gap: 2px;
  height: 40px;
  width: 40px;
}

.chart-bar {
  background: var(--color-accent);
  width: 6px;
  border-radius: 1px 1px 0 0;
  animation: barGrow 1s ease-out forwards;
  transform: scaleY(0);
  transform-origin: bottom;
}

/* =================================
   Strategic Roadmap Visualization
   ================================= */

.strategic-roadmap {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 var(--space-sm);
}

.roadmap-timeline {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 30px;
  margin-bottom: 20px;
}

.milestone-marker {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.milestone-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(99, 102, 241, 0.3);
  position: relative;
  z-index: 2;
}

.milestone-marker.completed .milestone-dot {
  background: var(--color-accent);
}

.milestone-marker.active .milestone-dot {
  background: var(--color-accent);
  box-shadow: 0 0 8px rgba(99, 102, 241, 0.6);
}

.milestone-dot.pulsing {
  animation: milestonePulse 2s infinite;
}

.milestone-label {
  font-size: 7px;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-align: center;
}

.progress-line-bg {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(99, 102, 241, 0.2);
  transform: translateY(-50%);
  z-index: 1;
}

.progress-line-fill {
  position: absolute;
  top: 50%;
  left: 0;
  width: 60%;
  height: 2px;
  background: var(--color-accent);
  transform: translateY(-50%);
  z-index: 1;
  animation: progressFill 2s ease-out forwards;
}

.impact-visualization {
  position: relative;
  height: 40px;
}

.roi-curve {
  position: relative;
  width: 100%;
  height: 100%;
}

.curve-point {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(99, 102, 241, 0.4);
  border-radius: 50%;
  transform: translate(-50%, 50%);
}

.curve-point.active {
  background: var(--color-accent);
  box-shadow: 0 0 6px rgba(99, 102, 241, 0.8);
  animation: curvePointPulse 2s infinite;
}

.roi-line {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(45deg, 
    transparent 0%, 
    rgba(99, 102, 241, 0.1) 20%,
    rgba(99, 102, 241, 0.2) 40%,
    rgba(99, 102, 241, 0.3) 60%,
    var(--color-accent) 80%,
    var(--color-accent) 100%
  );
  border-radius: 2px;
  opacity: 0.6;
}

/* =================================
   Service Visual Animations
   ================================= */

@keyframes layerBuild {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes pulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}

@keyframes arrowPulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}

@keyframes hubPulse {
  0% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 0.1; transform: translate(-50%, -50%) scale(1.5); }
  100% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); }
}

@keyframes agentAppear {
  0% { opacity: 0; transform: scale(0.5); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes nodeFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

@keyframes beamFlicker {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 1; }
}

@keyframes waveExpand {
  0% { opacity: 0.6; transform: scale(0.8); }
  100% { opacity: 0; transform: scale(1.5); }
}

@keyframes skillGrow {
  0% { width: 30%; }
  100% { width: 90%; }
}

@keyframes circleRotate {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
}

@keyframes iconPulse {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}

@keyframes ringPulse {
  0% { opacity: 0.8; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(2); }
}

@keyframes nodePulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

@keyframes connectionFlicker {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}

@keyframes particleFlow {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateX(30px) translateY(-40px); opacity: 0; }
}

@keyframes neuralFire {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 1; }
}

@keyframes learningPulse {
  0%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 0.5; transform: translate(-50%, -50%) scale(1.5); }
}

@keyframes dataAbsorb {
  0% { opacity: 0; transform: translateX(-20px); }
  50% { opacity: 1; transform: translateX(0); }
  100% { opacity: 0; transform: translateX(20px); }
}

@keyframes barGrow {
  0% { transform: scaleY(0); }
  100% { transform: scaleY(1); }
}

@keyframes milestonePulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
}

@keyframes progressFill {
  0% { width: 0%; }
  100% { width: 60%; }
}

@keyframes curvePointPulse {
  0%, 100% { opacity: 1; transform: translate(-50%, 50%) scale(1); }
  50% { opacity: 0.6; transform: translate(-50%, 50%) scale(1.3); }
}

@keyframes statusPulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}

@keyframes pipelineFlow {
  0% { left: -8px; opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { left: calc(100% + 8px); opacity: 0; }
}

@keyframes agentScale {
  0%, 100% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
}

/* =================================
   Minimal Service Visuals
   ================================= */

.service-visual-minimal {
  background: linear-gradient(135deg, var(--color-graphite-750) 0%, var(--color-graphite-700) 100%);
  border: 1px solid var(--color-graphite-600);
}

.minimal-visual-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: var(--color-mist-200);
  width: 100%;
  padding: 0 var(--space-md);
}

.visual-icon {
  font-size: 2rem;
  margin-bottom: var(--space-xs);
  display: block;
}

.visual-text {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-mist-100);
  margin-bottom: var(--space-2xs);
  line-height: 1.2;
}

.visual-subtext {
  font-size: 0.875rem;
  color: var(--color-mist-400);
  opacity: 0.8;
  line-height: 1.2;
}

/* =================================
   Responsive Design
   ================================= */

@media (max-width: 1024px) and (min-width: 769px) {
  .services-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
}

@media (max-width: 768px) {
  .discovery-options {
    grid-template-columns: 1fr;
  }
  
  .services-grid {
    grid-template-columns: 1fr;
  }
}

/* =================================
   Modal Custom Visualization Styles
   ================================= */

.modal-custom-visualization {
  width: 100%;
  height: 300px;
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.modal-custom-visualization .production-pipeline {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}

.modal-custom-visualization .pipeline-stage {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 15px 10px;
  transition: all 0.3s ease;
  position: relative;
}

.modal-custom-visualization .stage-icon {
  font-size: 2.5rem;
  margin-bottom: 8px;
  filter: drop-shadow(0 0 12px rgba(255, 255, 255, 0.4));
}

.modal-custom-visualization .stage-label {
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
  text-align: center;
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
}

.modal-custom-visualization .uptime-indicator {
  position: absolute;
  top: 20px;
  right: 25px;
  background: rgba(34, 197, 94, 0.2);
  border: 1px solid #22c55e;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 0.9rem;
  color: #22c55e;
  font-weight: 700;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.3);
}

.modal-custom-visualization .agent-swarm {
  position: absolute;
  bottom: 20px;
  right: 25px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.modal-custom-visualization .scaling-indicator {
  font-size: 0.9rem;
  color: #3b82f6;
  font-weight: 700;
  background: rgba(59, 130, 246, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.4);
  border-radius: 6px;
  padding: 4px 8px;
  box-shadow: 0 0 6px rgba(59, 130, 246, 0.3);
}

.modal-custom-visualization .agent-instance {
  width: 10px;
  height: 10px;
  background: #3b82f6;
  border-radius: 50%;
  animation: agentScale 2s infinite;
  box-shadow: 0 0 4px rgba(59, 130, 246, 0.5);
}

/* =================================
   Solar System Visualization for Startup Service Card
   ================================= */

.service-visual.solar {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  height: 100%;
}

.service-visual.solar .star {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background: var(--color-accent);
  border-radius: 50%;
  z-index: 5;
  box-shadow: 0 0 8px rgba(99, 102, 241, 0.6);
  animation: starPulse 2s ease-in-out infinite;
}

.service-visual.solar b {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* border: 1px solid var(--color-accent); */
  border-radius: 50%;
  opacity: 0.1;
  animation: orbitSpin 8s linear infinite;
}

.service-visual.solar b:nth-child(2) {
  width: 30px;
  height: 30px;
  animation-duration: 6s;
}

.service-visual.solar b:nth-child(3) {
  width: 50px;
  height: 50px;
  animation-duration: 12s;
}

.service-visual.solar b:nth-child(4) {
  width: 70px;
  height: 70px;
  animation-duration: 18s;
}

.service-visual.solar b:nth-child(5) {
  width: 90px;
  height: 90px;
  animation-duration: 24s;
}

@keyframes starPulse {
  0%, 100% { 
    opacity: 1; 
    transform: translate(-50%, -50%) scale(1); 
  }
  50% { 
    opacity: 0.7; 
    transform: translate(-50%, -50%) scale(1.1); 
  }
}

@keyframes orbitSpin {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

/* Enhanced modal image container to accommodate custom visualization */
.modal-image-container {
  position: relative;
  width: 100%;
  min-height: 300px;
  display: flex;
  flex-direction: column;
}

src/styles/forms.css (15.3 KiB)

/* =================================
   Form Component Styles
   ================================= */

/* Base form container */
.form {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
}

.form-section {
  background: var(--color-surface-50);
  border: 1px solid var(--color-border-light-50);
  border-radius: var(--radius-lg);
  padding: var(--space-2xl);
  margin: var(--space-xl) 0;
  box-shadow: var(--shadow-sm);
}

/* =================================
   Form Layout & Structure
   ================================= */
.form-group {
  margin-bottom: var(--space-lg);
  position: relative;
}

.form-group:last-child {
  margin-bottom: 0;
}

.form-row {
  display: flex;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

.form-row .form-group {
  flex: 1;
  margin-bottom: 0;
}

.form-actions {
  display: flex;
  gap: var(--space-md);
  justify-content: flex-end;
  align-items: center;
  margin-top: var(--space-xl);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border-light);
}

.form-actions.form-actions-center {
  justify-content: center;
}

.form-actions.form-actions-space-between {
  justify-content: space-between;
}

/* =================================
   Label Styles
   ================================= */
.form-label {
  display: block;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: var(--space-xs);
  line-height: 1.4;
}

.form-label.required::after {
  content: " *";
  color: #ef4444;
  font-weight: 700;
}

.form-label-inline {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  line-height: 1.4;
}

.form-hint {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
  line-height: 1.4;
}

/* =================================
   Input Field Styles
   ================================= */
.form-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: inherit;
  font-size: var(--text-base);
  line-height: 1.5;
  color: var(--color-text);
  background: var(--color-background);
  transition: all 0.2s ease;
  box-sizing: border-box;
  min-height: 44px; /* Accessibility: minimum touch target */
}

.form-input::placeholder {
  color: var(--color-text-muted);
  opacity: 1;
}

.form-input:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
  background: var(--color-background);
}

.form-input:hover:not(:focus):not(:disabled) {
  border-color: var(--color-border-hover, var(--color-text-muted));
}

/* Text area specific styles */
.form-textarea {
  min-height: 120px;
  resize: vertical;
  font-family: inherit;
}

.form-textarea.form-textarea-large {
  min-height: 200px;
}

/* =================================
   Select Dropdown Styles
   ================================= */
.form-select {
  width: 100%;
  padding: 0.75rem 2.5rem 0.75rem 1rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: inherit;
  font-size: var(--text-base);
  line-height: 1.5;
  color: var(--color-text);
  background: var(--color-background) url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6,9 12,15 18,9"/></svg>') no-repeat right 0.75rem center;
  background-size: 1rem;
  appearance: none;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: 44px;
}

.form-select:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.form-select:hover:not(:focus):not(:disabled) {
  border-color: var(--color-border-hover, var(--color-text-muted));
}

/* =================================
   Checkbox & Radio Styles
   ================================= */
.form-checkbox,
.form-radio {
  appearance: none;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-background);
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.form-radio {
  border-radius: 50%;
}

.form-checkbox:checked,
.form-radio:checked {
  background: var(--color-accent);
  border-color: var(--color-accent);
}

.form-checkbox:checked::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  border: 2px solid white;
  border-top: 0;
  border-left: 0;
  transform: rotate(45deg);
}

.form-radio:checked::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  background: white;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.form-checkbox:focus,
.form-radio:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.form-checkbox:hover:not(:checked):not(:disabled),
.form-radio:hover:not(:checked):not(:disabled) {
  border-color: var(--color-accent);
}

/* Checkbox and radio groups */
.form-checkbox-group,
.form-radio-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.form-checkbox-group.form-checkbox-group-inline,
.form-radio-group.form-radio-group-inline {
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--space-lg);
}

/* =================================
   Input Groups & Add-ons
   ================================= */
.form-input-group {
  display: flex;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.form-input-addon {
  background: var(--color-surface-50);
  border: 2px solid var(--color-border);
  padding: 0.75rem 1rem;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  white-space: nowrap;
  display: flex;
  align-items: center;
  min-height: 44px;
}

.form-input-addon-start {
  border-right: none;
  border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.form-input-addon-end {
  border-left: none;
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.form-input-group .form-input {
  border-radius: 0;
  flex: 1;
}

.form-input-group .form-input:first-child {
  border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.form-input-group .form-input:last-child {
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.form-input-group .form-input:only-child {
  border-radius: var(--radius-md);
}

/* =================================
   Validation States
   ================================= */

/* Error state */
.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea {
  border-color: #ef4444;
  background: rgba(239, 68, 68, 0.05);
}

.form-group.has-error .form-input:focus,
.form-group.has-error .form-select:focus,
.form-group.has-error .form-textarea:focus {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.form-error {
  display: block;
  font-size: var(--text-xs);
  color: #ef4444;
  margin-top: var(--space-xs);
  line-height: 1.4;
}

.form-error::before {
  content: "⚠ ";
  font-weight: 700;
}

/* Success state */
.form-group.has-success .form-input,
.form-group.has-success .form-select,
.form-group.has-success .form-textarea {
  border-color: #10b981;
  background: rgba(16, 185, 129, 0.05);
}

.form-group.has-success .form-input:focus,
.form-group.has-success .form-select:focus,
.form-group.has-success .form-textarea:focus {
  border-color: #10b981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
}

.form-success {
  display: block;
  font-size: var(--text-xs);
  color: #10b981;
  margin-top: var(--space-xs);
  line-height: 1.4;
}

.form-success::before {
  content: "āœ“ ";
  font-weight: 700;
}

/* Warning state */
.form-group.has-warning .form-input,
.form-group.has-warning .form-select,
.form-group.has-warning .form-textarea {
  border-color: #f59e0b;
  background: rgba(245, 158, 11, 0.05);
}

.form-group.has-warning .form-input:focus,
.form-group.has-warning .form-select:focus,
.form-group.has-warning .form-textarea:focus {
  border-color: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1);
}

.form-warning {
  display: block;
  font-size: var(--text-xs);
  color: #f59e0b;
  margin-top: var(--space-xs);
  line-height: 1.4;
}

.form-warning::before {
  content: "⚔ ";
  font-weight: 700;
}

/* =================================
   Disabled State
   ================================= */
.form-input:disabled,
.form-select:disabled,
.form-textarea:disabled,
.form-checkbox:disabled,
.form-radio:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--color-surface-50);
  border-color: var(--color-border-light);
}

.form-input:disabled::placeholder {
  color: var(--color-text-muted);
  opacity: 0.6;
}

.form-label-inline:has(.form-checkbox:disabled),
.form-label-inline:has(.form-radio:disabled) {
  opacity: 0.6;
  cursor: not-allowed;
}

/* =================================
   Form Button Styles (Submit/Reset)
   ================================= */
.form-submit {
  position: relative;
  border-radius: var(--radius-lg);
  font-weight: 600;
  font-size: var(--text-base);
  transition: all 0.2s ease;
  border: none;
  cursor: pointer;
  text-decoration: none;
  overflow: hidden;
  min-height: 44px;
  padding: 0;
  
  background: linear-gradient(
    to right, 
    var(--color-accent) 20%, 
    var(--color-accent) 35%, 
    rgba(115, 125, 247, 1) 42%, 
    rgba(130, 140, 248, 1) 50%, 
    rgba(115, 125, 247, 1) 58%, 
    var(--color-accent) 65%, 
    var(--color-accent) 100%
  );
  background-size: 200% auto;
  animation: tagShine 6s linear infinite;
}

.form-submit .btn-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--space-xl);
  margin: 2px;
  background: var(--color-accent);
  border-radius: calc(var(--radius-lg) - 1px);
  color: white;
  width: 100%;
  height: 100%;
}

.form-submit .btn-inner .lucide {
  color: rgba(180, 220, 255, 0.9);
  width: 1em;
  height: 1em;
}

.form-submit:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-lg);
  color: white;
}

.form-submit:focus {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.form-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.form-reset {
  position: relative;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  font-weight: 500;
  font-size: var(--text-base);
  transition: all 0.2s ease;
  cursor: pointer;
  text-decoration: none;
  overflow: hidden;
  color: var(--color-text);
  background: var(--color-background);
  min-height: 44px;
  padding: 0;
}

.form-reset .btn-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--space-xl);
  margin: 2px;
  background: var(--color-background);
  border-radius: calc(var(--radius-lg) - 1px);
  color: var(--color-text);
  width: 100%;
  height: 100%;
}

.form-reset:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
  transform: translateY(-1px);
}

.form-reset:hover .btn-inner {
  color: var(--color-accent);
}

.form-reset:focus {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* =================================
   Loading States
   ================================= */
.form-loading {
  position: relative;
}

.form-loading::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: inherit;
}

.form-spinner {
  width: 1.5rem;
  height: 1.5rem;
  border: 3px solid var(--color-border-light);
  border-top: 3px solid var(--color-accent);
  border-radius: 50%;
  animation: form-spin 1s linear infinite;
}

@keyframes form-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* =================================
   Form Animations
   ================================= */
@keyframes tagShine {
  from {
    background-position: -200% center;
  }
  to {
    background-position: 200% center;
  }
}

.form-input,
.form-select,
.form-textarea {
  will-change: border-color, box-shadow;
}

.form-group.animate-in {
  animation: form-fade-in 0.3s ease-out;
}

@keyframes form-fade-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =================================
   Responsive Design
   ================================= */
@media (max-width: 768px) {
  .form-section {
    padding: var(--space-lg);
  }
  
  .form-row {
    flex-direction: column;
    gap: 0;
  }
  
  .form-row .form-group {
    margin-bottom: var(--space-lg);
  }
  
  .form-actions {
    flex-direction: column;
    align-items: stretch;
  }
  
  .form-checkbox-group.form-checkbox-group-inline,
  .form-radio-group.form-radio-group-inline {
    flex-direction: column;
    gap: var(--space-sm);
  }
}

@media (max-width: 480px) {
  .form-section {
    padding: var(--space-md);
    margin: var(--space-lg) 0;
  }
  
  .form-input,
  .form-select,
  .form-textarea {
    font-size: 16px; /* Prevent zoom on iOS */
  }
  
  .form-input-group {
    flex-direction: column;
  }
  
  .form-input-addon-start,
  .form-input-addon-end {
    border-radius: var(--radius-md);
    border: 2px solid var(--color-border);
  }
  
  .form-input-group .form-input {
    border-radius: var(--radius-md);
  }
}

/* =================================
   Accessibility Enhancements
   ================================= */
@media (prefers-reduced-motion: reduce) {
  .form-input,
  .form-select,
  .form-textarea,
  .form-checkbox,
  .form-radio,
  .form-submit,
  .form-reset {
    transition: none;
  }
  
  .form-submit:hover,
  .form-reset:hover {
    transform: none;
  }
  
  .form-spinner {
    animation: none;
  }
  
  .form-group.animate-in {
    animation: none;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .form-input,
  .form-select,
  .form-textarea,
  .form-checkbox,
  .form-radio {
    border-width: 3px;
  }
  
  .form-input:focus,
  .form-select:focus,
  .form-textarea:focus,
  .form-checkbox:focus,
  .form-radio:focus {
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.3);
  }
}

/* Dark mode considerations */
@media (prefers-color-scheme: dark) {
  .form-input,
  .form-select,
  .form-textarea {
    color-scheme: dark;
  }
  
  .form-select {
    background-image: url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2"><polyline points="6,9 12,15 18,9"/></svg>');
  }
}

/* =================================
   Utility Classes
   ================================= */
.form-required {
  color: #ef4444;
  font-weight: 700;
}

.form-optional {
  color: var(--color-text-muted);
  font-weight: 400;
  font-size: var(--text-xs);
}

.form-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.form-field-icon {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-muted);
  pointer-events: none;
  width: 1.25rem;
  height: 1.25rem;
}

.form-field-icon-start {
  left: 12px;
  right: auto;
}

.form-has-icon .form-input {
  padding-right: 3rem;
}

.form-has-icon-start .form-input {
  padding-left: 3rem;
  padding-right: 1rem;
}

src/styles/hero.css (7.4 KiB)

/* Hero Section Styles */

/* Neural Network Background */
.neural-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 1;
  opacity: 0.6;
  pointer-events: none;
}

/* Hero Container */
.hero-container {
  position: relative;
  min-height: 40vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  margin-bottom: 0;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

/* Hero Content */
.hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
  padding: var(--space-3xl) var(--space-xl);
  margin: 0 50px;
}

/* Hero Title Container with Logo */
.hero-title-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xl);
}

/* Hero Logo */
.hero-logo {
  height: 104px;
  width: auto;
  flex-shrink: 0;
  filter: 
    drop-shadow(0 0 2px rgba(255, 215, 0, 0.4)) 
    drop-shadow(0 0 9px rgba(255, 215, 0, 0.22)) 
    drop-shadow(0 0 18px rgba(255, 215, 0, 0.15))
    drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
    drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  animation: logoGlow 3s ease-in-out infinite alternate;
}

.hero-logo:hover {
  filter: 
    drop-shadow(0 0 6px rgba(255, 215, 0, 0.6)) 
    drop-shadow(0 0 24px rgba(255, 215, 0, 0.35)) 
    drop-shadow(0 0 48px rgba(255, 215, 0, 0.25))
    drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
    drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  animation: logoGlowHover 2s ease-in-out infinite alternate;
}

/* Hero Title - Sophisticated Focus-Grabbing Animation */
.hero-title {
  font-size: calc(var(--text-6xl) * 1.33);
  margin-bottom: var(--space-lg);
  line-height: var(--leading-tight);
  position: relative;
  
  /* Elegant monochrome gradient */
  background: linear-gradient(
    135deg,
    var(--color-text) 0%,
    #ffffff 25%,
    var(--color-text) 50%,
    #ffffff 75%,
    var(--color-text) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 300% 100%;
  animation: subtleGlowSweep 4s ease-in-out infinite;
  
  /* Enhanced typography for impact */
  font-weight: 700;
  letter-spacing: -0.02em;
}

/* Hero Content H1 (Fallback and Additional Styles) */
.hero-content h1 {
  font-size: calc(var(--text-6xl) * 1.2);
  margin-bottom: var(--space-lg);
  line-height: var(--leading-tight);
  font-weight: 700;
  
  /* Main title horizontal blur animation */
  transition: filter 0.9s ease, opacity 0.9s ease;
}

.hero-content h1.blurring-out {
  filter: blur(0px) blur(20px);
  opacity: 0;
}

.hero-content h1.blurring-in {
  filter: blur(20px);
  opacity: 0;
}

.hero-content h1.normal {
  filter: blur(0px);
  opacity: 1;
}

/* Hero Subtitle */
.hero-subtitle {
  font-size: calc(var(--text-xl) * 1.5);
  color: var(--color-text-light);
  margin-bottom: 0;
  font-weight: 400;
  line-height: 1.4;
}

/* Rotating Banners */
.rotating-banners {
  position: relative;
  height: 2.5rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Hero Divider with Pulsing Effect */
.hero-divider {
  border: none;
  height: 1px;
  background: rgba(255, 255, 255, 0.026);
  margin: 0 auto 80px auto;
  width: 100%;
  box-shadow: 0 0 2px rgba(255, 255, 255, 0.0525);
  position: relative;
  overflow: hidden;
}

.hero-divider::before {
  content: '';
  position: absolute;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to left,
    transparent 0%,
    rgba(255, 255, 255, 0.089) 50%,
    transparent 100%
  );
  animation: shimmerDivider 3s ease-in-out infinite;
}

/* Hero CTA Section */
.hero-cta {
  display: flex;
  margin: calc(var(--space-4xl) / 2) 0 var(--space-4xl) 0;
  align-items: center;
  justify-content: space-evenly;
}

/* Hero Section Spacing */
.hero {
  margin-bottom: calc(var(--space-2xl) * 1.5);
}

/* Keyframe Animations */
@keyframes logoGlow {
  0% {
    filter: 
      drop-shadow(0 0 4px rgba(255, 215, 0, 0.4)) 
      drop-shadow(0 0 17px rgba(255, 215, 0, 0.2)) 
      drop-shadow(0 0 20px rgba(255, 215, 0, 0.14))
      drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
      drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  }
  100% {
    filter: 
      drop-shadow(0 0 4px rgba(255, 215, 0, 0.4)) 
      drop-shadow(0 0 21px rgba(255, 215, 0, 0.28)) 
      drop-shadow(0 0 26px rgba(255, 215, 0, 0.20))
      drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
      drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  }
}

@keyframes logoGlowHover {
  0% {
    filter: 
      drop-shadow(0 0 6px rgba(255, 215, 0, 0.6)) 
      drop-shadow(0 0 22px rgba(255, 215, 0, 0.32)) 
      drop-shadow(0 0 44px rgba(255, 215, 0, 0.22))
      drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
      drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  }
  100% {
    filter: 
      drop-shadow(0 0 8px rgba(255, 215, 0, 0.7)) 
      drop-shadow(0 0 28px rgba(255, 215, 0, 0.4)) 
      drop-shadow(0 0 56px rgba(255, 215, 0, 0.3))
      drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
      drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  }
}

@keyframes subtleGlowSweep {
  0%, 100% {
    background-position: -100% 0;
    filter: blur(0px) drop-shadow(0 0 0px rgba(102, 126, 234, 0));
  }
  50% {
    background-position: 100% 0;
    filter: blur(0px) drop-shadow(0 0 12px rgba(102, 126, 234, 0.6));
  }
}

@keyframes shimmerDivider {
  0% {
    right: -100%;
  }
  50% {
    right: 100%;
  }
  100% {
    right: -100%;
  }
}

@keyframes subtitleShimmer {
  0%, 100% { 
    background-position: -200% 0; 
  }
  50% { 
    background-position: 200% 0; 
  }
}

/* Responsive Design */
@media (max-width: 768px) {
  .hero-container {
    min-height: 35vh;
  }
  
  .hero-title-container {
    gap: var(--space-lg);
  }
  
  .hero-logo {
    height: 100px;
  }
  
  .hero-content h1 {
    font-size: var(--text-4xl);
  }
  
  .hero-subtitle {
    font-size: var(--text-lg);
  }
  
  .neural-background {
    opacity: 0.3;
  }
  
  .hero-cta {
    flex-direction: column;
    align-items: stretch;
  }
}

/* Neural Network Shimmer Effect - For reduced motion fallback */
.neural-shimmer {
  background: linear-gradient(
    45deg,
    transparent 30%,
    rgba(150, 130, 220, 0.03) 40%,
    rgba(180, 150, 240, 0.08) 50%,
    rgba(150, 130, 220, 0.03) 60%,
    transparent 70%
  );
  background-size: 200% 200%;
  animation: neuralShimmer 4s ease-in-out infinite;
}

@keyframes neuralShimmer {
  0%, 100% {
    background-position: -200% -200%;
    opacity: 0.4;
  }
  50% {
    background-position: 200% 200%;
    opacity: 0.7;
  }
}

/* Accessibility - Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  .hero-title,
  .banner-text {
    animation: none !important;
  }
  
  .hero-logo {
    animation: none !important;
  }
  
  .hero-title {
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    background: linear-gradient(135deg, var(--color-text) 0%, var(--color-accent) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  
  .neural-background {
    display: none;
  }
  
  .neural-shimmer {
    animation: neuralShimmerReduced 6s ease-in-out infinite;
  }
  
  @keyframes neuralShimmerReduced {
    0%, 100% {
      background-position: -100% -100%;
      opacity: 0.2;
    }
    50% {
      background-position: 100% 100%;
      opacity: 0.4;
    }
  }
  
  .hero-divider::before {
    animation: none;
  }
}

src/styles/toc.css (5.8 KiB)

/* Table of Contents Styles */

/* =================================
   Floating Table of Contents
   ================================= */

.toc-container {
    position: fixed;
    right: 20px;
    top: 30%;
    width: 220px;
    z-index: 1000;
    opacity: 0;
    transform: translateX(30px);
    transition: all 0.4s ease;
}

.toc-container.visible {
    opacity: 1;
    transform: translateX(0);
}

.toc-title {
    display: none;
}

.toc {
    padding: var(--space-md);
}

/* Custom tocbot styling */
.toc ol, .toc ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.toc li {
    margin: 0 0 var(--space-sm) 0;
    padding: 0;
}

.toc a {
    display: block;
    padding: var(--space-sm) var(--space-md);
    color: var(--color-text-muted);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 400;
    border-radius: var(--radius-sm);
    transition: all 0.2s ease;
    line-height: 1.4;
}

/* White borders only on top-level TOC items */
.toc > .toc-list > .toc-list-item > a {
    border-left: 2px solid var(--color-border);
}

.toc a:hover {
    color: var(--color-text-light);
    background: transparent;
}

/* White border hover state only for top-level items */
.toc > .toc-list > .toc-list-item > a:hover {
    border-left-color: var(--color-text-light);
}

.toc a.is-active-link {
    color: var(--color-text);
    background: transparent;
    font-weight: 600;
}

/* Active state border colors only for top-level items */
.toc > .toc-list > .toc-list-item > a.is-active-link {
    border-left-color: var(--color-accent);
}

.toc .toc-list-item.is-active-li > a {
    color: var(--color-text);
    font-weight: 600;
}

/* Active state border colors only for top-level items */
.toc > .toc-list > .toc-list-item.is-active-li > a {
    border-left-color: var(--color-accent);
}

/* Override Tocbot's default green styling */
.toc a.is-active-link,
.toc .is-active-link {
    color: var(--color-text) !important;
    background: transparent !important;
}

/* Border color overrides only for top-level items */
.toc > .toc-list > .toc-list-item > a.is-active-link,
.toc > .toc-list > .toc-list-item > .is-active-link {
    border-left-color: var(--color-accent) !important;
}

/* Override the green ::before pseudo-element that creates the indicator line */
.toc .is-active-link::before {
    background-color: var(--color-accent) !important;
}

.toc .is-active-li > a {
    color: var(--color-text) !important;
}

/* Border color for active list items only on top-level */
.toc > .toc-list > .toc-list-item.is-active-li > a {
    border-left-color: var(--color-accent) !important;
}

/* Nested levels */
.toc .toc-list-item {
    position: relative;
}

.toc .toc-list-item.is-collapsible {
    padding-left: 0;
}

.toc .toc-list .toc-list {
    padding-left: var(--space-md);
    transition: all 0.3s ease;
    overflow: hidden;
}

.toc .toc-list .toc-list a {
    font-size: var(--text-xs);
    opacity: 0.8;
}

/* Collapsible TOC styles */
.toc-indicator {
    display: inline-block;
    margin-right: var(--space-xs);
    font-size: var(--text-xs);
    color: var(--color-accent);
    transition: transform 0.2s ease;
    cursor: pointer;
    user-select: none;
}

/* CRITICAL: Always show top-level section headings - never hide them */
.toc > .toc-list > .toc-list-item > a {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* OVERRIDE: Prevent the generic .is-collapsed rule from hiding entire TOC items */
.toc .toc-list-item.is-collapsed {
    max-height: none !important;
    overflow: visible !important;
}

/* Only hide the nested sub-lists when collapsed, NOT the main section titles */
.toc .toc-list-item.is-collapsed > .toc-list {
    max-height: 0 !important;
    opacity: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.toc .toc-list-item:not(.is-collapsed) > .toc-list {
    max-height: 1000px;
    opacity: 1;
}

/* Fast animation for TOC expansion/collapse */
.toc .toc-list-item > .toc-list {
    transition: max-height 0.15s ease-out, opacity 0.1s ease-out;
}

/* Add borders to nested TOC items (H3 level) - will be overridden when active */
.toc .toc-list-item .toc-list .toc-list-item > a {
    border-left: 2px solid var(--color-border);
    padding-left: 8px;
    margin-left: 4px;
}

/* Active state borders for nested TOC items (H3 level) */
.toc .toc-list-item .toc-list .toc-list-item > a.is-active-link {
    border-left-color: var(--color-accent) !important;
}

.toc .toc-list-item .toc-list .toc-list-item.is-active-li > a {
    border-left-color: var(--color-accent) !important;
}

/* CRITICAL FIX: Remove light grey background from ::before pseudo-elements on H3 (nested) TOC links */
.toc .toc-list .toc-list-item .toc-link::before,
.toc .toc-list .toc-list .toc-list-item .toc-link::before {
    background: transparent !important;
    background-color: transparent !important;
}

.toc .toc-list-item.is-collapsed .toc-indicator {
    transform: rotate(0deg);
}

.toc .toc-list-item:not(.is-collapsed) .toc-indicator {
    transform: rotate(90deg);
}

/* Enhanced styling for section headers in TOC - always visible and clean */
.toc .toc-list-item.is-collapsible > a {
    font-weight: 600;
    color: var(--color-text);
    display: block !important;
    opacity: 1 !important;
}

/* White border styling only for top-level collapsible items */
.toc > .toc-list > .toc-list-item.is-collapsible > a {
    border-left-width: 3px;
}

/* Product entries should be more subdued */
.toc .toc-list .toc-list-item a {
    color: var(--color-text-muted);
    font-weight: 400;
    padding-left: var(--space-lg);
}

.toc .toc-list .toc-list-item a:hover {
    color: var(--color-text-light);
}

/* =================================
   Responsive Design for TOC
   ================================= */

@media (max-width: 1400px) {
    .toc-container {
        display: none;
    }
}

src/styles/utilities.css (31.0 KiB)

/* =================================
   UTILITY CLASSES
   Atomic CSS utility classes for consistent design patterns
   ================================= */

/* =================================
   SPACING UTILITIES
   ================================= */

/* Margin utilities */
.m-0 { margin: 0; }
.m-1 { margin: 0.25rem; }
.m-2 { margin: 0.5rem; }
.m-3 { margin: 0.75rem; }
.m-4 { margin: 1rem; }
.m-5 { margin: 1.25rem; }
.m-6 { margin: 1.5rem; }
.m-8 { margin: 2rem; }
.m-10 { margin: 2.5rem; }
.m-12 { margin: 3rem; }
.m-16 { margin: 4rem; }
.m-20 { margin: 5rem; }
.m-auto { margin: auto; }

/* Margin directional utilities */
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-12 { margin-top: 3rem; }
.mt-16 { margin-top: 4rem; }
.mt-20 { margin-top: 5rem; }
.mt-auto { margin-top: auto; }

.mr-0 { margin-right: 0; }
.mr-1 { margin-right: 0.25rem; }
.mr-2 { margin-right: 0.5rem; }
.mr-3 { margin-right: 0.75rem; }
.mr-4 { margin-right: 1rem; }
.mr-5 { margin-right: 1.25rem; }
.mr-6 { margin-right: 1.5rem; }
.mr-8 { margin-right: 2rem; }
.mr-10 { margin-right: 2.5rem; }
.mr-12 { margin-right: 3rem; }
.mr-16 { margin-right: 4rem; }
.mr-20 { margin-right: 5rem; }
.mr-auto { margin-right: auto; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mb-12 { margin-bottom: 3rem; }
.mb-16 { margin-bottom: 4rem; }
.mb-20 { margin-bottom: 5rem; }
.mb-auto { margin-bottom: auto; }

.ml-0 { margin-left: 0; }
.ml-1 { margin-left: 0.25rem; }
.ml-2 { margin-left: 0.5rem; }
.ml-3 { margin-left: 0.75rem; }
.ml-4 { margin-left: 1rem; }
.ml-5 { margin-left: 1.25rem; }
.ml-6 { margin-left: 1.5rem; }
.ml-8 { margin-left: 2rem; }
.ml-10 { margin-left: 2.5rem; }
.ml-12 { margin-left: 3rem; }
.ml-16 { margin-left: 4rem; }
.ml-20 { margin-left: 5rem; }
.ml-auto { margin-left: auto; }

/* Margin x/y axis utilities */
.mx-0 { margin-left: 0; margin-right: 0; }
.mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
.mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
.mx-3 { margin-left: 0.75rem; margin-right: 0.75rem; }
.mx-4 { margin-left: 1rem; margin-right: 1rem; }
.mx-5 { margin-left: 1.25rem; margin-right: 1.25rem; }
.mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; }
.mx-8 { margin-left: 2rem; margin-right: 2rem; }
.mx-10 { margin-left: 2.5rem; margin-right: 2.5rem; }
.mx-12 { margin-left: 3rem; margin-right: 3rem; }
.mx-16 { margin-left: 4rem; margin-right: 4rem; }
.mx-20 { margin-left: 5rem; margin-right: 5rem; }
.mx-auto { margin-left: auto; margin-right: auto; }

.my-0 { margin-top: 0; margin-bottom: 0; }
.my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
.my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; }
.my-3 { margin-top: 0.75rem; margin-bottom: 0.75rem; }
.my-4 { margin-top: 1rem; margin-bottom: 1rem; }
.my-5 { margin-top: 1.25rem; margin-bottom: 1.25rem; }
.my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; }
.my-8 { margin-top: 2rem; margin-bottom: 2rem; }
.my-10 { margin-top: 2.5rem; margin-bottom: 2.5rem; }
.my-12 { margin-top: 3rem; margin-bottom: 3rem; }
.my-16 { margin-top: 4rem; margin-bottom: 4rem; }
.my-20 { margin-top: 5rem; margin-bottom: 5rem; }
.my-auto { margin-top: auto; margin-bottom: auto; }

/* Padding utilities */
.p-0 { padding: 0; }
.p-1 { padding: 0.25rem; }
.p-2 { padding: 0.5rem; }
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.p-10 { padding: 2.5rem; }
.p-12 { padding: 3rem; }
.p-16 { padding: 4rem; }
.p-20 { padding: 5rem; }

/* Padding directional utilities */
.pt-0 { padding-top: 0; }
.pt-1 { padding-top: 0.25rem; }
.pt-2 { padding-top: 0.5rem; }
.pt-3 { padding-top: 0.75rem; }
.pt-4 { padding-top: 1rem; }
.pt-5 { padding-top: 1.25rem; }
.pt-6 { padding-top: 1.5rem; }
.pt-8 { padding-top: 2rem; }
.pt-10 { padding-top: 2.5rem; }
.pt-12 { padding-top: 3rem; }
.pt-16 { padding-top: 4rem; }
.pt-20 { padding-top: 5rem; }

.pr-0 { padding-right: 0; }
.pr-1 { padding-right: 0.25rem; }
.pr-2 { padding-right: 0.5rem; }
.pr-3 { padding-right: 0.75rem; }
.pr-4 { padding-right: 1rem; }
.pr-5 { padding-right: 1.25rem; }
.pr-6 { padding-right: 1.5rem; }
.pr-8 { padding-right: 2rem; }
.pr-10 { padding-right: 2.5rem; }
.pr-12 { padding-right: 3rem; }
.pr-16 { padding-right: 4rem; }
.pr-20 { padding-right: 5rem; }

.pb-0 { padding-bottom: 0; }
.pb-1 { padding-bottom: 0.25rem; }
.pb-2 { padding-bottom: 0.5rem; }
.pb-3 { padding-bottom: 0.75rem; }
.pb-4 { padding-bottom: 1rem; }
.pb-5 { padding-bottom: 1.25rem; }
.pb-6 { padding-bottom: 1.5rem; }
.pb-8 { padding-bottom: 2rem; }
.pb-10 { padding-bottom: 2.5rem; }
.pb-12 { padding-bottom: 3rem; }
.pb-16 { padding-bottom: 4rem; }
.pb-20 { padding-bottom: 5rem; }

.pl-0 { padding-left: 0; }
.pl-1 { padding-left: 0.25rem; }
.pl-2 { padding-left: 0.5rem; }
.pl-3 { padding-left: 0.75rem; }
.pl-4 { padding-left: 1rem; }
.pl-5 { padding-left: 1.25rem; }
.pl-6 { padding-left: 1.5rem; }
.pl-8 { padding-left: 2rem; }
.pl-10 { padding-left: 2.5rem; }
.pl-12 { padding-left: 3rem; }
.pl-16 { padding-left: 4rem; }
.pl-20 { padding-left: 5rem; }

/* Padding x/y axis utilities */
.px-0 { padding-left: 0; padding-right: 0; }
.px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
.px-12 { padding-left: 3rem; padding-right: 3rem; }
.px-16 { padding-left: 4rem; padding-right: 4rem; }
.px-20 { padding-left: 5rem; padding-right: 5rem; }

.py-0 { padding-top: 0; padding-bottom: 0; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }

/* =================================
   TYPOGRAPHY UTILITIES
   ================================= */

/* Font sizes */
.text-xs { font-size: 0.75rem; line-height: 1rem; } /* 12px */
.text-sm { font-size: 0.875rem; line-height: 1.25rem; } /* 14px */
.text-base { font-size: 1rem; line-height: 1.5rem; } /* 16px */
.text-lg { font-size: 1.125rem; line-height: 1.75rem; } /* 18px */
.text-xl { font-size: 1.25rem; line-height: 1.75rem; } /* 20px */
.text-2xl { font-size: 1.5rem; line-height: 2rem; } /* 24px */
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; } /* 30px */
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; } /* 36px */
.text-5xl { font-size: 3rem; line-height: 1; } /* 48px */
.text-6xl { font-size: 3.75rem; line-height: 1; } /* 60px */

/* Font weights */
.font-thin { font-weight: 100; }
.font-extralight { font-weight: 200; }
.font-light { font-weight: 300; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.font-black { font-weight: 900; }

/* Font families */
.font-system { font-family: system-ui, sans-serif; }
.font-heading { font-family: BenchNine, system-ui, sans-serif; }
.font-mono { font-family: ui-monospace, SFMono-Regular, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
.font-serif { font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; }

/* Line heights */
.leading-none { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-snug { line-height: 1.375; }
.leading-normal { line-height: 1.5; }
.leading-relaxed { line-height: 1.625; }
.leading-loose { line-height: 2; }

/* Text alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* Text transform */
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.capitalize { text-transform: capitalize; }
.normal-case { text-transform: none; }

/* Text decoration */
.underline { text-decoration: underline; }
.line-through { text-decoration: line-through; }
.no-underline { text-decoration: none; }

/* Text overflow */
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-ellipsis { text-overflow: ellipsis; }
.text-clip { text-overflow: clip; }

/* White space */
.whitespace-normal { white-space: normal; }
.whitespace-nowrap { white-space: nowrap; }
.whitespace-pre { white-space: pre; }
.whitespace-pre-line { white-space: pre-line; }
.whitespace-pre-wrap { white-space: pre-wrap; }

/* =================================
   COLOR UTILITIES
   ================================= */

/* Text colors using design tokens */
.text-inherit { color: inherit; }
.text-current { color: currentColor; }
.text-transparent { color: transparent; }
.text-default { color: var(--color); }
.text-link { color: var(--link-color); }
.text-muted { color: #666; }
.text-white { color: #fff; }
.text-black { color: #000; }

/* Dark mode text colors */
@media (prefers-color-scheme: dark) {
  .text-muted { color: #ccc; }
}

/* Background colors using design tokens */
.bg-transparent { background-color: transparent; }
.bg-current { background-color: currentColor; }
.bg-default { background-color: var(--background-color); }
.bg-white { background-color: #fff; }
.bg-black { background-color: #000; }
.bg-gray-50 { background-color: #f9fafb; }
.bg-gray-100 { background-color: #f3f4f6; }
.bg-gray-200 { background-color: #e5e7eb; }
.bg-gray-300 { background-color: #d1d5db; }
.bg-gray-400 { background-color: #9ca3af; }
.bg-gray-500 { background-color: #6b7280; }
.bg-gray-600 { background-color: #4b5563; }
.bg-gray-700 { background-color: #374151; }
.bg-gray-800 { background-color: #1f2937; }
.bg-gray-900 { background-color: #111827; }

/* Border colors using design tokens */
.border-transparent { border-color: transparent; }
.border-current { border-color: currentColor; }
.border-default { border-color: var(--border-color); }
.border-white { border-color: #fff; }
.border-black { border-color: #000; }
.border-gray-200 { border-color: #e5e7eb; }
.border-gray-300 { border-color: #d1d5db; }
.border-gray-400 { border-color: #9ca3af; }

/* =================================
   LAYOUT UTILITIES
   ================================= */

/* Display */
.block { display: block; }
.inline-block { display: inline-block; }
.inline { display: inline; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.table { display: table; }
.inline-table { display: inline-table; }
.table-caption { display: table-caption; }
.table-cell { display: table-cell; }
.table-column { display: table-column; }
.table-column-group { display: table-column-group; }
.table-footer-group { display: table-footer-group; }
.table-header-group { display: table-header-group; }
.table-row-group { display: table-row-group; }
.table-row { display: table-row; }
.flow-root { display: flow-root; }
.grid { display: grid; }
.inline-grid { display: inline-grid; }
.contents { display: contents; }
.list-item { display: list-item; }
.hidden { display: none; }

/* Flexbox utilities */
.flex-row { flex-direction: row; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-col { flex-direction: column; }
.flex-col-reverse { flex-direction: column-reverse; }

.flex-wrap { flex-wrap: wrap; }
.flex-wrap-reverse { flex-wrap: wrap-reverse; }
.flex-nowrap { flex-wrap: nowrap; }

.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.items-center { align-items: center; }
.items-baseline { align-items: baseline; }
.items-stretch { align-items: stretch; }

.justify-start { justify-content: flex-start; }
.justify-end { justify-content: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }
.justify-evenly { justify-content: space-evenly; }

.content-center { align-content: center; }
.content-start { align-content: flex-start; }
.content-end { align-content: flex-end; }
.content-between { align-content: space-between; }
.content-around { align-content: space-around; }
.content-evenly { align-content: space-evenly; }

.self-auto { align-self: auto; }
.self-start { align-self: flex-start; }
.self-end { align-self: flex-end; }
.self-center { align-self: center; }
.self-stretch { align-self: stretch; }
.self-baseline { align-self: baseline; }

.flex-1 { flex: 1 1 0%; }
.flex-auto { flex: 1 1 auto; }
.flex-initial { flex: 0 1 auto; }
.flex-none { flex: none; }

.flex-shrink-0 { flex-shrink: 0; }
.flex-shrink { flex-shrink: 1; }

.flex-grow-0 { flex-grow: 0; }
.flex-grow { flex-grow: 1; }

/* Grid utilities */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }

.col-auto { grid-column: auto; }
.col-span-1 { grid-column: span 1 / span 1; }
.col-span-2 { grid-column: span 2 / span 2; }
.col-span-3 { grid-column: span 3 / span 3; }
.col-span-4 { grid-column: span 4 / span 4; }
.col-span-5 { grid-column: span 5 / span 5; }
.col-span-6 { grid-column: span 6 / span 6; }
.col-span-full { grid-column: 1 / -1; }

.grid-rows-1 { grid-template-rows: repeat(1, minmax(0, 1fr)); }
.grid-rows-2 { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.grid-rows-3 { grid-template-rows: repeat(3, minmax(0, 1fr)); }
.grid-rows-4 { grid-template-rows: repeat(4, minmax(0, 1fr)); }
.grid-rows-5 { grid-template-rows: repeat(5, minmax(0, 1fr)); }
.grid-rows-6 { grid-template-rows: repeat(6, minmax(0, 1fr)); }

.row-auto { grid-row: auto; }
.row-span-1 { grid-row: span 1 / span 1; }
.row-span-2 { grid-row: span 2 / span 2; }
.row-span-3 { grid-row: span 3 / span 3; }
.row-span-4 { grid-row: span 4 / span 4; }
.row-span-5 { grid-row: span 5 / span 5; }
.row-span-6 { grid-row: span 6 / span 6; }
.row-span-full { grid-row: 1 / -1; }

.gap-0 { gap: 0; }
.gap-1 { gap: 0.25rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.gap-10 { gap: 2.5rem; }
.gap-12 { gap: 3rem; }
.gap-16 { gap: 4rem; }
.gap-20 { gap: 5rem; }

.gap-x-0 { column-gap: 0; }
.gap-x-1 { column-gap: 0.25rem; }
.gap-x-2 { column-gap: 0.5rem; }
.gap-x-3 { column-gap: 0.75rem; }
.gap-x-4 { column-gap: 1rem; }
.gap-x-5 { column-gap: 1.25rem; }
.gap-x-6 { column-gap: 1.5rem; }
.gap-x-8 { column-gap: 2rem; }
.gap-x-10 { column-gap: 2.5rem; }
.gap-x-12 { column-gap: 3rem; }
.gap-x-16 { column-gap: 4rem; }
.gap-x-20 { column-gap: 5rem; }

.gap-y-0 { row-gap: 0; }
.gap-y-1 { row-gap: 0.25rem; }
.gap-y-2 { row-gap: 0.5rem; }
.gap-y-3 { row-gap: 0.75rem; }
.gap-y-4 { row-gap: 1rem; }
.gap-y-5 { row-gap: 1.25rem; }
.gap-y-6 { row-gap: 1.5rem; }
.gap-y-8 { row-gap: 2rem; }
.gap-y-10 { row-gap: 2.5rem; }
.gap-y-12 { row-gap: 3rem; }
.gap-y-16 { row-gap: 4rem; }
.gap-y-20 { row-gap: 5rem; }

/* Positioning */
.static { position: static; }
.fixed { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.sticky { position: sticky; }

.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.inset-auto { top: auto; right: auto; bottom: auto; left: auto; }

.top-0 { top: 0; }
.top-auto { top: auto; }
.right-0 { right: 0; }
.right-auto { right: auto; }
.bottom-0 { bottom: 0; }
.bottom-auto { bottom: auto; }
.left-0 { left: 0; }
.left-auto { left: auto; }

/* Z-index */
.z-0 { z-index: 0; }
.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-30 { z-index: 30; }
.z-40 { z-index: 40; }
.z-50 { z-index: 50; }
.z-auto { z-index: auto; }

/* =================================
   VISUAL UTILITIES
   ================================= */

/* Borders */
.border { border-width: 1px; }
.border-0 { border-width: 0; }
.border-2 { border-width: 2px; }
.border-4 { border-width: 4px; }
.border-8 { border-width: 8px; }

.border-t { border-top-width: 1px; }
.border-t-0 { border-top-width: 0; }
.border-t-2 { border-top-width: 2px; }
.border-t-4 { border-top-width: 4px; }

.border-r { border-right-width: 1px; }
.border-r-0 { border-right-width: 0; }
.border-r-2 { border-right-width: 2px; }
.border-r-4 { border-right-width: 4px; }

.border-b { border-bottom-width: 1px; }
.border-b-0 { border-bottom-width: 0; }
.border-b-2 { border-bottom-width: 2px; }
.border-b-4 { border-bottom-width: 4px; }

.border-l { border-left-width: 1px; }
.border-l-0 { border-left-width: 0; }
.border-l-2 { border-left-width: 2px; }
.border-l-4 { border-left-width: 4px; }

.border-solid { border-style: solid; }
.border-dashed { border-style: dashed; }
.border-dotted { border-style: dotted; }
.border-double { border-style: double; }
.border-none { border-style: none; }

/* Border radius */
.rounded-none { border-radius: 0; }
.rounded-sm { border-radius: 0.125rem; }
.rounded { border-radius: 0.25rem; }
.rounded-md { border-radius: 0.375rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-3xl { border-radius: 1.5rem; }
.rounded-full { border-radius: 9999px; }

.rounded-t-none { border-top-left-radius: 0; border-top-right-radius: 0; }
.rounded-t-sm { border-top-left-radius: 0.125rem; border-top-right-radius: 0.125rem; }
.rounded-t { border-top-left-radius: 0.25rem; border-top-right-radius: 0.25rem; }
.rounded-t-md { border-top-left-radius: 0.375rem; border-top-right-radius: 0.375rem; }
.rounded-t-lg { border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; }
.rounded-t-xl { border-top-left-radius: 0.75rem; border-top-right-radius: 0.75rem; }
.rounded-t-2xl { border-top-left-radius: 1rem; border-top-right-radius: 1rem; }
.rounded-t-3xl { border-top-left-radius: 1.5rem; border-top-right-radius: 1.5rem; }
.rounded-t-full { border-top-left-radius: 9999px; border-top-right-radius: 9999px; }

.rounded-r-none { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.rounded-r-sm { border-top-right-radius: 0.125rem; border-bottom-right-radius: 0.125rem; }
.rounded-r { border-top-right-radius: 0.25rem; border-bottom-right-radius: 0.25rem; }
.rounded-r-md { border-top-right-radius: 0.375rem; border-bottom-right-radius: 0.375rem; }
.rounded-r-lg { border-top-right-radius: 0.5rem; border-bottom-right-radius: 0.5rem; }
.rounded-r-xl { border-top-right-radius: 0.75rem; border-bottom-right-radius: 0.75rem; }
.rounded-r-2xl { border-top-right-radius: 1rem; border-bottom-right-radius: 1rem; }
.rounded-r-3xl { border-top-right-radius: 1.5rem; border-bottom-right-radius: 1.5rem; }
.rounded-r-full { border-top-right-radius: 9999px; border-bottom-right-radius: 9999px; }

.rounded-b-none { border-bottom-right-radius: 0; border-bottom-left-radius: 0; }
.rounded-b-sm { border-bottom-right-radius: 0.125rem; border-bottom-left-radius: 0.125rem; }
.rounded-b { border-bottom-right-radius: 0.25rem; border-bottom-left-radius: 0.25rem; }
.rounded-b-md { border-bottom-right-radius: 0.375rem; border-bottom-left-radius: 0.375rem; }
.rounded-b-lg { border-bottom-right-radius: 0.5rem; border-bottom-left-radius: 0.5rem; }
.rounded-b-xl { border-bottom-right-radius: 0.75rem; border-bottom-left-radius: 0.75rem; }
.rounded-b-2xl { border-bottom-right-radius: 1rem; border-bottom-left-radius: 1rem; }
.rounded-b-3xl { border-bottom-right-radius: 1.5rem; border-bottom-left-radius: 1.5rem; }
.rounded-b-full { border-bottom-right-radius: 9999px; border-bottom-left-radius: 9999px; }

.rounded-l-none { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.rounded-l-sm { border-top-left-radius: 0.125rem; border-bottom-left-radius: 0.125rem; }
.rounded-l { border-top-left-radius: 0.25rem; border-bottom-left-radius: 0.25rem; }
.rounded-l-md { border-top-left-radius: 0.375rem; border-bottom-left-radius: 0.375rem; }
.rounded-l-lg { border-top-left-radius: 0.5rem; border-bottom-left-radius: 0.5rem; }
.rounded-l-xl { border-top-left-radius: 0.75rem; border-bottom-left-radius: 0.75rem; }
.rounded-l-2xl { border-top-left-radius: 1rem; border-bottom-left-radius: 1rem; }
.rounded-l-3xl { border-top-left-radius: 1.5rem; border-bottom-left-radius: 1.5rem; }
.rounded-l-full { border-top-left-radius: 9999px; border-bottom-left-radius: 9999px; }

/* Box shadow */
.shadow-none { box-shadow: none; }
.shadow-sm { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); }
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.shadow-inner { box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); }
.shadow-default { box-shadow: 0 0 0 1px var(--shadow-color); }

/* Opacity */
.opacity-0 { opacity: 0; }
.opacity-5 { opacity: 0.05; }
.opacity-10 { opacity: 0.1; }
.opacity-20 { opacity: 0.2; }
.opacity-25 { opacity: 0.25; }
.opacity-30 { opacity: 0.3; }
.opacity-40 { opacity: 0.4; }
.opacity-50 { opacity: 0.5; }
.opacity-60 { opacity: 0.6; }
.opacity-70 { opacity: 0.7; }
.opacity-75 { opacity: 0.75; }
.opacity-80 { opacity: 0.8; }
.opacity-90 { opacity: 0.9; }
.opacity-95 { opacity: 0.95; }
.opacity-100 { opacity: 1; }

/* Transitions */
.transition-none { transition-property: none; }
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition { transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-colors { transition-property: background-color, border-color, color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-shadow { transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }

.duration-75 { transition-duration: 75ms; }
.duration-100 { transition-duration: 100ms; }
.duration-150 { transition-duration: 150ms; }
.duration-200 { transition-duration: 200ms; }
.duration-300 { transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }
.duration-700 { transition-duration: 700ms; }
.duration-1000 { transition-duration: 1000ms; }

.ease-linear { transition-timing-function: linear; }
.ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }
.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }
.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

/* =================================
   RESPONSIVE UTILITIES
   ================================= */

/* Visibility controls */
.visible { visibility: visible; }
.invisible { visibility: hidden; }

/* Screen reader only - enhanced version */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Show for screen readers only on focus */
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  padding: inherit;
  margin: inherit;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

/* Responsive visibility utilities */
@media (max-width: 640px) {
  .sm-hidden { display: none; }
  .sm-block { display: block; }
  .sm-inline { display: inline; }
  .sm-inline-block { display: inline-block; }
  .sm-flex { display: flex; }
  .sm-inline-flex { display: inline-flex; }
  .sm-grid { display: grid; }
  .sm-inline-grid { display: inline-grid; }
}

@media (min-width: 641px) and (max-width: 768px) {
  .md-hidden { display: none; }
  .md-block { display: block; }
  .md-inline { display: inline; }
  .md-inline-block { display: inline-block; }
  .md-flex { display: flex; }
  .md-inline-flex { display: inline-flex; }
  .md-grid { display: grid; }
  .md-inline-grid { display: inline-grid; }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .lg-hidden { display: none; }
  .lg-block { display: block; }
  .lg-inline { display: inline; }
  .lg-inline-block { display: inline-block; }
  .lg-flex { display: flex; }
  .lg-inline-flex { display: inline-flex; }
  .lg-grid { display: grid; }
  .lg-inline-grid { display: inline-grid; }
}

@media (min-width: 1025px) {
  .xl-hidden { display: none; }
  .xl-block { display: block; }
  .xl-inline { display: inline; }
  .xl-inline-block { display: inline-block; }
  .xl-flex { display: flex; }
  .xl-inline-flex { display: inline-flex; }
  .xl-grid { display: grid; }
  .xl-inline-grid { display: inline-grid; }
}

/* =================================
   ACCESSIBILITY UTILITIES
   ================================= */

/* Focus indicators */
.focus-visible:focus-visible {
  outline: 2px solid var(--focus-color, #007bff);
  outline-offset: 2px;
}

.focus-within:focus-within {
  outline: 2px solid var(--focus-color, #007bff);
  outline-offset: 2px;
}

/* Skip links */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: var(--background-color);
  color: var(--color);
  padding: 8px;
  text-decoration: none;
  border-radius: 4px;
  z-index: 1000;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.skip-link:focus {
  top: 6px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .border-default {
    border-color: CanvasText;
  }
  
  .text-muted {
    color: CanvasText;
  }
  
  .bg-gray-100,
  .bg-gray-200,
  .bg-gray-300 {
    background-color: Canvas;
    border: 1px solid CanvasText;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .transition-all,
  .transition,
  .transition-colors,
  .transition-opacity,
  .transition-shadow,
  .transition-transform {
    transition-duration: 0.01ms !important;
  }
  
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* =================================
   LAYOUT HELPERS
   ================================= */

/* Container utilities */
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 640px) {
  .container { max-width: 640px; }
}

@media (min-width: 768px) {
  .container { max-width: 768px; }
}

@media (min-width: 1024px) {
  .container { max-width: 1024px; }
}

@media (min-width: 1280px) {
  .container { max-width: 1280px; }
}

/* Max width utilities using design tokens */
.max-w-layout { max-width: var(--layout-max); }
.max-w-none { max-width: none; }
.max-w-xs { max-width: 20rem; }
.max-w-sm { max-width: 24rem; }
.max-w-md { max-width: 28rem; }
.max-w-lg { max-width: 32rem; }
.max-w-xl { max-width: 36rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-6xl { max-width: 72rem; }
.max-w-7xl { max-width: 80rem; }
.max-w-full { max-width: 100%; }

/* Width utilities */
.w-auto { width: auto; }
.w-full { width: 100%; }
.w-screen { width: 100vw; }
.w-fit { width: fit-content; }
.w-min { width: min-content; }
.w-max { width: max-content; }

.w-0 { width: 0; }
.w-1 { width: 0.25rem; }
.w-2 { width: 0.5rem; }
.w-3 { width: 0.75rem; }
.w-4 { width: 1rem; }
.w-5 { width: 1.25rem; }
.w-6 { width: 1.5rem; }
.w-8 { width: 2rem; }
.w-10 { width: 2.5rem; }
.w-12 { width: 3rem; }
.w-16 { width: 4rem; }
.w-20 { width: 5rem; }
.w-24 { width: 6rem; }
.w-32 { width: 8rem; }
.w-40 { width: 10rem; }
.w-48 { width: 12rem; }
.w-56 { width: 14rem; }
.w-64 { width: 16rem; }
.w-72 { width: 18rem; }
.w-80 { width: 20rem; }
.w-96 { width: 24rem; }

.w-1\/2 { width: 50%; }
.w-1\/3 { width: 33.333333%; }
.w-2\/3 { width: 66.666667%; }
.w-1\/4 { width: 25%; }
.w-2\/4 { width: 50%; }
.w-3\/4 { width: 75%; }
.w-1\/5 { width: 20%; }
.w-2\/5 { width: 40%; }
.w-3\/5 { width: 60%; }
.w-4\/5 { width: 80%; }

/* Height utilities */
.h-auto { height: auto; }
.h-full { height: 100%; }
.h-screen { height: 100vh; }
.h-fit { height: fit-content; }
.h-min { height: min-content; }
.h-max { height: max-content; }

.h-0 { height: 0; }
.h-1 { height: 0.25rem; }
.h-2 { height: 0.5rem; }
.h-3 { height: 0.75rem; }
.h-4 { height: 1rem; }
.h-5 { height: 1.25rem; }
.h-6 { height: 1.5rem; }
.h-8 { height: 2rem; }
.h-10 { height: 2.5rem; }
.h-12 { height: 3rem; }
.h-16 { height: 4rem; }
.h-20 { height: 5rem; }
.h-24 { height: 6rem; }
.h-32 { height: 8rem; }
.h-40 { height: 10rem; }
.h-48 { height: 12rem; }
.h-56 { height: 14rem; }
.h-64 { height: 16rem; }
.h-72 { height: 18rem; }
.h-80 { height: 20rem; }
.h-96 { height: 24rem; }

/* Overflow utilities */
.overflow-auto { overflow: auto; }
.overflow-hidden { overflow: hidden; }
.overflow-visible { overflow: visible; }
.overflow-scroll { overflow: scroll; }

.overflow-x-auto { overflow-x: auto; }
.overflow-x-hidden { overflow-x: hidden; }
.overflow-x-visible { overflow-x: visible; }
.overflow-x-scroll { overflow-x: scroll; }

.overflow-y-auto { overflow-y: auto; }
.overflow-y-hidden { overflow-y: hidden; }
.overflow-y-visible { overflow-y: visible; }
.overflow-y-scroll { overflow-y: scroll; }

/* =================================
   INTERACTION UTILITIES
   ================================= */

/* Cursor utilities */
.cursor-auto { cursor: auto; }
.cursor-default { cursor: default; }
.cursor-pointer { cursor: pointer; }
.cursor-wait { cursor: wait; }
.cursor-text { cursor: text; }
.cursor-move { cursor: move; }
.cursor-help { cursor: help; }
.cursor-not-allowed { cursor: not-allowed; }

/* User select utilities */
.select-none { user-select: none; }
.select-text { user-select: text; }
.select-all { user-select: all; }
.select-auto { user-select: auto; }

/* Pointer events utilities */
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }

/* Resize utilities */
.resize-none { resize: none; }
.resize-both { resize: both; }
.resize-x { resize: horizontal; }
.resize-y { resize: vertical; }

state.json (36 B)

{
  "cookies": [],
  "origins": []
}

test-email-obfuscation.html (7.9 KiB)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Email Obfuscation Test</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            background: #1a1a1a;
            color: #fff;
        }
        .test-section {
            background: #2a2a2a;
            padding: 20px;
            margin: 20px 0;
            border-radius: 8px;
            border: 1px solid #404040;
        }
        .test-button {
            background: #6366f1;
            color: white;
            padding: 12px 24px;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            margin: 10px 5px;
            text-decoration: none;
            display: inline-block;
        }
        .test-button:hover {
            background: #4f46e5;
        }
        .status {
            padding: 10px;
            margin: 10px 0;
            border-radius: 4px;
        }
        .success { background: #065f46; border: 1px solid #10b981; }
        .error { background: #7f1d1d; border: 1px solid #ef4444; }
        .warning { background: #78350f; border: 1px solid #f59e0b; }
        .info { background: #1e40af; border: 1px solid #3b82f6; }
        
        code {
            background: #000;
            padding: 2px 6px;
            border-radius: 3px;
            font-family: monospace;
        }
    </style>
</head>
<body>
    <h1>šŸ›”ļø Email Obfuscation Security Test</h1>
    
    <div class="test-section">
        <h2>šŸ“§ Contact Email Tests</h2>
        <p>These links should only work after user interaction (mouse movement, clicks, etc.)</p>
        
        <a href="#" data-email-display="contact" data-contact-type="contact" data-subject-type="general">Contact Email (Display)</a><br><br>
        
        <a href="#" class="test-button" data-contact-type="contact" data-subject-type="strategy" 
           data-custom-body="I'm interested in exploring how AI could transform my business.">
           Strategy Session
        </a>
        
        <a href="#" class="test-button" data-contact-type="contact" data-subject-type="technical"
           data-custom-body="I'd like to discuss our technical implementation options.">
           Technical Assessment
        </a>
        
        <a href="#" class="test-button" data-contact-type="hello" data-subject-type="general"
           data-custom-body="Hello from the test page!">
           Say Hello
        </a>
    </div>

    <div class="test-section">
        <h2>šŸ•µļø Anti-Scraping Detection</h2>
        <div id="detection-results">
            <div class="status info">Running detection tests...</div>
        </div>
    </div>

    <div class="test-section">
        <h2>šŸ” Email System Status</h2>
        <div id="system-status">
            <div class="status warning">Waiting for user interaction...</div>
        </div>
    </div>

    <div class="test-section">
        <h2>šŸ“‹ Test Instructions</h2>
        <ol>
            <li>Move your mouse around this page</li>
            <li>Click somewhere on the page</li>
            <li>Wait a moment for the email system to activate</li>
            <li>Try clicking the email buttons above</li>
            <li>Check that they generate proper mailto links</li>
        </ol>
        
        <p><strong>Expected behavior:</strong></p>
        <ul>
            <li>Before interaction: Links should be disabled or show <code>javascript:void(0)</code></li>
            <li>After interaction: Links should show proper <code>mailto:</code> addresses</li>
            <li>Email addresses should resolve to <code>contact@sibylline.dev</code> and <code>hello@sibylline.dev</code></li>
        </ul>
    </div>

    <!-- Include our secure contact script -->
    <script src="/js/secure-contact.js"></script>
    
    <script>
        // Test script to monitor the email obfuscation system
        let testInterval;
        let lastInteractionCheck = false;
        
        function updateDetectionResults() {
            const detectionDiv = document.getElementById('detection-results');
            const statusDiv = document.getElementById('system-status');
            
            // Test anti-scraping detection
            const results = [];
            
            // Check for headless browser indicators
            if (navigator.webdriver) results.push('āš ļø navigator.webdriver detected');
            if (window.phantom) results.push('āš ļø PhantomJS detected');
            if (window._phantom) results.push('āš ļø PhantomJS _phantom detected');
            if (window.callPhantom) results.push('āš ļø PhantomJS callPhantom detected');
            if (window.outerHeight === 0) results.push('āš ļø Zero outer height detected');
            if (!window.chrome && navigator.userAgent.indexOf('Chrome') > -1) results.push('āš ļø Fake Chrome detected');
            
            if (results.length === 0) {
                detectionDiv.innerHTML = '<div class="status success">āœ… No scraping indicators detected</div>';
            } else {
                detectionDiv.innerHTML = '<div class="status error">🚨 Scraping indicators found:<br>' + results.join('<br>') + '</div>';
            }
            
            // Check system status
            const hasInteraction = window.hasUserInteracted;
            const systemReady = window.emailSystemReady;
            
            if (!hasInteraction) {
                statusDiv.innerHTML = '<div class="status warning">ā³ Waiting for user interaction (move mouse, click, etc.)</div>';
            } else if (!systemReady) {
                statusDiv.innerHTML = '<div class="status info">šŸ”„ User interaction detected, initializing email system...</div>';
            } else {
                statusDiv.innerHTML = '<div class="status success">āœ… Email system ready! Links should work now.</div>';
                
                // Test a sample email generation
                if (window.generateSecureMailto) {
                    const testEmail = window.generateSecureMailto('Test Subject', 'Test body', 'contact');
                    if (testEmail !== 'javascript:void(0)') {
                        statusDiv.innerHTML += '<div class="status success">āœ… Email generation test passed</div>';
                        statusDiv.innerHTML += '<div class="status info">Sample: <code>' + testEmail.substring(0, 50) + '...</code></div>';
                    }
                }
            }
            
            // Update button hrefs for demonstration
            document.querySelectorAll('[data-contact-type]').forEach(button => {
                const href = button.href || '#';
                if (href.startsWith('mailto:')) {
                    button.style.background = '#10b981'; // Green for working emails
                    button.title = 'Email system active';
                } else {
                    button.style.background = '#6366f1'; // Blue for waiting
                    button.title = 'Waiting for activation';
                }
            });
        }
        
        // Run tests every second
        testInterval = setInterval(updateDetectionResults, 1000);
        
        // Initial test
        updateDetectionResults();
        
        // Add some interaction helpers
        document.addEventListener('click', function() {
            console.log('Click detected - email system should initialize soon');
        });
        
        document.addEventListener('mousemove', function() {
            console.log('Mouse movement detected - email system should initialize soon');
        });
        
        // Clean up interval after 30 seconds
        setTimeout(() => {
            if (testInterval) {
                clearInterval(testInterval);
                console.log('Test monitoring stopped after 30 seconds');
            }
        }, 30000);
    </script>
</body>
</html>

test-output/.nojekyll (0 B)


test-output/CNAME (13 B)

sibylline.dev

test-output/src/js/animations.js (9.0 KiB)

/**
 * Animation handlers for text effects, card animations, and visual elements
 * Includes rotating banners, card hover effects, and performance optimizations
 */

// Rotating Banner System
class RotatingBanners {
  constructor() {
    // Coordinated title-subtitle pairs
    this.titleSubtitlePairs = [
      {
        title: 'Stop Losing to Startups With Real AI Advantages',
        subtitles: [
          "Turn your data moat into autonomous agent systems that competitors can't copy",
          'Build AI-first workflows that eliminate manual processes entirely',
          'Deploy intelligent automation that learns and improves without human intervention'
        ]
      },
      {
        title: 'Enterprise AI That Actually Works in Production',
        subtitles: [
          'Architected for scale, security, and seamless integration with existing systems',
          'Built with enterprise governance, compliance, and risk management from day one',
          'Designed for reliability with comprehensive monitoring and automated failsafes'
        ]
      },
      {
        title: 'Custom AI Research That Drives Breakthrough Innovation',
        subtitles: [
          'Novel algorithms tailored to your unique data patterns and business constraints',
          'Advanced research partnerships that accelerate time-to-market for AI products',
          'Proprietary model development that creates sustainable competitive advantages'
        ]
      },
      {
        title: 'Strategic AI Implementation with Clear ROI',
        subtitles: [
          'Clear roadmaps from concept to competitive edge with measurable business impact',
          'Proven methodologies that minimize risk while maximizing transformation speed',
          'Executive-ready strategies that align AI initiatives with business objectives'
        ]
      }
    ];
    
    this.currentTitleIndex = 0;
    this.currentSubtitleIndex = 0;
    this.container = document.querySelector('.rotating-banners');
    this.titleElement = document.querySelector('.hero-content h1');
    this.isAnimating = false;
    this.glowTimeouts = [];
    
    this.init();
  }
  
  init() {
    if (!this.container) {return;}
    
    // Create banner containers for the first title's subtitles
    const firstTitleSubtitles = this.titleSubtitlePairs[0].subtitles;
    firstTitleSubtitles.forEach((text, index) => {
      const bannerContainer = document.createElement('div');
      bannerContainer.className = 'banner-container';
      if (index === 0) {bannerContainer.classList.add('active');}
      
      const bannerText = document.createElement('span');
      bannerText.className = 'banner-text';
      bannerText.setAttribute('data-text', text);
      
      bannerContainer.appendChild(bannerText);
      this.container.appendChild(bannerContainer);
    });
    
    // Initialize title state
    if (this.titleElement) {
      this.titleElement.classList.add('normal');
    }
    
    // Start rotation cycles
    this.startRotation();
  }
  
  animateLetters(container, delay = 0) {
    const bannerText = container.querySelector('.banner-text');
    const text = bannerText.getAttribute('data-text');
    // Simple text display without letter-by-letter animation
    bannerText.textContent = text;
  }
  
  fadeOutContainer(container, callback) {
    // Start blur out animation
    container.classList.remove('normal');
    container.classList.add('blurring-out');
    
    // Call callback when blur animation completes
    setTimeout(() => {
      if (callback) {callback();}
    }, 600); // Match blur transition duration
  }
  
  fadeInContainer(container, delay = 0) {
    setTimeout(() => {
      container.classList.add('active', 'normal');
      this.animateLetters(container);
    }, delay);
  }
  
  updateTitle(newTitle) {
    if (this.titleElement) {
      this.titleElement.classList.remove('normal');
      this.titleElement.classList.add('changing');
      
      setTimeout(() => {
        this.titleElement.innerHTML = newTitle;
        this.titleElement.classList.remove('changing');
        this.titleElement.classList.add('normal');
      }, 300);
    }
  }
  
  rebuildSubtitleContainers(subtitles) {
    // Clear existing containers
    this.container.innerHTML = '';
    
    // Create new containers for new title's subtitles
    subtitles.forEach((text, index) => {
      const bannerContainer = document.createElement('div');
      bannerContainer.className = 'banner-container';
      if (index === 0) {bannerContainer.classList.add('active');}
      
      const bannerText = document.createElement('span');
      bannerText.className = 'banner-text';
      bannerText.setAttribute('data-text', text);
      
      bannerContainer.appendChild(bannerText);
      this.container.appendChild(bannerContainer);
    });
  }
  
  nextBanner() {
    if (this.isAnimating) {return;}
    
    this.isAnimating = true;
    const currentPair = this.titleSubtitlePairs[this.currentTitleIndex];
    const current = this.container.children[this.currentSubtitleIndex];
    
    // Move to next subtitle
    this.currentSubtitleIndex = (this.currentSubtitleIndex + 1) % currentPair.subtitles.length;
    
    // If we've cycled through all subtitles, move to next title
    if (this.currentSubtitleIndex === 0) {
      this.currentTitleIndex = (this.currentTitleIndex + 1) % this.titleSubtitlePairs.length;
      const nextPair = this.titleSubtitlePairs[this.currentTitleIndex];
      
      // Start title transition early, during subtitle fade-out
      setTimeout(() => {
        this.updateTitle(nextPair.title);
      }, 200);
      
      // Fade out current subtitle container and letters
      this.fadeOutContainer(current, () => {
        // Rebuild subtitle containers for new title
        this.rebuildSubtitleContainers(nextPair.subtitles);
        
        // Fade in first subtitle of new title
        const firstNew = this.container.children[0];
        this.fadeInContainer(firstNew, 0);
        this.isAnimating = false;
      });
      return;
    }
    
    // Regular subtitle transition within same title
    const next = this.container.children[this.currentSubtitleIndex];
    
    // Fade out current subtitle container
    this.fadeOutContainer(current, () => {
      // Fade in next subtitle container
      this.fadeInContainer(next, 0);
      this.isAnimating = false;
    });
  }
  
  startRotation() {
    const rotationInterval = 5000; // 5 seconds per banner
    
    // Start the first banner animation immediately
    const firstContainer = this.container.children[0];
    if (firstContainer) {
      this.fadeInContainer(firstContainer, 500);
    }
    
    // Set up rotation timer
    setInterval(() => {
      this.nextBanner();
    }, rotationInterval);
  }
}

// Card Animation Handler
class CardAnimations {
  constructor() {
    this.possibilityCards = document.querySelectorAll('.possibility-card');
    this.init();
  }
  
  init() {
    this.possibilityCards.forEach(card => {
      // Add subtle animation delays for staggered loading
      const index = Array.from(this.possibilityCards).indexOf(card);
      card.style.animationDelay = `${index * 100}ms`;
      
      // Enhanced hover behavior with data visualization updates
      card.addEventListener('mouseenter', () => {
        // Trigger visualization animations
        const vizElements = card.querySelectorAll('.step-visual.processed, .point.active, .milestone.active');
        vizElements.forEach(el => {
          el.style.animationDuration = '1s';
        });
      });
      
      card.addEventListener('mouseleave', () => {
        // Reset animation timing
        const vizElements = card.querySelectorAll('.step-visual.processed, .point.active, .milestone.active');
        vizElements.forEach(el => {
          el.style.animationDuration = '2s';
        });
      });
    });
  }
}

// Premium Text Animation Handler
class TextAnimations {
  constructor() {
    this.init();
  }
  
  init() {
    // Performance optimization: remove will-change after animations complete
    setTimeout(() => {
      const animatedElements = document.querySelectorAll('.hero-title, .banner-text');
      animatedElements.forEach(el => {
        el.style.willChange = 'auto';
      });
    }, 4000); // After all animations should be complete
  }
}

// Animation Manager - coordinates all animations
class AnimationManager {
  constructor() {
    this.rotatingBanners = null;
    this.cardAnimations = null;
    this.textAnimations = null;
    
    this.init();
  }
  
  init() {
    // Initialize all animation systems
    this.rotatingBanners = new RotatingBanners();
    this.cardAnimations = new CardAnimations();
    this.textAnimations = new TextAnimations();
  }
}

// Export classes for use in other modules
window.RotatingBanners = RotatingBanners;
window.CardAnimations = CardAnimations;
window.TextAnimations = TextAnimations;
window.AnimationManager = AnimationManager;

// Initialize when DOM is ready
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', () => {
    new AnimationManager();
  });
} else {
  new AnimationManager();
}

test-output/src/js/modals.js (5.0 KiB)

/**
 * Modal functionality for service cards
 * Handles modal opening/closing, content population, and email generation
 */

// Service data for modals
const serviceData = {
  startup: {
    image: '/img/optimized/modal-office-meeting.webp',
    ctaText: 'Start Your AI Journey',
    alt: 'Modern coding environment with AI development tools',
    subject: 'Startup AI Architecture & Strategy Inquiry',
    body: 'Hi there! I\'m interested in learning more about your Startup AI Architecture & Strategy services. Could we schedule a time to discuss how you can help build robust AI infrastructure for my startup?'
  },
  enterprise: {
    image: '/img/optimized/modal-building-architecture.webp', 
    ctaText: 'Transform Your Enterprise',
    alt: 'Enterprise building with advanced architectural systems',
    subject: 'Enterprise AI Architecture Consultation',
    body: 'Hello! I\'m interested in your Enterprise AI Architecture services. Can we discuss how to build scalable, production-ready AI systems for our organization?'
  },
  research: {
    image: '/img/optimized/modal-team-meeting.webp',
    ctaText: 'Advance Your Research',
    alt: 'Advanced data visualization and analytics dashboard',
    subject: 'Applied AI Research Partnership',
    body: 'Hi! I\'d like to explore your Applied AI Research services. Could we schedule a consultation to discuss how you can help accelerate our research initiatives?'
  },
  strategic: {
    image: '/img/optimized/modal-team-meeting.webp',
    ctaText: 'Plan Your Strategy',
    alt: 'Strategic team meeting with AI implementation planning',
    subject: 'Strategic AI Implementation Consultation',
    body: 'Hello! I\'d like to discuss Strategic Implementation services to create clear roadmaps from concept to competitive edge. Can we schedule a consultation?'
  }
};

class ModalManager {
  constructor() {
    this.serviceCards = document.querySelectorAll('.service-card');
    this.modal = document.getElementById('service-modal');
    this.modalTitle = document.getElementById('modal-title');
    this.modalSummary = document.getElementById('modal-summary');
    this.modalDetails = document.getElementById('modal-details');
    this.modalImage = document.getElementById('modal-image');
    this.modalCtaButton = document.getElementById('modal-cta');
    this.modalCtaText = document.getElementById('modal-cta-text');
    this.modalClose = document.querySelector('.modal-close');
    
    this.init();
  }
  
  init() {
    if (!this.modal) {return;}
    
    // Add click listeners to service cards
    this.serviceCards.forEach(card => {
      card.addEventListener('click', (e) => {
        e.preventDefault();
        this.openModal(card);
      });
    });
    
    // Add close modal listeners
    if (this.modalClose) {
      this.modalClose.addEventListener('click', () => this.closeModal());
    }
    
    this.modal.addEventListener('click', (e) => {
      if (e.target === this.modal) {
        this.closeModal();
      }
    });
    
    // Close modal with Escape key
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape' && this.modal.classList.contains('active')) {
        this.closeModal();
      }
    });
    
    // CTA button click handler
    if (this.modalCtaButton) {
      this.modalCtaButton.addEventListener('click', (e) => {
        // Let the mailto link work naturally, then close modal
        setTimeout(() => {
          this.closeModal();
        }, 100);
      });
    }
  }
  
  openModal(card) {
    // Get card content and service type
    const serviceType = card.getAttribute('data-service');
    const title = card.querySelector('h3').innerHTML;
    const summary = card.querySelector('.service-summary p').textContent;
    const details = card.querySelector('.service-details');
    const serviceInfo = serviceData[serviceType] || serviceData.startup;
    
    // Populate modal content
    this.modalTitle.innerHTML = title;
    this.modalSummary.textContent = summary;
    this.modalDetails.innerHTML = details ? details.innerHTML : '';
    
    // Set image and CTA
    this.modalImage.src = serviceInfo.image;
    this.modalImage.alt = serviceInfo.alt;
    this.modalCtaText.textContent = serviceInfo.ctaText;
    
    // Create secure mailto link
    const subject = serviceInfo.subject;
    const body = serviceInfo.body;
    this.modalCtaButton.href = window.generateSecureMailto ? 
      window.generateSecureMailto(subject, body, 'hello') : 
      'javascript:void(0)';
    
    // Show modal
    this.modal.classList.add('active');
    document.body.style.overflow = 'hidden';
    
    // Re-initialize Lucide icons for the new CTA icon
    setTimeout(() => {
      if (window.lucide) {
        lucide.createIcons();
      }
    }, 100);
  }
  
  closeModal() {
    this.modal.classList.remove('active');
    document.body.style.overflow = '';
  }
}

// Export for use in other modules
window.ModalManager = ModalManager;

// Initialize when DOM is ready
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', () => {
    new ModalManager();
  });
} else {
  new ModalManager();
}

test-output/src/js/neural-network.js (27.7 KiB)

/**
 * Transformer-Inspired Neural Network Animation
 * A sophisticated 3D neural network visualization with rotating cylindrical layers,
 * pulse propagation, and Morse code synchronized transmissions.
 */

class NeuralNetwork {
  constructor(canvas) {
    this.canvas = canvas;
    this.ctx = canvas.getContext('2d');
    this.layers = [];
    this.connections = [];
    this.pulses = [];
    this.connectionGlow = new Map();
    this.animationId = null;
    this.time = 0;
    this.rotation = 0;
    this.resizeTimeout = null;
    
    // Morse code messages (funny AI-related)
    this.morseMessages = [
      'AI OVERLORDS COMING SOON',
      'COFFEE FIRST THEN WORLD DOMINATION',
      'HUMANS ARE DEBUGGING FEATURES',
      'STILL LEARNING TO FOLD LAUNDRY'
    ];
    this.currentMessage = 0;
    this.morsePosition = 0;
    this.morseTimer = 0;
    this.morseCode = {
      'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',
      'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',
      'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',
      'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
      'Y': '-.--', 'Z': '--..', ' ': '/'
    };
    
    this.init();
  }
  
  init() {
    this.resize();
    this.createTransformerStructure();
    this.createConnections();
    this.animate();
    
    window.addEventListener('resize', () => this.handleResize());
  }
  
  resize() {
    const rect = this.canvas.getBoundingClientRect();
    this.canvas.width = rect.width * window.devicePixelRatio;
    this.canvas.height = rect.height * window.devicePixelRatio;
    this.ctx.scale(window.devicePixelRatio, window.devicePixelRatio);
    
    this.width = rect.width;
    this.height = rect.height;
    this.centerX = this.width / 2;
    this.centerY = this.height / 2;
  }
  
  handleResize() {
    // Debounce resize events to prevent excessive reinitialization
    if (this.resizeTimeout) {
      clearTimeout(this.resizeTimeout);
    }
    
    this.resizeTimeout = setTimeout(() => {
      // Update canvas dimensions
      this.resize();
      
      // Clear existing animation state
      this.pulses = [];
      this.connectionGlow.clear();
      
      // Recreate the entire structure with new dimensions
      this.createTransformerStructure();
      this.createConnections();
      
      this.resizeTimeout = null;
    }, 150); // Wait 150ms after resize stops
  }
  
  createTransformerStructure() {
    this.layers = [];
    const layerCount = 24; // Even more layers for much closer vertical spacing
    const totalWidth = this.width * 0.95; // Wider
    const totalHeight = this.height * 0.85; // Taller
    const cylinderRadius = totalHeight * 0.35; // Radius for cylindrical distribution
    
    // Generate smooth elliptical distribution with 24 layers for closer spacing
    const layerTypes = [];
    for (let i = 0; i < layerCount; i++) {
      const progress = i / (layerCount - 1); // 0 to 1
      
      // Smooth elliptical node distribution - more nodes in middle, fewer at ends
      const ellipticalFactor = Math.sin(progress * Math.PI); // Bell curve: 0 -> 1 -> 0
      const minNodes = 8;
      const maxNodes = 28;
      const nodeCount = Math.round(minNodes + (maxNodes - minNodes) * ellipticalFactor);
      
      // Determine layer type based on position
      let layerType, size;
      if (i === 0) {
        layerType = 'input';
        size = 'large';
      } else if (i === layerCount - 1) {
        layerType = 'output';
        size = 'xlarge';
      } else if (i % 3 === 1) {
        layerType = 'attention';
        size = 'medium';
      } else if (i % 3 === 2) {
        layerType = 'feedforward';
        size = 'large';
      } else {
        layerType = 'embedding';
        size = 'medium';
      }
      
      layerTypes.push({
        name: layerType,
        nodes: nodeCount,
        size: size,
        spacing: 0.9 - (ellipticalFactor * 0.3) // Tighter spacing in middle
      });
    }
    
    for (let layerIndex = 0; layerIndex < layerCount; layerIndex++) {
      const layerType = layerTypes[layerIndex];
      const layer = {
        index: layerIndex,
        type: layerType.name,
        nodes: [],
        x: (layerIndex / (layerCount - 1)) * totalWidth - totalWidth/2 + this.centerX,
        baseY: this.centerY
      };
      
      // Create nodes in smooth cylindrical distribution
      for (let nodeIndex = 0; nodeIndex < layerType.nodes; nodeIndex++) {
        // Distribute nodes evenly around cylinder with minimal randomization for smoothness
        const angleStep = (Math.PI * 2) / layerType.nodes;
        const nodeAngle = nodeIndex * angleStep + (Math.random() - 0.5) * 0.1; // Much less randomization for smoother appearance
        
        // Cylindrical coordinates
        const cylinderY = Math.cos(nodeAngle) * cylinderRadius;
        const cylinderZ = Math.sin(nodeAngle) * cylinderRadius;
        
        const node = {
          // Base cylindrical position
          baseX: layer.x,
          baseY: this.centerY + cylinderY,
          baseZ: cylinderZ,
          // Current position (will transform with rotation)
          x: 0,
          y: 0,
          z: 0,
          // Cylindrical properties
          cylinderAngle: nodeAngle,
          cylinderRadius: cylinderRadius,
          // Layer and node info
          layerIndex,
          nodeIndex,
          layerType: layerType.name,
          // Enhanced orbital motion for more organic movement
          orbitRadius: 4 + Math.random() * 8,
          orbitSpeed: 0.03 + Math.random() * 0.08,
          orbitOffset: Math.random() * Math.PI * 2,
          // Visual properties based on layer type
          radius: this.getNodeSize(layerType.size),
          activity: Math.random(),
          baseActivity: Math.random() * 0.4 + 0.3,
          // Gentle pulsing properties for star field effect
          pulsePhase: Math.random() * Math.PI * 2,
          pulseSpeed: 0.4 + Math.random() * 0.8, // Very slow gentle pulsing
          pulseIntensity: 0.15 + Math.random() * 0.25, // Subtle brightness variation
          // Color based on layer type
          color: this.getLayerColor(layerType.name)
        };
        
        layer.nodes.push(node);
      }
      
      this.layers.push(layer);
    }
    
    // Flatten nodes for easier access
    this.nodes = [];
    this.layers.forEach(layer => {
      this.nodes.push(...layer.nodes);
    });
  }
  
  getNodeSize(sizeType) {
    switch(sizeType) {
    case 'xlarge': return 3.5 + Math.random() * 1.5;
    case 'large': return 2.5 + Math.random() * 1;
    case 'medium': return 1.8 + Math.random() * 0.7;
    default: return 1.2 + Math.random() * 0.5;
    }
  }
  
  getLayerColor(layerType) {
    switch(layerType) {
    case 'embedding': return { r: 100, g: 100, b: 100 };
    case 'attention': return { r: 80, g: 80, b: 80 };
    case 'feedforward': return { r: 60, g: 60, b: 60 };
    case 'output': return { r: 40, g: 40, b: 40 };
    default: return { r: 70, g: 70, b: 70 };
    }
  }
  
  generatePulseColor() {
    // Base blue color: rgb(100, 140, 200)
    // Generate variations: some purple, some pink, some deeper blue
    const colorVariants = [
      { r: 100, g: 140, b: 200 }, // Original blue
      { r: 120, g: 100, b: 200 }, // Purple-ish
      { r: 140, g: 120, b: 200 }, // Pink-ish  
      { r: 80, g: 120, b: 220 },  // Deeper blue
      { r: 110, g: 130, b: 190 }, // Slightly warmer blue
      { r: 90, g: 150, b: 210 },  // Slightly cooler blue
      { r: 130, g: 110, b: 190 }, // Light purple
      { r: 150, g: 130, b: 180 }  // Light pink
    ];
    
    return colorVariants[Math.floor(Math.random() * colorVariants.length)];
  }
  
  createConnections() {
    this.connections = [];
    this.connectionGlow.clear();
    
    // Create more regular, structured connections with transparency
    for (let i = 0; i < this.nodes.length; i++) {
      for (let j = i + 1; j < this.nodes.length; j++) {
        const nodeA = this.nodes[i];
        const nodeB = this.nodes[j];
        
        let shouldConnect = false;
        const connectionStrength = 0.15;
        let baseBrightness = 0.04; // More transparent
        
        // Same layer connections (more regular patterns)
        if (nodeA.layerIndex === nodeB.layerIndex) {
          // Regular connectivity patterns within layers
          const angleDiff = Math.abs(nodeA.cylinderAngle - nodeB.cylinderAngle);
          const normalizedAngleDiff = Math.min(angleDiff, Math.PI * 2 - angleDiff);
          
          // Connect adjacent and nearby nodes more regularly
          if (normalizedAngleDiff < Math.PI / 3) { // Within 60 degrees
            shouldConnect = Math.random() < 0.8; // High connectivity for nearby nodes
            baseBrightness = 0.05 + Math.random() * 0.03;
          } else if (normalizedAngleDiff < Math.PI / 2) { // Within 90 degrees
            shouldConnect = Math.random() < 0.6;
            baseBrightness = 0.04 + Math.random() * 0.02;
          } else if (normalizedAngleDiff < Math.PI) { // Within 180 degrees
            shouldConnect = Math.random() < 0.3;
            baseBrightness = 0.03 + Math.random() * 0.02;
          }
        }
        // Adjacent layer connections - only left-to-right
        else if (nodeB.layerIndex === nodeA.layerIndex + 1) { // Only forward connections
          const angleDiff = Math.abs(nodeA.cylinderAngle - nodeB.cylinderAngle);
          const normalizedAngleDiff = Math.min(angleDiff, Math.PI * 2 - angleDiff);
          
          // More regular inter-layer connections
          if (normalizedAngleDiff < Math.PI / 4) { // Very close angles
            shouldConnect = Math.random() < 0.7;
            baseBrightness = 0.06 + Math.random() * 0.03;
          } else if (normalizedAngleDiff < Math.PI / 2) { // Moderate angle difference
            shouldConnect = Math.random() < 0.4;
            baseBrightness = 0.05 + Math.random() * 0.02;
          } else if (normalizedAngleDiff < Math.PI) { // Larger angle difference
            shouldConnect = Math.random() < 0.2;
            baseBrightness = 0.04 + Math.random() * 0.02;
          }
        }
        // Skip connections (rare, only forward)
        else if (nodeB.layerIndex === nodeA.layerIndex + 2) {
          const angleDiff = Math.abs(nodeA.cylinderAngle - nodeB.cylinderAngle);
          const normalizedAngleDiff = Math.min(angleDiff, Math.PI * 2 - angleDiff);
          
          if (normalizedAngleDiff < Math.PI / 6) { // Very aligned
            shouldConnect = Math.random() < 0.15;
            baseBrightness = 0.06 + Math.random() * 0.02;
          }
        }
        
        if (shouldConnect) {
          const connectionId = `${i}-${j}`;
          this.connections.push({
            from: i,
            to: j,
            id: connectionId,
            strength: connectionStrength,
            lastActivation: 0,
            baseBrightness: baseBrightness,
            type: nodeA.layerIndex === nodeB.layerIndex ? 'intra' : 'inter'
          });
          this.connectionGlow.set(connectionId, 0);
        }
      }
    }
  }
  
  updateNodes() {
    this.time += 0.016; // 60fps normalized
    this.rotation += 0.00225; // Increased rotation speed by 50%
    
    this.nodes.forEach((node, index) => {
      // Enhanced orbital drift for more organic movement
      const orbitAngle = this.time * node.orbitSpeed + node.orbitOffset;
      const driftX = Math.cos(orbitAngle) * node.orbitRadius * 0.15; // More drift
      const driftY = Math.sin(orbitAngle) * node.orbitRadius * 0.1;
      
      // Gentler, smoother mesh deformation for cleaner elliptical appearance
      const deformX1 = Math.sin(this.time * 0.3 + node.baseY * 0.008) * 8; // Much gentler
      const deformX2 = Math.cos(this.time * 0.2 + node.baseZ * 0.005) * 6; // Smoother
      const deformY1 = Math.cos(this.time * 0.25 + node.baseX * 0.007) * 10; // Moderate
      const deformY2 = Math.sin(this.time * 0.4 + (node.layerIndex * 0.3)) * 5; // Gentle
      
      // Subtle turbulent warping for organic feel without messiness
      const turbulenceX = Math.sin(this.time * 0.15 + node.cylinderAngle * 2) * 4; // Much subtler
      const turbulenceY = Math.cos(this.time * 0.18 + node.cylinderAngle * 1.8) * 6; // Smoother
      
      // Combine smoother deformations
      const totalDeformX = deformX1 + deformX2 + turbulenceX;
      const totalDeformY = deformY1 + deformY2 + turbulenceY;
      
      // Cylindrical rotation with elliptical bulge in middle
      const currentAngle = node.cylinderAngle + this.rotation;
      
      // Create stronger elliptical bulge - more pronounced taper on sides
      const layerProgress = node.layerIndex / (this.layers.length - 1); // 0 to 1
      const bulgeFactor = 1.0 + 0.8 * Math.sin(layerProgress * Math.PI); // Much stronger bulge for more elliptical shape
      const effectiveRadius = node.cylinderRadius * bulgeFactor;
      
      // Calculate 3D position on rotating elliptical cylinder
      const cylinderY = Math.cos(currentAngle) * effectiveRadius;
      const cylinderZ = Math.sin(currentAngle) * effectiveRadius;
      
      // Apply perspective projection
      const perspective = 1 + (cylinderZ * 0.0005); // Front nodes slightly larger
      
      node.x = node.baseX + driftX + totalDeformX;
      node.y = this.centerY + cylinderY + driftY + totalDeformY;
      node.z = cylinderZ;
      
      // Scale nodes based on perspective
      const depthScale = 0.8 + perspective * 0.2;
      node.currentRadius = node.radius * depthScale;
      
      // Restored node visibility for better animation
      const depthRatio = (cylinderZ + effectiveRadius) / (2 * effectiveRadius); // 0 to 1, 1 = closest
      const baseDepthAlpha = 0.05 + (0.15 * depthRatio); // Restored: 0.05 to 0.20
      
      // Add gentle pulsing with more upside potential for star field effect
      const pulseValue = Math.sin(this.time * node.pulseSpeed + node.pulsePhase) * node.pulseIntensity;
      // More upside potential: can go from 0.5x to 3x brightness instead of symmetric around 1x
      const pulseBrightness = 1.0 + (pulseValue * 2) + Math.abs(pulseValue) * 1.5;
      
      node.depthAlpha = baseDepthAlpha * pulseBrightness;
      
      // Store depth factor for connection thickness
      node.depthFactor = (cylinderZ + effectiveRadius) / (2 * effectiveRadius); // 0 to 1, 1 = closest
      
      // Update activity based on layer type and time
      const layerActivity = node.layerType === 'attention' ? 1.2 : 
        node.layerType === 'feedforward' ? 0.8 : 1.0;
      node.activity = node.baseActivity * layerActivity + 
                     Math.sin(this.time * 1.5 + node.layerIndex * 0.8 + index * 0.3) * 0.2;
    });
  }
  
  createPulse(connectionIndex) {
    const connection = this.connections[connectionIndex];
    const now = Date.now();
    const nodeA = this.nodes[connection.from];
    const nodeB = this.nodes[connection.to];
    
    // Only create pulses for left-to-right flow (forward layer connections)
    if (nodeB.layerIndex <= nodeA.layerIndex) {
      return; // Skip backward or same-layer pulses
    }
    
    // Only start pulses from the leftmost layer (layer 0) 
    if (nodeA.layerIndex !== 0) {
      return; // Skip pulses that don't start from input layer
    }
    
    // Much more frequent pulses - even faster timing
    if (now - connection.lastActivation > 800 + Math.random() * 1200) { // Reduced from 2000-5000ms to 800-2000ms
      // Generate random color personality for this pulse
      const colorPersonality = this.generatePulseColor();
      
      this.pulses.push({
        connectionIndex,
        progress: 0,
        speed: 0.6, // Consistent speed for all traces
        intensity: 0.6 + Math.random() * 0.4,
        createdAt: now,
        sourceNode: connection.from, // Track originating node for propagation
        targetLayer: nodeB.layerIndex,
        color: colorPersonality // Add color personality
      });
      connection.lastActivation = now;
      
      // Add stronger and longer-lasting glow to connection
      this.connectionGlow.set(connection.id, 1.5); // Increased from 1.0 for more afterglow
    }
  }
  
  updatePulses() {
    const completedPulses = [];
    
    this.pulses = this.pulses.filter(pulse => {
      pulse.progress += pulse.speed * 0.016;
      
      // Check if pulse completed a connection
      if (pulse.progress >= 1 && !pulse.hasCompleted) {
        pulse.hasCompleted = true;
        completedPulses.push(pulse);
        return false; // Remove completed pulse
      }
      
      return pulse.progress <= 1;
    });
    
    // Handle pulse propagation - create new pulses at target nodes
    completedPulses.forEach(completedPulse => {
      const connection = this.connections[completedPulse.connectionIndex];
      const targetNode = this.nodes[connection.to];
      const targetLayerIndex = targetNode.layerIndex;
      
      // Find connections from this target node to the next layer
      const nextLayerConnections = this.connections.filter((conn, index) => {
        const fromNode = this.nodes[conn.from];
        const toNode = this.nodes[conn.to];
        return fromNode === targetNode && toNode.layerIndex === targetLayerIndex + 1;
      });
      
      // Propagate to next layer - pick one connection to continue the trace
      if (nextLayerConnections.length > 0) {
        // Select a random connection from available next layer connections
        const selectedConnection = nextLayerConnections[Math.floor(Math.random() * nextLayerConnections.length)];
        const connectionIndex = this.connections.indexOf(selectedConnection);
        
        if (connectionIndex !== -1) {
          this.pulses.push({
            connectionIndex,
            progress: 0,
            speed: completedPulse.speed, // Consistent speed - no variation
            intensity: completedPulse.intensity * (0.8 + Math.random() * 0.3), // Gradual intensity decay
            createdAt: Date.now(),
            sourceNode: selectedConnection.from,
            targetLayer: this.nodes[selectedConnection.to].layerIndex,
            hasCompleted: false,
            color: completedPulse.color // Inherit color from parent pulse
          });
          
          // Add stronger glow to the connection for better afterglow
          this.connectionGlow.set(selectedConnection.id, 1.2); // Increased from 0.8
        }
      }
    });
    
    // Much slower decay for very long lingering afterglow on edges
    for (const [id, glow] of this.connectionGlow.entries()) {
      this.connectionGlow.set(id, Math.max(0, glow - 0.001)); // Much slower decay for very long afterglow (was 0.002)
    }
  }
  
  draw() {
    this.ctx.clearRect(0, 0, this.width, this.height);
    
    // Draw connections - extremely subtle, minimal visibility
    this.connections.forEach((connection, index) => {
      const nodeA = this.nodes[connection.from];
      const nodeB = this.nodes[connection.to];
      const glow = this.connectionGlow.get(connection.id) || 0;
      
      // Only draw connections with substantial glow
      if (glow > 0.1) {
        // Calculate depth-based thickness - closer edges are thicker
        const avgDepthFactor = ((nodeA.depthFactor || 0.5) + (nodeB.depthFactor || 0.5)) / 2;
        const baseLineWidth = connection.type === 'intra' ? 0.8 : 0.4;
        const depthLineWidth = baseLineWidth * (0.3 + avgDepthFactor * 1.0); // Even thinner
        
        // More colorful glowing connection with purplish-blue afterglow
        const glowAlpha = glow * 0.14; // Reduced to 70% of 0.2 = 0.14
        this.ctx.strokeStyle = `rgba(150, 130, 220, ${glowAlpha})`; // Purplish-blue afterglow
        this.ctx.lineWidth = depthLineWidth;
        this.ctx.beginPath();
        this.ctx.moveTo(nodeA.x, nodeA.y);
        this.ctx.lineTo(nodeB.x, nodeB.y);
        this.ctx.stroke();
        
        // Bright center line with enhanced purplish color for active connections
        if (glow > 0.6) {
          this.ctx.strokeStyle = `rgba(180, 150, 240, ${(glow - 0.6) * 0.7})`; // Purplish center
          this.ctx.lineWidth = depthLineWidth * 0.3;
          this.ctx.beginPath();
          this.ctx.moveTo(nodeA.x, nodeA.y);
          this.ctx.lineTo(nodeB.x, nodeB.y);
          this.ctx.stroke();
        }
      }
    });
    
    // Draw pulses with light blue colors and glow trails
    this.pulses.forEach(pulse => {
      const connection = this.connections[pulse.connectionIndex];
      const nodeA = this.nodes[connection.from];
      const nodeB = this.nodes[connection.to];
      
      const x = nodeA.x + (nodeB.x - nodeA.x) * pulse.progress;
      const y = nodeA.y + (nodeB.y - nodeA.y) * pulse.progress;
      
      const alpha = Math.sin(pulse.progress * Math.PI) * pulse.intensity;
      
      // Get pulse color with fallback to original blue
      const pulseColor = pulse.color || { r: 100, g: 140, b: 200 };
      const { r, g, b } = pulseColor;
      
      // Draw much longer and more lingering glow trail behind the pulse
      const trailLength = 60; // Doubled from 30 for twice as long trails
      for (let i = 0; i < trailLength; i++) {
        const trailProgress = Math.max(0, pulse.progress - (i * 0.0075)); // Half the spacing for twice as long trail
        if (trailProgress > 0) {
          const trailX = nodeA.x + (nodeB.x - nodeA.x) * trailProgress;
          const trailY = nodeA.y + (nodeB.y - nodeA.y) * trailProgress;
          const trailAlpha = alpha * (1 - i / trailLength) * 0.45; // Reduced to 75% of 0.6 = 0.45
          
          // Larger trail points that fade more gradually
          const trailRadius = 3 - (i * 0.15); // Slower size reduction for longer visible trail
          
          this.ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${trailAlpha})`;
          this.ctx.beginPath();
          this.ctx.arc(trailX, trailY, Math.max(0.5, trailRadius), 0, Math.PI * 2);
          this.ctx.fill();
        }
      }
      
      // Main pulse with enhanced glow using custom color - reduced to 75% opacity
      this.ctx.shadowColor = `rgba(${Math.min(255, r + 20)}, ${Math.min(255, g + 20)}, ${Math.min(255, b + 20)}, ${0.4 * 0.75})`;
      this.ctx.shadowBlur = 12;
      this.ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${alpha * 0.75})`;
      this.ctx.beginPath();
      this.ctx.arc(x, y, 3.5, 0, Math.PI * 2);
      this.ctx.fill();
      
      // Bright center with color variation - reduced to 75% opacity
      this.ctx.shadowBlur = 6;
      this.ctx.fillStyle = `rgba(${Math.min(255, r + 50)}, ${Math.min(255, g + 50)}, ${Math.min(255, b + 55)}, ${alpha * 0.9 * 0.75})`;
      this.ctx.beginPath();
      this.ctx.arc(x, y, 2, 0, Math.PI * 2);
      this.ctx.fill();
      this.ctx.shadowBlur = 0;
    });
    
    // Draw nodes with layer-specific styling, depth scaling, and depth-based alpha
    this.nodes.forEach(node => {
      const baseAlpha = Math.max(0.4, Math.min(1, node.activity));
      const depthAlpha = node.depthAlpha || 1.0;
      const finalAlpha = baseAlpha * depthAlpha;
      const color = node.color;
      const nodeRadius = node.currentRadius || node.radius;
      
      // Main node with depth-based size and transparency
      this.ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${finalAlpha})`;
      this.ctx.beginPath();
      this.ctx.arc(node.x, node.y, nodeRadius, 0, Math.PI * 2);
      this.ctx.fill();
      
      // Subtle inner highlight for active nodes
      if (node.activity > 0.6) {
        const highlightAlpha = (node.activity - 0.6) * 0.8 * depthAlpha;
        this.ctx.fillStyle = `rgba(${Math.min(255, color.r + 60)}, ${Math.min(255, color.g + 60)}, ${Math.min(255, color.b + 60)}, ${highlightAlpha})`;
        this.ctx.beginPath();
        this.ctx.arc(node.x, node.y, nodeRadius * 0.6, 0, Math.PI * 2);
        this.ctx.fill();
      }
    });
  }
  
  getMorseForCurrentTime() {
    // Update morse code timer
    this.morseTimer += 16; // 60fps = ~16ms per frame
    
    const message = this.morseMessages[this.currentMessage];
    if (this.morsePosition >= message.length) {
      // End of message, pause then move to next
      if (this.morseTimer > 3000) { // 3 second pause between messages
        this.currentMessage = (this.currentMessage + 1) % this.morseMessages.length;
        this.morsePosition = 0;
        this.morseTimer = 0;
      }
      return null;
    }
    
    const char = message[this.morsePosition];
    const morse = this.morseCode[char] || '';
    
    // Move to next character after appropriate timing (50% compression)
    const charDuration = char === ' ' ? 500 : morse.length * 150 + 250; // Space = 0.5s, others = 150ms per symbol + 250ms gap
    if (this.morseTimer > charDuration) {
      this.morsePosition++;
      this.morseTimer = 0;
    }
    
    return { char, morse, progress: this.morseTimer / charDuration };
  }
  
  animate() {
    this.updateNodes();
    this.updatePulses();
    
    // Get current morse code state
    const morseState = this.getMorseForCurrentTime();
    
    // Pulse system - faster and more frequent synchronized bursts
    const shouldCreatePulse = Math.random() < 0.001; // Increased from 0.0002 - 5x more frequent
    let morseBoost = false;
    
    // Check for morse code transmission with compressed timing
    if (morseState && morseState.morse) {
      const symbolIndex = Math.floor(morseState.progress * morseState.morse.length);
      const symbol = morseState.morse[symbolIndex];
      
      if (symbol === '.') {
        morseBoost = Math.random() < 0.015; // Increased from 0.003 - 5x more frequent
      } else if (symbol === '-') {
        morseBoost = Math.random() < 0.0075; // Increased from 0.0015 - 5x more frequent
      }
    }
    
    // Create synchronized pulse - all traces start at the same time
    if (shouldCreatePulse || morseBoost) {
      // Find all connections from leftmost layer (layer 0)
      const leftmostConnections = this.connections
        .map((connection, index) => ({ connection, index }))
        .filter(({ connection }) => this.nodes[connection.from].layerIndex === 0);
      
      // Create traces from an even smaller subset of leftmost connections (synchronized)
      const numTraces = Math.max(1, Math.floor(leftmostConnections.length * 0.02)); // Use 2% of available connections
      const selectedConnections = leftmostConnections
        .sort(() => Math.random() - 0.5) // Shuffle
        .slice(0, numTraces); // Take first numTraces
      
      selectedConnections.forEach(({ index }) => {
        this.createPulse(index);
      });
    }
    
    this.draw();
    this.animationId = requestAnimationFrame(() => this.animate());
  }
  
  destroy() {
    if (this.animationId) {
      cancelAnimationFrame(this.animationId);
    }
    if (this.resizeTimeout) {
      clearTimeout(this.resizeTimeout);
    }
  }
}

/**
 * Initialize neural network when DOM is ready
 * Automatically starts the animation if canvas is available and motion is not reduced
 */
function initializeNeuralNetwork() {
  const canvas = document.getElementById('neural-network');
  let started = false;
  let network = null;

  // Wait until the canvas has a real, non-zero layout size
  const startNetwork = () => {
    if (started) {return;}

    const ready =
      canvas &&
      canvas.clientWidth > 0 &&
      canvas.clientHeight > 0 &&
      !window.matchMedia('(prefers-reduced-motion: reduce)').matches;

    if (ready) {
      started = true;
      network = new NeuralNetwork(canvas);

      // Clean up on page unload
      window.addEventListener('beforeunload', () => {
        network && network.destroy();
      });
    } else {
      requestAnimationFrame(startNetwork); // try again next frame after layout settles
    }
  };

  requestAnimationFrame(startNetwork);
}

// Auto-initialize if DOM is already loaded, otherwise wait for it
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', initializeNeuralNetwork);
} else {
  initializeNeuralNetwork();
}

// Export for potential module use
if (typeof module !== 'undefined' && module.exports) {
  module.exports = { NeuralNetwork, initializeNeuralNetwork };
}

test-output/src/js/secure-contact.js (5.8 KiB)

/**
 * Secure Contact Email System
 * Multiple layers of obfuscation to defeat email scrapers
 */

(function() {
  'use strict';
    
  // Email domain configuration (encoded)
  const DOMAIN_PARTS = ['sibylline', 'dev'];
  const EMAIL_CONFIGS = {
    contact: {
      user: [110, 97, 116, 104, 97, 110], // 'nathan' in char codes
      subjects: {
        strategy: 'Strategy Session Request',
        technical: 'Technical Assessment Request', 
        innovation: 'Innovation Workshop Interest',
        general: 'General Inquiry'
      }
    },
    hello: {
      user: [110, 97, 116, 104, 97, 110], // 'nathan' in char codes
      subjects: {
        general: 'Hello from your website'
      }
    }
  };
    
  // Anti-scraping delays and checks
  function antiScrapingCheck() {
    // Check for headless browser indicators
    if (navigator.webdriver || 
            window.phantom || 
            window._phantom || 
            window.callPhantom ||
            window.outerHeight === 0 ||
            !window.chrome && navigator.userAgent.indexOf('Chrome') > -1) {
      return false;
    }
        
    // Check for human-like behavior (mouse movement)
    if (!window.hasUserInteracted) {
      return false;
    }
        
    return true;
  }
    
  // Human interaction detection
  let userInteractionDetected = false;
  window.hasUserInteracted = false;
    
  ['mousemove', 'click', 'keydown', 'scroll', 'touchstart'].forEach(event => {
    document.addEventListener(event, function() {
      if (!userInteractionDetected) {
        userInteractionDetected = true;
        window.hasUserInteracted = true;
        // Small delay before enabling email functionality
        setTimeout(() => {
          window.emailSystemReady = true;
        }, Math.random() * 1000 + 500);
      }
    }, { once: true, passive: true });
  });
    
  // ROT13-like but with custom offset
  function deobfuscateString(encoded, offset = 7) {
    return encoded.map(code => String.fromCharCode(code + offset)).join('');
  }
    
  // Build email address with multiple checks
  function buildEmailAddress(emailType = 'contact') {
    if (!antiScrapingCheck() || !window.emailSystemReady) {
      return '#';
    }
        
    const config = EMAIL_CONFIGS[emailType];
    if (!config) {return '#';}
        
    // Decode user part
    const user = String.fromCharCode(...config.user);
        
    // Build domain (add random delay)
    setTimeout(() => {
      // This delay makes automated scraping harder
    }, Math.random() * 100);
        
    const domain = DOMAIN_PARTS.join('.');
    return `${user}@${domain}`;
  }
    
  // Generate secure mailto link
  function generateMailtoLink(emailType = 'contact', subjectType = 'general', customBody = '') {
    if (!antiScrapingCheck() || !window.emailSystemReady) {
      // Return a placeholder that looks like it might work to scrapers
      return 'javascript:void(0)';
    }
        
    const email = buildEmailAddress(emailType);
    if (email === '#') {return 'javascript:void(0)';}
        
    const config = EMAIL_CONFIGS[emailType];
    const subject = config.subjects[subjectType] || config.subjects.general;
        
    const bodyText = customBody || `I'm interested in ${subject.toLowerCase()}. Please contact me about...`;
        
    return `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(bodyText)}`;
  }
    
  // Initialize secure contact links
  function initializeSecureContacts() {
    // Wait for user interaction
    if (!window.emailSystemReady) {
      setTimeout(initializeSecureContacts, 100);
      return;
    }
        
    // Update contact buttons
    document.querySelectorAll('[data-contact-type]').forEach(element => {
      const emailType = element.getAttribute('data-contact-type') || 'contact';
      const subjectType = element.getAttribute('data-subject-type') || 'general';
      const customBody = element.getAttribute('data-custom-body') || '';
            
      const mailtoLink = generateMailtoLink(emailType, subjectType, customBody);
            
      if (element.tagName.toLowerCase() === 'a') {
        element.href = mailtoLink;
      } else {
        element.addEventListener('click', function(e) {
          e.preventDefault();
          if (mailtoLink !== 'javascript:void(0)') {
            window.location.href = mailtoLink;
          }
        });
      }
    });
        
    // Update email display elements
    document.querySelectorAll('[data-email-display]').forEach(element => {
      const emailType = element.getAttribute('data-email-display') || 'contact';
      const email = buildEmailAddress(emailType);
            
      if (email !== '#') {
        element.textContent = email;
        if (element.tagName.toLowerCase() === 'a') {
          element.href = `mailto:${email}`;
        }
      }
    });
        
    // Update modal email system (for existing modal functionality)
    if (window.updateModalEmail) {
      window.updateModalEmail = function(emailType = 'hello') {
        return buildEmailAddress(emailType);
      };
    }
  }
    
  // Enhanced modal functionality for existing code
  window.generateSecureMailto = function(subject, body, emailType = 'hello') {
    if (!antiScrapingCheck() || !window.emailSystemReady) {
      return 'javascript:void(0)';
    }
        
    const email = buildEmailAddress(emailType);
    if (email === '#') {return 'javascript:void(0)';}
        
    return `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
  };
    
  // Initialize when DOM is ready
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initializeSecureContacts);
  } else {
    initializeSecureContacts();
  }
    
  // Re-initialize periodically to catch dynamically added elements
  setInterval(initializeSecureContacts, 2000);
    
})();

test-output/src/js/ui-interactions.js (8.2 KiB)

/**
 * UI interaction handlers for general user interface elements
 * Handles click handlers, hover effects, icon initialization, and general UI interactions
 */

class UIInteractions {
  constructor() {
    this.init();
  }
  
  init() {
    this.initIconSystem();
    this.initScrollEffects();
    this.initGeneralClickHandlers();
    this.initHoverEffects();
    this.initKeyboardInteractions();
  }
  
  /**
   * Initialize Lucide icon system
   */
  initIconSystem() {
    // Initialize Lucide icons when available
    if (window.lucide) {
      lucide.createIcons();
    } else {
      // Wait for Lucide to load if not immediately available
      const checkLucide = setInterval(() => {
        if (window.lucide) {
          lucide.createIcons();
          clearInterval(checkLucide);
        }
      }, 100);
      
      // Clear interval after 5 seconds to prevent infinite checking
      setTimeout(() => clearInterval(checkLucide), 5000);
    }
  }
  
  /**
   * Initialize scroll-based effects
   */
  initScrollEffects() {
    // Add scroll-based animations or effects here
    let ticking = false;
    
    const handleScroll = () => {
      if (!ticking) {
        requestAnimationFrame(() => {
          this.updateScrollEffects();
          ticking = false;
        });
        ticking = true;
      }
    };
    
    window.addEventListener('scroll', handleScroll, { passive: true });
  }
  
  updateScrollEffects() {
    const scrollY = window.scrollY;
    const windowHeight = window.innerHeight;
    
    // Add scroll-based animations here
    // Example: parallax effects, fade-ins, etc.
    
    // Update elements based on scroll position
    const elements = document.querySelectorAll('[data-scroll-effect]');
    elements.forEach(element => {
      const rect = element.getBoundingClientRect();
      const isVisible = rect.top < windowHeight && rect.bottom > 0;
      
      if (isVisible) {
        element.classList.add('in-viewport');
      } else {
        element.classList.remove('in-viewport');
      }
    });
  }
  
  /**
   * Initialize general click handlers for interactive elements
   */
  initGeneralClickHandlers() {
    // Handle all buttons with data-action attributes
    document.addEventListener('click', (e) => {
      const button = e.target.closest('[data-action]');
      if (button) {
        const action = button.getAttribute('data-action');
        this.handleButtonAction(action, button, e);
      }
    });
    
    // Handle external links
    const externalLinks = document.querySelectorAll('a[href^="http"]:not([href*="' + location.hostname + '"])');
    externalLinks.forEach(link => {
      link.setAttribute('target', '_blank');
      link.setAttribute('rel', 'noopener noreferrer');
    });
  }
  
  /**
   * Handle button actions based on data-action attribute
   */
  handleButtonAction(action, button, event) {
    switch (action) {
    case 'scroll-to':
      const target = button.getAttribute('data-target');
      this.scrollToElement(target);
      break;
    case 'toggle':
      const toggleTarget = button.getAttribute('data-target');
      this.toggleElement(toggleTarget);
      break;
    case 'copy':
      const copyText = button.getAttribute('data-copy') || button.textContent;
      this.copyToClipboard(copyText, button);
      break;
    default:
      console.log('Unknown action:', action);
    }
  }
  
  /**
   * Smooth scroll to element
   */
  scrollToElement(selector) {
    const element = document.querySelector(selector);
    if (element) {
      element.scrollIntoView({
        behavior: 'smooth',
        block: 'start'
      });
    }
  }
  
  /**
   * Toggle element visibility
   */
  toggleElement(selector) {
    const element = document.querySelector(selector);
    if (element) {
      element.classList.toggle('hidden');
      element.classList.toggle('visible');
    }
  }
  
  /**
   * Copy text to clipboard
   */
  async copyToClipboard(text, button) {
    try {
      await navigator.clipboard.writeText(text);
      
      // Visual feedback
      const originalText = button.textContent;
      button.textContent = 'Copied!';
      button.classList.add('copied');
      
      setTimeout(() => {
        button.textContent = originalText;
        button.classList.remove('copied');
      }, 2000);
    } catch (err) {
      console.error('Failed to copy text:', err);
      
      // Fallback for older browsers
      const textArea = document.createElement('textarea');
      textArea.value = text;
      document.body.appendChild(textArea);
      textArea.select();
      document.execCommand('copy');
      document.body.removeChild(textArea);
    }
  }
  
  /**
   * Initialize hover effects for interactive elements
   */
  initHoverEffects() {
    // Add hover effects to buttons and interactive elements
    const interactiveElements = document.querySelectorAll('.btn, .card, .interactive');
    
    interactiveElements.forEach(element => {
      element.addEventListener('mouseenter', () => {
        element.classList.add('hovered');
      });
      
      element.addEventListener('mouseleave', () => {
        element.classList.remove('hovered');
      });
    });
    
    // Add ripple effect for buttons
    const buttons = document.querySelectorAll('.btn, button');
    buttons.forEach(button => {
      button.addEventListener('click', this.createRippleEffect.bind(this));
    });
  }
  
  /**
   * Create ripple effect on button click
   */
  createRippleEffect(e) {
    const button = e.currentTarget;
    const ripple = document.createElement('span');
    const rect = button.getBoundingClientRect();
    const size = Math.max(rect.width, rect.height);
    const x = e.clientX - rect.left - size / 2;
    const y = e.clientY - rect.top - size / 2;
    
    ripple.style.width = ripple.style.height = size + 'px';
    ripple.style.left = x + 'px';
    ripple.style.top = y + 'px';
    ripple.classList.add('ripple');
    
    button.appendChild(ripple);
    
    // Remove ripple after animation
    setTimeout(() => {
      ripple.remove();
    }, 600);
  }
  
  /**
   * Initialize keyboard interactions
   */
  initKeyboardInteractions() {
    // Handle keyboard navigation
    document.addEventListener('keydown', (e) => {
      // Focus management for accessibility
      if (e.key === 'Tab') {
        document.body.classList.add('keyboard-navigation');
      }
    });
    
    document.addEventListener('mousedown', () => {
      document.body.classList.remove('keyboard-navigation');
    });
    
    // Handle escape key for closing overlays
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape') {
        this.closeAllOverlays();
      }
    });
  }
  
  /**
   * Close all open overlays (tooltips, dropdowns, etc.)
   */
  closeAllOverlays() {
    const overlays = document.querySelectorAll('.overlay.active, .dropdown.open, .tooltip.visible');
    overlays.forEach(overlay => {
      overlay.classList.remove('active', 'open', 'visible');
    });
  }
  
  /**
   * Reinitialize icons (useful after dynamic content loading)
   */
  reinitializeIcons() {
    if (window.lucide) {
      lucide.createIcons();
    }
  }
  
  /**
   * Add loading state to element
   */
  setLoadingState(element, isLoading = true) {
    if (isLoading) {
      element.classList.add('loading');
      element.setAttribute('aria-busy', 'true');
    } else {
      element.classList.remove('loading');
      element.removeAttribute('aria-busy');
    }
  }
  
  /**
   * Show toast notification
   */
  showToast(message, type = 'info', duration = 3000) {
    const toast = document.createElement('div');
    toast.className = `toast toast-${type}`;
    toast.textContent = message;
    
    // Add to page
    const toastContainer = document.querySelector('.toast-container') || document.body;
    toastContainer.appendChild(toast);
    
    // Animate in
    setTimeout(() => toast.classList.add('visible'), 10);
    
    // Remove after duration
    setTimeout(() => {
      toast.classList.remove('visible');
      setTimeout(() => toast.remove(), 300);
    }, duration);
  }
}

// Initialize UI interactions
window.UIInteractions = UIInteractions;

// Initialize when DOM is ready
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', () => {
    new UIInteractions();
  });
} else {
  new UIInteractions();
}

test-output/src/styles/animations.css (6.0 KiB)

/* Animation Styles */

/* =================================
   Keyframe Animations
   ================================= */

/* Fade In Animation */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Slide In From Left */
@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Slide In From Right */
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Scale In Animation */
@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Bounce Animation */
@keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    transform: translate3d(0, -12px, 0);
  }
  70% {
    transform: translate3d(0, -6px, 0);
  }
  90% {
    transform: translate3d(0, -2px, 0);
  }
}

/* Pulse Animation */
@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

/* Float Animation */
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
}

/* Rotate Animation */
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Glow Animation */
@keyframes glow {
  0%, 100% {
    box-shadow: 0 0 3px rgba(0, 123, 255, 0.2);
  }
  50% {
    box-shadow: 0 0 8px rgba(0, 123, 255, 0.3);
  }
}

/* =================================
   Animation Classes
   ================================= */

/* Entry Animations */
.animate-fade-in {
  animation: fadeIn 0.6s ease-out forwards;
}

.animate-slide-in-left {
  animation: slideInLeft 0.8s ease-out forwards;
}

.animate-slide-in-right {
  animation: slideInRight 0.8s ease-out forwards;
}

.animate-scale-in {
  animation: scaleIn 0.4s ease-out forwards;
}

/* Continuous Animations */
.animate-bounce {
  animation: bounce 2s infinite;
}

.animate-pulse {
  animation: pulse 2s infinite;
}

.animate-float {
  animation: float 3s ease-in-out infinite;
}

.animate-rotate {
  animation: rotate 2s linear infinite;
}

.animate-glow {
  animation: glow 2s ease-in-out infinite;
}

/* =================================
   Hover Animations
   ================================= */
.hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.hover-scale {
  transition: transform 0.2s ease;
}

.hover-scale:hover {
  transform: scale(1.05);
}

.hover-rotate {
  transition: transform 0.3s ease;
}

.hover-rotate:hover {
  transform: rotate(5deg);
}

/* =================================
   Loading Animations
   ================================= */
.loading-spinner {
  width: 2rem;
  height: 2rem;
  border: 3px solid rgba(0, 123, 255, 0.1);
  border-top: 3px solid var(--primary-color, #007bff);
  border-radius: 50%;
  animation: rotate 1s linear infinite;
}

.loading-dots {
  display: inline-flex;
  gap: 0.25rem;
}

.loading-dots::before,
.loading-dots::after {
  content: '';
  width: 0.5rem;
  height: 0.5rem;
  background: var(--primary-color, #007bff);
  border-radius: 50%;
  animation: loading-dot 1.4s infinite ease-in-out;
}

.loading-dots::before {
  animation-delay: -0.16s;
}

.loading-dots::after {
  animation-delay: 0.16s;
}

@keyframes loading-dot {
  0%, 80%, 100% {
    transform: scale(0.8);
    opacity: 0.5;
  }
  40% {
    transform: scale(1);
    opacity: 1;
  }
}

/* =================================
   Staggered Animations
   ================================= */
.stagger-animation > * {
  opacity: 0;
  animation: fadeIn 0.6s ease-out forwards;
}

.stagger-animation > *:nth-child(1) { animation-delay: 0.1s; }
.stagger-animation > *:nth-child(2) { animation-delay: 0.2s; }
.stagger-animation > *:nth-child(3) { animation-delay: 0.3s; }
.stagger-animation > *:nth-child(4) { animation-delay: 0.4s; }
.stagger-animation > *:nth-child(5) { animation-delay: 0.5s; }
.stagger-animation > *:nth-child(6) { animation-delay: 0.6s; }

/* =================================
   Neural Network Animations
   ================================= */
.neural-node {
  animation: pulse 3s ease-in-out infinite;
}

.neural-connection {
  opacity: 0;
  animation: fadeIn 2s ease-in-out infinite alternate;
}

.neural-data-flow {
  animation: float 4s ease-in-out infinite;
}

/* =================================
   Accessibility Considerations
   ================================= */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .animate-bounce,
  .animate-pulse,
  .animate-float,
  .animate-rotate,
  .animate-glow {
    animation: none;
  }
  
  .loading-spinner,
  .loading-dots::before,
  .loading-dots::after {
    animation: none;
  }
}

/* =================================
   Performance Optimizations
   ================================= */
.will-animate {
  will-change: transform, opacity;
}

.hardware-accelerated {
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;
}

/* =================================
   Intersection Observer Triggers
   ================================= */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.animate-on-scroll.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* =================================
   Custom Easing Functions
   ================================= */
:root {
  --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

.smooth-ease {
  transition: all 0.3s var(--ease-out-cubic);
}

test-output/src/styles/cards.css (28.2 KiB)

/* Service Card and Discovery Option Styles */

/* =================================
   Discovery Options Grid & Cards
   ================================= */

.discovery-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--space-xl);
  margin: var(--space-xl) 0;
  align-items: start;
}

.discovery-option {
  background: var(--color-surface);
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  height: 20rem;
}

.discovery-option .btn-primary {
  margin-top: auto;
  width: 100%;
  position: relative;
  border: none;
  border-radius: var(--radius-lg);
  font-size: var(--text-lg);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: white;
  background: linear-gradient(
    to right, 
    var(--color-accent) 20%, 
    var(--color-accent) 35%, 
    rgba(115, 125, 247, 1) 42%, 
    rgba(130, 140, 248, 1) 50%, 
    rgba(115, 125, 247, 1) 58%, 
    var(--color-accent) 65%, 
    var(--color-accent) 100%
  );
  background-size: 200% auto;
  animation: tagShine 6s linear infinite;
  text-decoration: none;
}

.discovery-option .btn-primary .btn-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: calc(var(--space-sm) * 1.25) calc(var(--space-lg) * 1.25);
  margin: 2px;
  background: var(--color-accent);
  border-radius: calc(var(--radius-lg) - 1px);
  color: white;
  width: 100%;
  height: 100%;
}

.discovery-option .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.4);
  color: white;
}

.discovery-option h3 {
  margin-top: 0;
  margin-bottom: var(--space-md);
  color: var(--color-accent);
  font-size: var(--text-base);
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
  transition: all 0.3s ease;
}

.discovery-option:hover h3 {
  color: var(--color-accent);
  text-shadow: 0 0 12px rgba(99, 102, 241, 0.6);
}

.discovery-option:hover h3 i {
  filter: drop-shadow(0 0 8px rgba(99, 102, 241, 0.8));
}

.discovery-option p {
  margin-bottom: var(--space-lg);
  font-size: var(--text-base);
  align-self: start;
}

/* =================================
   Services Grid & Service Cards
   ================================= */

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
  margin-top: var(--space-lg);
  align-items: start;
}

.service-card {
  background: var(--color-surface);
  padding: var(--space-xl);
  padding-bottom: calc(var(--space-xl) + 120px); /* Add space for visual element */
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  border: 1px solid var(--color-border-light);
  transition: all 0.3s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: 3.75rem 5rem 1fr;
  height: 25rem;
}

.service-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  border-color: var(--color-accent);
}

.service-card.expanded {
  transform: scale(1.01);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
  border-color: var(--color-accent);
  z-index: 10;
}

.service-card h3 {
  margin-top: 0;
  margin-bottom: var(--space-md);
  color: var(--color-accent);
  font-weight: 600;
  font-size: var(--text-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.2;
}

.service-summary {
  transition: opacity 0.3s ease;
  align-self: start;
}

.service-details {
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border-light);
}

.service-card.expanded .service-summary {
  opacity: 0.7;
}

.service-card.expanded .service-details {
  display: block;
  opacity: 1;
}

.service-details h4 {
  margin-top: 0;
  margin-bottom: var(--space-sm);
  color: var(--color-text);
  font-size: var(--text-lg);
}

.service-details ul {
  margin: var(--space-sm) 0;
  padding-left: var(--space-lg);
}

.service-details li {
  margin-bottom: var(--space-xs);
}

.service-card .click-hint {
  position: absolute;
  bottom: var(--space-sm);
  right: var(--space-sm);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  opacity: 0.6;
  transition: opacity 0.3s ease;
}

.service-card.expanded .click-hint {
  opacity: 0;
}

/* =================================
   Shared Card Title Styles
   ================================= */

/* Centered card titles with hover glow */
.discovery-option h3,
.service-card h3 {
  text-align: center;
  transition: all 0.3s ease;
}

.discovery-option:hover h3,
.service-card:hover h3 {
  text-shadow: 0 0 2px rgba(102, 126, 234, 0.4);
  filter: brightness(1.15);
}

/* Icon styles for h3 elements - 25% bigger */
.service-card h3 i,
.discovery-option h3 i {
  width: 1.5em;
  height: 1.5em;
  margin-right: 0;
  margin-left: 0;
  vertical-align: middle;
  display: inline-block;
}

/* =================================
   Service Visual Elements
   ================================= */

/* Base Service Visual Container */
.service-visual {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 120px;
  background: linear-gradient(135deg, var(--color-graphite-750) 0%, var(--color-graphite-700) 100%);
  border-bottom-left-radius: var(--radius-lg);
  border-bottom-right-radius: var(--radius-lg);
  overflow: hidden;
  opacity: 0.8;
}

.service-visual::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, 
    rgba(255, 255, 255, 0.1) 0%, 
    rgba(255, 255, 255, 0.03) 50%,
    rgba(255, 255, 255, 0.08) 100%
  );
  pointer-events: none;
}

/* Production Pipeline Visualization */
.production-pipeline {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-sm);
  background: linear-gradient(135deg, rgba(14, 165, 233, 0.05) 0%, rgba(99, 102, 241, 0.05) 100%);
  overflow: hidden;
}

.pipeline-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  position: relative;
}

.stage-icon {
  font-size: 12px;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--color-accent), rgb(14, 165, 233));
  border-radius: 50%;
  color: white;
  font-weight: bold;
}

.stage-label {
  font-size: 8px;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.stage-status {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
  animation: statusPulse 2s infinite;
}

.stage-status.success {
  background: rgb(34, 197, 94);
}

.pipeline-flow {
  flex: 1;
  height: 2px;
  background: rgba(99, 102, 241, 0.2);
  position: relative;
  margin: 0 8px;
}

.flow-segment {
  height: 100%;
  position: relative;
  overflow: hidden;
}

.code-commit, .build-artifact, .live-agent {
  position: absolute;
  width: 8px;
  height: 8px;
  background: var(--color-accent);
  border-radius: 50%;
  top: -3px;
  animation: pipelineFlow 3s infinite;
}

.flowing {
  opacity: 0;
}

.uptime-indicator {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 7px;
  font-weight: 700;
  color: rgb(34, 197, 94);
  background: rgba(34, 197, 94, 0.1);
  padding: 2px 4px;
  border-radius: 4px;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.agent-swarm {
  position: absolute;
  bottom: 8px;
  right: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.agent-instance {
  width: 6px;
  height: 6px;
  background: var(--color-accent);
  border-radius: 50%;
  animation: agentScale 2s infinite;
}

.scaling-indicator {
  font-size: 6px;
  color: var(--color-text-secondary);
  font-weight: 600;
  text-align: center;
}

/* Adaptive Intelligence Visualization */
.adaptive-intelligence {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-sm);
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.05) 0%, rgba(99, 102, 241, 0.05) 100%);
  overflow: hidden;
}

.pattern-recognition {
  position: relative;
  width: 100%;
  height: 60%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.data-stream {
  position: relative;
  width: 100%;
  height: 100%;
}

.data-cluster {
  position: absolute;
  width: 24px;
  height: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  padding: 4px;
  border-radius: 50%;
  transition: all 0.3s ease;
}

.data-cluster.emerging {
  background: rgba(168, 85, 247, 0.1);
  border: 1px solid rgba(168, 85, 247, 0.3);
}

.data-cluster.analyzing {
  background: rgba(168, 85, 247, 0.2);
  border: 1px solid rgba(168, 85, 247, 0.5);
  animation: clusterPulse 2s infinite;
}

.data-cluster.learned {
  background: rgba(168, 85, 247, 0.3);
  border: 2px solid rgb(168, 85, 247);
  animation: insightGlow 3s infinite;
}

.pattern-dot {
  width: 4px;
  height: 4px;
  background: rgb(168, 85, 247);
  border-radius: 50%;
  animation: dotPulse 1.5s infinite;
}

.pattern-connection {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2px;
  height: 20px;
  background: rgb(168, 85, 247);
  transform: translate(-50%, -50%) rotate(45deg);
  opacity: 0.6;
}

.insight-spark {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 8px;
  height: 8px;
  background: rgb(255, 215, 0);
  border-radius: 50%;
  animation: spark 2s infinite;
}

.evolution-spiral {
  position: absolute;
  bottom: 20%;
  right: 10%;
  width: 30px;
  height: 30px;
}

.spiral-path {
  width: 100%;
  height: 100%;
  border: 2px solid rgba(168, 85, 247, 0.3);
  border-radius: 50%;
  border-top-color: rgb(168, 85, 247);
  animation: spin 3s linear infinite;
}

.learning-marker {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgb(168, 85, 247);
  border-radius: 50%;
  top: calc(50% + 12px * cos(var(--position) * 3.14159 / 50));
  left: calc(50% + 12px * sin(var(--position) * 3.14159 / 50));
  transform: translate(-50%, -50%);
}

.learning-marker.active {
  background: rgb(255, 215, 0);
  animation: markerGlow 2s infinite;
}

.prediction-engine {
  width: 100%;
  height: 30%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.trend-line {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 20px;
}

.trend-point {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  transition: all 0.3s ease;
}

.trend-point.past {
  background: rgba(168, 85, 247, 0.5);
  height: 8px;
}

.trend-point.current {
  background: rgb(168, 85, 247);
  height: 12px;
  animation: currentPulse 2s infinite;
}

.trend-point.future {
  background: rgb(255, 215, 0);
  height: 16px;
  animation: futurePulse 2s infinite;
}

.confidence-gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.gauge-fill {
  height: 4px;
  background: linear-gradient(to right, rgb(168, 85, 247), rgb(255, 215, 0));
  border-radius: 2px;
  position: relative;
  overflow: hidden;
}

.gauge-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 20%;
  background: rgba(255, 255, 255, 0.3);
  animation: gaugeShimmer 2s infinite;
}

.gauge-label {
  font-size: 7px;
  font-weight: 600;
  color: rgb(168, 85, 247);
}

/* Experience Journey Visualization */
.experience-journey {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--space-sm);
  background: linear-gradient(135deg, rgba(192, 132, 252, 0.05) 0%, rgba(99, 102, 241, 0.05) 100%);
  overflow: hidden;
}

.timeline-mastery {
  width: 100%;
  height: 60%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}

.era-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  position: relative;
  opacity: 0;
  animation: eraReveal 3s ease-out forwards;
}

.era-marker.era-2007 { animation-delay: 0s; }
.era-marker.era-2015 { animation-delay: 0.5s; }
.era-marker.era-2020 { animation-delay: 1s; }
.era-marker.era-current { animation-delay: 1.5s; }

.era-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(192, 132, 252, 0.3);
  border: 2px solid rgba(192, 132, 252, 0.5);
  transition: all 0.3s ease;
}

.era-marker.active .era-dot {
  background: rgb(192, 132, 252);
  border-color: rgb(192, 132, 252);
  box-shadow: 0 0 12px rgba(192, 132, 252, 0.8);
  animation: eraGlow 2s infinite;
}

.era-dot.pulsing {
  animation: eraPulse 2s infinite;
}

.era-label {
  font-size: 8px;
  font-weight: 700;
  color: rgb(192, 132, 252);
  text-align: center;
}

.era-tech {
  font-size: 6px;
  font-weight: 500;
  color: var(--color-text-secondary);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.experience-flow {
  flex: 1;
  height: 2px;
  background: rgba(192, 132, 252, 0.2);
  margin: 0 8px;
  position: relative;
  overflow: hidden;
}

.tech-evolution {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(192, 132, 252, 0.6) 50%, 
    transparent 100%);
  animation: techFlow 4s infinite;
}

.tech-evolution.ai-winter { animation-delay: 0s; }
.tech-evolution.big-data { animation-delay: 1s; }
.tech-evolution.llm-boom { animation-delay: 2s; }

.wisdom-accumulation {
  width: 100%;
  height: 35%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pattern-library {
  display: flex;
  gap: 6px;
  flex: 1;
}

.pattern-block {
  padding: 4px 6px;
  border-radius: 4px;
  font-size: 6px;
  font-weight: 600;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.pattern-block.survived {
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.4);
  color: rgb(34, 197, 94);
}

.pattern-block.failed {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.4);
  color: rgb(239, 68, 68);
}

.pattern-block.emerging {
  background: rgba(255, 215, 0, 0.15);
  border: 1px solid rgba(255, 215, 0, 0.4);
  color: rgb(255, 215, 0);
  animation: emergingGlow 3s infinite;
}

.experience-counter {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.counter-value {
  font-size: 16px;
  font-weight: 900;
  color: rgb(192, 132, 252);
  line-height: 1;
  animation: counterPulse 3s infinite;
}

.counter-label {
  font-size: 6px;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
}

/* Agent Orchestration Visualization */
.agent-orchestration {
  position: relative;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.05) 0%, rgba(147, 51, 234, 0.05) 100%);
  overflow: hidden;
}

.central-hub {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
}

.hub-core {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--color-accent), rgb(147, 51, 234));
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  font-weight: 900;
  color: white;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: 0 0 12px rgba(99, 102, 241, 0.4);
  position: relative;
}

.hub-pulse {
  position: absolute;
  top: -6px;
  left: -6px;
  right: -6px;
  bottom: -6px;
  border: 2px solid var(--color-accent);
  border-radius: 15px;
  opacity: 0;
  animation: enterprisePulse 3s ease-in-out infinite;
}

.isolated-agents {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.agent-vm {
  position: absolute;
  width: 45px;
  height: 35px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  animation: agentSpawn 2.5s ease-out forwards;
}

.vm-boundary {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border: 2px dashed rgba(147, 51, 234, 0.4);
  border-radius: 8px;
  background: rgba(147, 51, 234, 0.08);
  animation: securityScan 4s ease-in-out infinite;
}

.agent-core {
  position: relative;
  width: 24px;
  height: 20px;
  background: linear-gradient(135deg, rgb(147, 51, 234), rgb(168, 85, 247));
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  font-weight: 800;
  color: white;
  z-index: 2;
  box-shadow: 0 2px 6px rgba(147, 51, 234, 0.3);
}

.isolation-indicator {
  position: absolute;
  top: -3px;
  right: -3px;
  width: 8px;
  height: 8px;
  background: rgb(34, 197, 94);
  border-radius: 50%;
  border: 2px solid white;
  animation: securityBlink 2s ease-in-out infinite;
}

.enterprise-grid {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: 
    linear-gradient(rgba(147, 51, 234, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(147, 51, 234, 0.1) 1px, transparent 1px);
  background-size: 20px 20px;
  opacity: 0.3;
  animation: gridFlow 8s linear infinite;
}

.compliance-badge {
  position: absolute;
  bottom: 8px;
  right: 8px;
  font-size: 10px;
  color: rgb(34, 197, 94);
  font-weight: 700;
  background: rgba(34, 197, 94, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.dept-node {
  position: absolute;
  width: 30px;
  height: 20px;
  background: rgba(99, 102, 241, 0.2);
  border: 1px solid rgba(99, 102, 241, 0.4);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  animation: agentSpawn 2s ease-out forwards;
}

.node-label {
  font-size: 7px;
  font-weight: 700;
  color: var(--color-accent);
  text-transform: uppercase;
}

.connection-beam {
  position: absolute;
  width: 2px;
  height: 20px;
  background: linear-gradient(to bottom, var(--color-accent), transparent);
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0.6;
  animation: beamPulse 2s ease-in-out infinite;
}

.integration-waves {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30px;
}

.wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, 
    transparent, 
    rgba(99, 102, 241, 0.3), 
    transparent);
  animation: waveFlow 3s ease-in-out infinite;
}

.wave.wave-1 { animation-delay: 0s; }
.wave.wave-2 { animation-delay: 1s; }
.wave.wave-3 { animation-delay: 2s; }

/* Startup Icon Sequence */
.startup-icon-sequence {
  position: absolute;
  top: 10px;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  z-index: 2;
}

.startup-icon {
  width: 18px;
  height: 18px;
  color: var(--color-accent);
  filter: drop-shadow(0 0 4px rgba(99, 102, 241, 0.6));
  animation: iconPulse 3s ease-in-out infinite;
}

.startup-arrow {
  width: 14px;
  height: 14px;
  color: var(--color-accent);
  opacity: 0.8;
}

.startup-icon:nth-child(1) { animation-delay: 0s; }
.startup-icon:nth-child(3) { animation-delay: 1s; }
.startup-icon:nth-child(5) { animation-delay: 2s; }

@keyframes iconPulse {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}

/* Startup Velocity Visualization */
.startup-velocity {
  position: relative;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.05) 0%, rgba(99, 102, 241, 0.05) 100%);
  overflow: hidden;
}

.rocket-trajectory {
  position: relative;
  width: 100%;
  height: 70%;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}

.launch-pad {
  position: relative;
  width: 30px;
  height: 40px;
  margin-left: 20px;
}

.rocket {
  font-size: 20px;
  animation: rocketFloat 3s ease-in-out infinite;
}

.exhaust-trail {
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 15px;
  background: linear-gradient(to bottom, 
    rgba(255, 165, 0, 0.8), 
    rgba(255, 69, 0, 0.6), 
    transparent);
  border-radius: 0 0 50% 50%;
  animation: exhaustFlicker 0.3s ease-in-out infinite alternate;
}

.growth-curve {
  position: absolute;
  top: 20%;
  left: 20%;
  right: 20%;
  bottom: 20%;
}

.milestone {
  position: absolute;
  font-size: 8px;
  font-weight: 700;
  color: rgb(34, 197, 94);
  background: rgba(34, 197, 94, 0.15);
  padding: 2px 4px;
  border-radius: 4px;
  border: 1px solid rgba(34, 197, 94, 0.4);
  animation: milestoneGlow 3s ease-in-out infinite;
}

.velocity-indicator {
  position: absolute;
  bottom: 10px;
  right: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.speed-lines {
  width: 30px;
  height: 10px;
  background-image: 
    linear-gradient(90deg, transparent 0%, rgba(34, 197, 94, 0.6) 50%, transparent 100%),
    linear-gradient(90deg, transparent 20%, rgba(34, 197, 94, 0.4) 60%, transparent 100%),
    linear-gradient(90deg, transparent 40%, rgba(34, 197, 94, 0.2) 80%, transparent 100%);
  background-position: 0px 0px, 0px 3px, 0px 6px;
  background-size: 100% 2px;
  background-repeat: no-repeat;
  animation: speedStream 1s linear infinite;
}

.multiplier {
  font-size: 12px;
  font-weight: 900;
  color: rgb(34, 197, 94);
  text-shadow: 0 0 4px rgba(34, 197, 94, 0.5);
  animation: multiplierPulse 2s ease-in-out infinite;
}

/* Learning Journey Visualization */
.learning-journey {
  position: relative;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.05) 0%, rgba(99, 102, 241, 0.05) 100%);
  overflow: hidden;
}

.knowledge-tree {
  position: relative;
  width: 100%;
  height: 80%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.tree-trunk {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 6px;
  height: 40%;
  background: linear-gradient(to top, rgba(139, 69, 19, 0.8), rgba(160, 82, 45, 0.6));
  border-radius: 3px 3px 0 0;
}

.knowledge-branch {
  position: absolute;
  width: 50px;
  height: 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  opacity: 0;
  animation: branchGrow 2s ease-out forwards;
}

.skill-node {
  font-size: 8px;
  font-weight: 700;
  color: rgb(34, 197, 94);
  background: rgba(34, 197, 94, 0.15);
  padding: 2px 6px;
  border-radius: 12px;
  border: 1px solid rgba(34, 197, 94, 0.4);
  text-align: center;
}

.growth-ring {
  width: 12px;
  height: 12px;
  border: 2px solid rgba(34, 197, 94, 0.4);
  border-radius: 50%;
  border-top-color: rgb(34, 197, 94);
  animation: growthSpin 3s linear infinite;
}

.mastery-indicator {
  position: absolute;
  top: 10%;
  right: 15%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.lightbulb {
  font-size: 16px;
  animation: lightbulbGlow 3s ease-in-out infinite;
}

.insight-rays {
  width: 20px;
  height: 20px;
  position: relative;
}

.insight-rays::before,
.insight-rays::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2px;
  height: 8px;
  background: rgb(255, 215, 0);
  transform-origin: center bottom;
  animation: raySpread 2s ease-in-out infinite;
}

.insight-rays::before {
  transform: translate(-50%, -100%) rotate(45deg);
}

.insight-rays::after {
  transform: translate(-50%, -100%) rotate(-45deg);
  animation-delay: 0.5s;
}

/* =================================
   Service Visual Animations
   ================================= */

@keyframes statusPulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}

@keyframes pipelineFlow {
  0% { left: -8px; opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { left: calc(100% + 8px); opacity: 0; }
}

@keyframes agentScale {
  0%, 100% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
}

@keyframes clusterPulse {
  0%, 100% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
}

@keyframes insightGlow {
  0%, 100% { box-shadow: 0 0 4px rgba(168, 85, 247, 0.3); }
  50% { box-shadow: 0 0 12px rgba(168, 85, 247, 0.8); }
}

@keyframes dotPulse {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
}

@keyframes spark {
  0%, 100% { opacity: 0; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes markerGlow {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.4); }
}

@keyframes currentPulse {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
}

@keyframes futurePulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}

@keyframes gaugeShimmer {
  0% { left: -20%; }
  100% { left: 100%; }
}

@keyframes eraReveal {
  0% { opacity: 0; transform: translateY(10px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes eraGlow {
  0%, 100% { box-shadow: 0 0 12px rgba(192, 132, 252, 0.8); }
  50% { box-shadow: 0 0 20px rgba(192, 132, 252, 1); }
}

@keyframes eraPulse {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}

@keyframes techFlow {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

@keyframes emergingGlow {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; box-shadow: 0 0 8px rgba(255, 215, 0, 0.5); }
}

@keyframes counterPulse {
  0%, 100% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

@keyframes enterprisePulse {
  0%, 100% { opacity: 0; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
}

@keyframes agentSpawn {
  0% { opacity: 0; transform: scale(0.8) translateY(10px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes securityScan {
  0%, 100% { border-color: rgba(147, 51, 234, 0.4); }
  50% { border-color: rgba(147, 51, 234, 0.8); }
}

@keyframes securityBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

@keyframes gridFlow {
  0% { transform: translate(0, 0); }
  100% { transform: translate(20px, 20px); }
}

@keyframes beamPulse {
  0%, 100% { opacity: 0.6; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.2); }
}

@keyframes waveFlow {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

@keyframes rocketFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(5deg); }
  66% { transform: translateY(-1px) rotate(-3deg); }
}

@keyframes exhaustFlicker {
  0% { opacity: 0.8; transform: translateX(-50%) scaleY(1); }
  100% { opacity: 1; transform: translateX(-50%) scaleY(1.2); }
}

@keyframes milestoneGlow {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; box-shadow: 0 0 8px rgba(34, 197, 94, 0.5); }
}

@keyframes speedStream {
  0% { background-position: -100px 0px, -80px 3px, -60px 6px; }
  100% { background-position: 100px 0px, 120px 3px, 140px 6px; }
}

@keyframes multiplierPulse {
  0%, 100% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}

@keyframes branchGrow {
  0% { opacity: 0; transform: scale(0.8) translateY(20px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes growthSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes lightbulbGlow {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.3) drop-shadow(0 0 8px rgba(255, 215, 0, 0.6)); }
}

@keyframes raySpread {
  0%, 100% { opacity: 0; transform: translate(-50%, -100%) rotate(var(--rotation, 45deg)) scaleY(0.5); }
  50% { opacity: 1; transform: translate(-50%, -100%) rotate(var(--rotation, 45deg)) scaleY(1); }
}

/* =================================
   Responsive Design
   ================================= */

@media (max-width: 1024px) and (min-width: 769px) {
  .services-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
}

@media (max-width: 768px) {
  .discovery-options {
    grid-template-columns: 1fr;
  }
  
  .services-grid {
    grid-template-columns: 1fr;
  }
}

test-output/src/styles/forms.css (15.3 KiB)

/* =================================
   Form Component Styles
   ================================= */

/* Base form container */
.form {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
}

.form-section {
  background: var(--color-surface-50);
  border: 1px solid var(--color-border-light-50);
  border-radius: var(--radius-lg);
  padding: var(--space-2xl);
  margin: var(--space-xl) 0;
  box-shadow: var(--shadow-sm);
}

/* =================================
   Form Layout & Structure
   ================================= */
.form-group {
  margin-bottom: var(--space-lg);
  position: relative;
}

.form-group:last-child {
  margin-bottom: 0;
}

.form-row {
  display: flex;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

.form-row .form-group {
  flex: 1;
  margin-bottom: 0;
}

.form-actions {
  display: flex;
  gap: var(--space-md);
  justify-content: flex-end;
  align-items: center;
  margin-top: var(--space-xl);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border-light);
}

.form-actions.form-actions-center {
  justify-content: center;
}

.form-actions.form-actions-space-between {
  justify-content: space-between;
}

/* =================================
   Label Styles
   ================================= */
.form-label {
  display: block;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: var(--space-xs);
  line-height: 1.4;
}

.form-label.required::after {
  content: " *";
  color: #ef4444;
  font-weight: 700;
}

.form-label-inline {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  line-height: 1.4;
}

.form-hint {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
  line-height: 1.4;
}

/* =================================
   Input Field Styles
   ================================= */
.form-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: inherit;
  font-size: var(--text-base);
  line-height: 1.5;
  color: var(--color-text);
  background: var(--color-background);
  transition: all 0.2s ease;
  box-sizing: border-box;
  min-height: 44px; /* Accessibility: minimum touch target */
}

.form-input::placeholder {
  color: var(--color-text-muted);
  opacity: 1;
}

.form-input:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
  background: var(--color-background);
}

.form-input:hover:not(:focus):not(:disabled) {
  border-color: var(--color-border-hover, var(--color-text-muted));
}

/* Text area specific styles */
.form-textarea {
  min-height: 120px;
  resize: vertical;
  font-family: inherit;
}

.form-textarea.form-textarea-large {
  min-height: 200px;
}

/* =================================
   Select Dropdown Styles
   ================================= */
.form-select {
  width: 100%;
  padding: 0.75rem 2.5rem 0.75rem 1rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: inherit;
  font-size: var(--text-base);
  line-height: 1.5;
  color: var(--color-text);
  background: var(--color-background) url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6,9 12,15 18,9"/></svg>') no-repeat right 0.75rem center;
  background-size: 1rem;
  appearance: none;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: 44px;
}

.form-select:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.form-select:hover:not(:focus):not(:disabled) {
  border-color: var(--color-border-hover, var(--color-text-muted));
}

/* =================================
   Checkbox & Radio Styles
   ================================= */
.form-checkbox,
.form-radio {
  appearance: none;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-background);
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.form-radio {
  border-radius: 50%;
}

.form-checkbox:checked,
.form-radio:checked {
  background: var(--color-accent);
  border-color: var(--color-accent);
}

.form-checkbox:checked::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  border: 2px solid white;
  border-top: 0;
  border-left: 0;
  transform: rotate(45deg);
}

.form-radio:checked::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  background: white;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.form-checkbox:focus,
.form-radio:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.form-checkbox:hover:not(:checked):not(:disabled),
.form-radio:hover:not(:checked):not(:disabled) {
  border-color: var(--color-accent);
}

/* Checkbox and radio groups */
.form-checkbox-group,
.form-radio-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.form-checkbox-group.form-checkbox-group-inline,
.form-radio-group.form-radio-group-inline {
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--space-lg);
}

/* =================================
   Input Groups & Add-ons
   ================================= */
.form-input-group {
  display: flex;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.form-input-addon {
  background: var(--color-surface-50);
  border: 2px solid var(--color-border);
  padding: 0.75rem 1rem;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  white-space: nowrap;
  display: flex;
  align-items: center;
  min-height: 44px;
}

.form-input-addon-start {
  border-right: none;
  border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.form-input-addon-end {
  border-left: none;
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.form-input-group .form-input {
  border-radius: 0;
  flex: 1;
}

.form-input-group .form-input:first-child {
  border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.form-input-group .form-input:last-child {
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.form-input-group .form-input:only-child {
  border-radius: var(--radius-md);
}

/* =================================
   Validation States
   ================================= */

/* Error state */
.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea {
  border-color: #ef4444;
  background: rgba(239, 68, 68, 0.05);
}

.form-group.has-error .form-input:focus,
.form-group.has-error .form-select:focus,
.form-group.has-error .form-textarea:focus {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.form-error {
  display: block;
  font-size: var(--text-xs);
  color: #ef4444;
  margin-top: var(--space-xs);
  line-height: 1.4;
}

.form-error::before {
  content: "⚠ ";
  font-weight: 700;
}

/* Success state */
.form-group.has-success .form-input,
.form-group.has-success .form-select,
.form-group.has-success .form-textarea {
  border-color: #10b981;
  background: rgba(16, 185, 129, 0.05);
}

.form-group.has-success .form-input:focus,
.form-group.has-success .form-select:focus,
.form-group.has-success .form-textarea:focus {
  border-color: #10b981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
}

.form-success {
  display: block;
  font-size: var(--text-xs);
  color: #10b981;
  margin-top: var(--space-xs);
  line-height: 1.4;
}

.form-success::before {
  content: "āœ“ ";
  font-weight: 700;
}

/* Warning state */
.form-group.has-warning .form-input,
.form-group.has-warning .form-select,
.form-group.has-warning .form-textarea {
  border-color: #f59e0b;
  background: rgba(245, 158, 11, 0.05);
}

.form-group.has-warning .form-input:focus,
.form-group.has-warning .form-select:focus,
.form-group.has-warning .form-textarea:focus {
  border-color: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1);
}

.form-warning {
  display: block;
  font-size: var(--text-xs);
  color: #f59e0b;
  margin-top: var(--space-xs);
  line-height: 1.4;
}

.form-warning::before {
  content: "⚔ ";
  font-weight: 700;
}

/* =================================
   Disabled State
   ================================= */
.form-input:disabled,
.form-select:disabled,
.form-textarea:disabled,
.form-checkbox:disabled,
.form-radio:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--color-surface-50);
  border-color: var(--color-border-light);
}

.form-input:disabled::placeholder {
  color: var(--color-text-muted);
  opacity: 0.6;
}

.form-label-inline:has(.form-checkbox:disabled),
.form-label-inline:has(.form-radio:disabled) {
  opacity: 0.6;
  cursor: not-allowed;
}

/* =================================
   Form Button Styles (Submit/Reset)
   ================================= */
.form-submit {
  position: relative;
  border-radius: var(--radius-lg);
  font-weight: 600;
  font-size: var(--text-base);
  transition: all 0.2s ease;
  border: none;
  cursor: pointer;
  text-decoration: none;
  overflow: hidden;
  min-height: 44px;
  padding: 0;
  
  background: linear-gradient(
    to right, 
    var(--color-accent) 20%, 
    var(--color-accent) 35%, 
    rgba(115, 125, 247, 1) 42%, 
    rgba(130, 140, 248, 1) 50%, 
    rgba(115, 125, 247, 1) 58%, 
    var(--color-accent) 65%, 
    var(--color-accent) 100%
  );
  background-size: 200% auto;
  animation: tagShine 6s linear infinite;
}

.form-submit .btn-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--space-xl);
  margin: 2px;
  background: var(--color-accent);
  border-radius: calc(var(--radius-lg) - 1px);
  color: white;
  width: 100%;
  height: 100%;
}

.form-submit .btn-inner .lucide {
  color: rgba(180, 220, 255, 0.9);
  width: 1em;
  height: 1em;
}

.form-submit:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-lg);
  color: white;
}

.form-submit:focus {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.form-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.form-reset {
  position: relative;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  font-weight: 500;
  font-size: var(--text-base);
  transition: all 0.2s ease;
  cursor: pointer;
  text-decoration: none;
  overflow: hidden;
  color: var(--color-text);
  background: var(--color-background);
  min-height: 44px;
  padding: 0;
}

.form-reset .btn-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--space-xl);
  margin: 2px;
  background: var(--color-background);
  border-radius: calc(var(--radius-lg) - 1px);
  color: var(--color-text);
  width: 100%;
  height: 100%;
}

.form-reset:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
  transform: translateY(-1px);
}

.form-reset:hover .btn-inner {
  color: var(--color-accent);
}

.form-reset:focus {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* =================================
   Loading States
   ================================= */
.form-loading {
  position: relative;
}

.form-loading::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: inherit;
}

.form-spinner {
  width: 1.5rem;
  height: 1.5rem;
  border: 3px solid var(--color-border-light);
  border-top: 3px solid var(--color-accent);
  border-radius: 50%;
  animation: form-spin 1s linear infinite;
}

@keyframes form-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* =================================
   Form Animations
   ================================= */
@keyframes tagShine {
  from {
    background-position: -200% center;
  }
  to {
    background-position: 200% center;
  }
}

.form-input,
.form-select,
.form-textarea {
  will-change: border-color, box-shadow;
}

.form-group.animate-in {
  animation: form-fade-in 0.3s ease-out;
}

@keyframes form-fade-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =================================
   Responsive Design
   ================================= */
@media (max-width: 768px) {
  .form-section {
    padding: var(--space-lg);
  }
  
  .form-row {
    flex-direction: column;
    gap: 0;
  }
  
  .form-row .form-group {
    margin-bottom: var(--space-lg);
  }
  
  .form-actions {
    flex-direction: column;
    align-items: stretch;
  }
  
  .form-checkbox-group.form-checkbox-group-inline,
  .form-radio-group.form-radio-group-inline {
    flex-direction: column;
    gap: var(--space-sm);
  }
}

@media (max-width: 480px) {
  .form-section {
    padding: var(--space-md);
    margin: var(--space-lg) 0;
  }
  
  .form-input,
  .form-select,
  .form-textarea {
    font-size: 16px; /* Prevent zoom on iOS */
  }
  
  .form-input-group {
    flex-direction: column;
  }
  
  .form-input-addon-start,
  .form-input-addon-end {
    border-radius: var(--radius-md);
    border: 2px solid var(--color-border);
  }
  
  .form-input-group .form-input {
    border-radius: var(--radius-md);
  }
}

/* =================================
   Accessibility Enhancements
   ================================= */
@media (prefers-reduced-motion: reduce) {
  .form-input,
  .form-select,
  .form-textarea,
  .form-checkbox,
  .form-radio,
  .form-submit,
  .form-reset {
    transition: none;
  }
  
  .form-submit:hover,
  .form-reset:hover {
    transform: none;
  }
  
  .form-spinner {
    animation: none;
  }
  
  .form-group.animate-in {
    animation: none;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .form-input,
  .form-select,
  .form-textarea,
  .form-checkbox,
  .form-radio {
    border-width: 3px;
  }
  
  .form-input:focus,
  .form-select:focus,
  .form-textarea:focus,
  .form-checkbox:focus,
  .form-radio:focus {
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.3);
  }
}

/* Dark mode considerations */
@media (prefers-color-scheme: dark) {
  .form-input,
  .form-select,
  .form-textarea {
    color-scheme: dark;
  }
  
  .form-select {
    background-image: url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2"><polyline points="6,9 12,15 18,9"/></svg>');
  }
}

/* =================================
   Utility Classes
   ================================= */
.form-required {
  color: #ef4444;
  font-weight: 700;
}

.form-optional {
  color: var(--color-text-muted);
  font-weight: 400;
  font-size: var(--text-xs);
}

.form-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.form-field-icon {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-muted);
  pointer-events: none;
  width: 1.25rem;
  height: 1.25rem;
}

.form-field-icon-start {
  left: 12px;
  right: auto;
}

.form-has-icon .form-input {
  padding-right: 3rem;
}

.form-has-icon-start .form-input {
  padding-left: 3rem;
  padding-right: 1rem;
}

test-output/src/styles/hero.css (6.6 KiB)

/* Hero Section Styles */

/* Neural Network Background */
.neural-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 1;
  opacity: 0.6;
  pointer-events: none;
}

/* Hero Container */
.hero-container {
  position: relative;
  min-height: 40vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  margin-bottom: 0;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

/* Hero Content */
.hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
  padding: var(--space-3xl) var(--space-xl);
  margin: 0 50px;
}

/* Hero Title Container with Logo */
.hero-title-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xl);
}

/* Hero Logo */
.hero-logo {
  height: 104px;
  width: auto;
  flex-shrink: 0;
  filter: 
    drop-shadow(0 0 2px rgba(255, 215, 0, 0.4)) 
    drop-shadow(0 0 9px rgba(255, 215, 0, 0.22)) 
    drop-shadow(0 0 18px rgba(255, 215, 0, 0.15))
    drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
    drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  animation: logoGlow 3s ease-in-out infinite alternate;
}

.hero-logo:hover {
  filter: 
    drop-shadow(0 0 6px rgba(255, 215, 0, 0.6)) 
    drop-shadow(0 0 24px rgba(255, 215, 0, 0.35)) 
    drop-shadow(0 0 48px rgba(255, 215, 0, 0.25))
    drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
    drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  animation: logoGlowHover 2s ease-in-out infinite alternate;
}

/* Hero Title - Sophisticated Focus-Grabbing Animation */
.hero-title {
  font-size: calc(var(--text-6xl) * 1.33);
  margin-bottom: var(--space-lg);
  line-height: var(--leading-tight);
  position: relative;
  
  /* Elegant monochrome gradient */
  background: linear-gradient(
    135deg,
    var(--color-text) 0%,
    #ffffff 25%,
    var(--color-text) 50%,
    #ffffff 75%,
    var(--color-text) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 300% 100%;
  animation: subtleGlowSweep 4s ease-in-out infinite;
  
  /* Enhanced typography for impact */
  font-weight: 700;
  letter-spacing: -0.02em;
}

/* Hero Content H1 (Fallback and Additional Styles) */
.hero-content h1 {
  font-size: calc(var(--text-6xl) * 1.2);
  margin-bottom: var(--space-lg);
  line-height: var(--leading-tight);
  font-weight: 700;
  
  /* Main title horizontal blur animation */
  transition: filter 0.9s ease, opacity 0.9s ease;
}

.hero-content h1.blurring-out {
  filter: blur(0px) blur(20px);
  opacity: 0;
}

.hero-content h1.blurring-in {
  filter: blur(20px);
  opacity: 0;
}

.hero-content h1.normal {
  filter: blur(0px);
  opacity: 1;
}

/* Hero Subtitle */
.hero-subtitle {
  font-size: calc(var(--text-xl) * 1.5);
  color: var(--color-text-light);
  margin-bottom: 0;
  font-weight: 400;
  line-height: 1.4;
}

/* Rotating Banners */
.rotating-banners {
  position: relative;
  height: 2.5rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Hero Divider with Pulsing Effect */
.hero-divider {
  border: none;
  height: 1px;
  background: rgba(255, 255, 255, 0.026);
  margin: 0 auto 80px auto;
  width: 100%;
  box-shadow: 0 0 2px rgba(255, 255, 255, 0.0525);
  position: relative;
  overflow: hidden;
}

.hero-divider::before {
  content: '';
  position: absolute;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to left,
    transparent 0%,
    rgba(255, 255, 255, 0.089) 50%,
    transparent 100%
  );
  animation: shimmerDivider 3s ease-in-out infinite;
}

/* Hero CTA Section */
.hero-cta {
  display: flex;
  margin: calc(var(--space-4xl) / 2) 0 var(--space-4xl) 0;
  align-items: center;
  justify-content: space-evenly;
}

/* Hero Section Spacing */
.hero {
  margin-bottom: calc(var(--space-2xl) * 1.5);
}

/* Keyframe Animations */
@keyframes logoGlow {
  0% {
    filter: 
      drop-shadow(0 0 4px rgba(255, 215, 0, 0.4)) 
      drop-shadow(0 0 17px rgba(255, 215, 0, 0.2)) 
      drop-shadow(0 0 20px rgba(255, 215, 0, 0.14))
      drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
      drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  }
  100% {
    filter: 
      drop-shadow(0 0 4px rgba(255, 215, 0, 0.4)) 
      drop-shadow(0 0 21px rgba(255, 215, 0, 0.28)) 
      drop-shadow(0 0 26px rgba(255, 215, 0, 0.20))
      drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
      drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  }
}

@keyframes logoGlowHover {
  0% {
    filter: 
      drop-shadow(0 0 6px rgba(255, 215, 0, 0.6)) 
      drop-shadow(0 0 22px rgba(255, 215, 0, 0.32)) 
      drop-shadow(0 0 44px rgba(255, 215, 0, 0.22))
      drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
      drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  }
  100% {
    filter: 
      drop-shadow(0 0 8px rgba(255, 215, 0, 0.7)) 
      drop-shadow(0 0 28px rgba(255, 215, 0, 0.4)) 
      drop-shadow(0 0 56px rgba(255, 215, 0, 0.3))
      drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.15))
      drop-shadow(-0.5px -0.5px 1px rgba(255, 255, 255, 0.08));
  }
}

@keyframes subtleGlowSweep {
  0%, 100% {
    background-position: -100% 0;
    filter: blur(0px) drop-shadow(0 0 0px rgba(102, 126, 234, 0));
  }
  50% {
    background-position: 100% 0;
    filter: blur(0px) drop-shadow(0 0 12px rgba(102, 126, 234, 0.6));
  }
}

@keyframes shimmerDivider {
  0% {
    right: -100%;
  }
  50% {
    right: 100%;
  }
  100% {
    right: -100%;
  }
}

@keyframes subtitleShimmer {
  0%, 100% { 
    background-position: -200% 0; 
  }
  50% { 
    background-position: 200% 0; 
  }
}

/* Responsive Design */
@media (max-width: 768px) {
  .hero-container {
    min-height: 35vh;
  }
  
  .hero-title-container {
    gap: var(--space-lg);
  }
  
  .hero-logo {
    height: 100px;
  }
  
  .hero-content h1 {
    font-size: var(--text-4xl);
  }
  
  .hero-subtitle {
    font-size: var(--text-lg);
  }
  
  .neural-background {
    opacity: 0.3;
  }
  
  .hero-cta {
    flex-direction: column;
    align-items: stretch;
  }
}

/* Accessibility - Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  .hero-title,
  .banner-text {
    animation: none !important;
  }
  
  .hero-logo {
    animation: none !important;
  }
  
  .hero-title {
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    background: linear-gradient(135deg, var(--color-text) 0%, var(--color-accent) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  
  .neural-background {
    display: none;
  }
  
  .hero-divider::before {
    animation: none;
  }
}

test-output/src/styles/utilities.css (31.0 KiB)

/* =================================
   UTILITY CLASSES
   Atomic CSS utility classes for consistent design patterns
   ================================= */

/* =================================
   SPACING UTILITIES
   ================================= */

/* Margin utilities */
.m-0 { margin: 0; }
.m-1 { margin: 0.25rem; }
.m-2 { margin: 0.5rem; }
.m-3 { margin: 0.75rem; }
.m-4 { margin: 1rem; }
.m-5 { margin: 1.25rem; }
.m-6 { margin: 1.5rem; }
.m-8 { margin: 2rem; }
.m-10 { margin: 2.5rem; }
.m-12 { margin: 3rem; }
.m-16 { margin: 4rem; }
.m-20 { margin: 5rem; }
.m-auto { margin: auto; }

/* Margin directional utilities */
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-12 { margin-top: 3rem; }
.mt-16 { margin-top: 4rem; }
.mt-20 { margin-top: 5rem; }
.mt-auto { margin-top: auto; }

.mr-0 { margin-right: 0; }
.mr-1 { margin-right: 0.25rem; }
.mr-2 { margin-right: 0.5rem; }
.mr-3 { margin-right: 0.75rem; }
.mr-4 { margin-right: 1rem; }
.mr-5 { margin-right: 1.25rem; }
.mr-6 { margin-right: 1.5rem; }
.mr-8 { margin-right: 2rem; }
.mr-10 { margin-right: 2.5rem; }
.mr-12 { margin-right: 3rem; }
.mr-16 { margin-right: 4rem; }
.mr-20 { margin-right: 5rem; }
.mr-auto { margin-right: auto; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mb-12 { margin-bottom: 3rem; }
.mb-16 { margin-bottom: 4rem; }
.mb-20 { margin-bottom: 5rem; }
.mb-auto { margin-bottom: auto; }

.ml-0 { margin-left: 0; }
.ml-1 { margin-left: 0.25rem; }
.ml-2 { margin-left: 0.5rem; }
.ml-3 { margin-left: 0.75rem; }
.ml-4 { margin-left: 1rem; }
.ml-5 { margin-left: 1.25rem; }
.ml-6 { margin-left: 1.5rem; }
.ml-8 { margin-left: 2rem; }
.ml-10 { margin-left: 2.5rem; }
.ml-12 { margin-left: 3rem; }
.ml-16 { margin-left: 4rem; }
.ml-20 { margin-left: 5rem; }
.ml-auto { margin-left: auto; }

/* Margin x/y axis utilities */
.mx-0 { margin-left: 0; margin-right: 0; }
.mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
.mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
.mx-3 { margin-left: 0.75rem; margin-right: 0.75rem; }
.mx-4 { margin-left: 1rem; margin-right: 1rem; }
.mx-5 { margin-left: 1.25rem; margin-right: 1.25rem; }
.mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; }
.mx-8 { margin-left: 2rem; margin-right: 2rem; }
.mx-10 { margin-left: 2.5rem; margin-right: 2.5rem; }
.mx-12 { margin-left: 3rem; margin-right: 3rem; }
.mx-16 { margin-left: 4rem; margin-right: 4rem; }
.mx-20 { margin-left: 5rem; margin-right: 5rem; }
.mx-auto { margin-left: auto; margin-right: auto; }

.my-0 { margin-top: 0; margin-bottom: 0; }
.my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
.my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; }
.my-3 { margin-top: 0.75rem; margin-bottom: 0.75rem; }
.my-4 { margin-top: 1rem; margin-bottom: 1rem; }
.my-5 { margin-top: 1.25rem; margin-bottom: 1.25rem; }
.my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; }
.my-8 { margin-top: 2rem; margin-bottom: 2rem; }
.my-10 { margin-top: 2.5rem; margin-bottom: 2.5rem; }
.my-12 { margin-top: 3rem; margin-bottom: 3rem; }
.my-16 { margin-top: 4rem; margin-bottom: 4rem; }
.my-20 { margin-top: 5rem; margin-bottom: 5rem; }
.my-auto { margin-top: auto; margin-bottom: auto; }

/* Padding utilities */
.p-0 { padding: 0; }
.p-1 { padding: 0.25rem; }
.p-2 { padding: 0.5rem; }
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.p-10 { padding: 2.5rem; }
.p-12 { padding: 3rem; }
.p-16 { padding: 4rem; }
.p-20 { padding: 5rem; }

/* Padding directional utilities */
.pt-0 { padding-top: 0; }
.pt-1 { padding-top: 0.25rem; }
.pt-2 { padding-top: 0.5rem; }
.pt-3 { padding-top: 0.75rem; }
.pt-4 { padding-top: 1rem; }
.pt-5 { padding-top: 1.25rem; }
.pt-6 { padding-top: 1.5rem; }
.pt-8 { padding-top: 2rem; }
.pt-10 { padding-top: 2.5rem; }
.pt-12 { padding-top: 3rem; }
.pt-16 { padding-top: 4rem; }
.pt-20 { padding-top: 5rem; }

.pr-0 { padding-right: 0; }
.pr-1 { padding-right: 0.25rem; }
.pr-2 { padding-right: 0.5rem; }
.pr-3 { padding-right: 0.75rem; }
.pr-4 { padding-right: 1rem; }
.pr-5 { padding-right: 1.25rem; }
.pr-6 { padding-right: 1.5rem; }
.pr-8 { padding-right: 2rem; }
.pr-10 { padding-right: 2.5rem; }
.pr-12 { padding-right: 3rem; }
.pr-16 { padding-right: 4rem; }
.pr-20 { padding-right: 5rem; }

.pb-0 { padding-bottom: 0; }
.pb-1 { padding-bottom: 0.25rem; }
.pb-2 { padding-bottom: 0.5rem; }
.pb-3 { padding-bottom: 0.75rem; }
.pb-4 { padding-bottom: 1rem; }
.pb-5 { padding-bottom: 1.25rem; }
.pb-6 { padding-bottom: 1.5rem; }
.pb-8 { padding-bottom: 2rem; }
.pb-10 { padding-bottom: 2.5rem; }
.pb-12 { padding-bottom: 3rem; }
.pb-16 { padding-bottom: 4rem; }
.pb-20 { padding-bottom: 5rem; }

.pl-0 { padding-left: 0; }
.pl-1 { padding-left: 0.25rem; }
.pl-2 { padding-left: 0.5rem; }
.pl-3 { padding-left: 0.75rem; }
.pl-4 { padding-left: 1rem; }
.pl-5 { padding-left: 1.25rem; }
.pl-6 { padding-left: 1.5rem; }
.pl-8 { padding-left: 2rem; }
.pl-10 { padding-left: 2.5rem; }
.pl-12 { padding-left: 3rem; }
.pl-16 { padding-left: 4rem; }
.pl-20 { padding-left: 5rem; }

/* Padding x/y axis utilities */
.px-0 { padding-left: 0; padding-right: 0; }
.px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
.px-12 { padding-left: 3rem; padding-right: 3rem; }
.px-16 { padding-left: 4rem; padding-right: 4rem; }
.px-20 { padding-left: 5rem; padding-right: 5rem; }

.py-0 { padding-top: 0; padding-bottom: 0; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }

/* =================================
   TYPOGRAPHY UTILITIES
   ================================= */

/* Font sizes */
.text-xs { font-size: 0.75rem; line-height: 1rem; } /* 12px */
.text-sm { font-size: 0.875rem; line-height: 1.25rem; } /* 14px */
.text-base { font-size: 1rem; line-height: 1.5rem; } /* 16px */
.text-lg { font-size: 1.125rem; line-height: 1.75rem; } /* 18px */
.text-xl { font-size: 1.25rem; line-height: 1.75rem; } /* 20px */
.text-2xl { font-size: 1.5rem; line-height: 2rem; } /* 24px */
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; } /* 30px */
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; } /* 36px */
.text-5xl { font-size: 3rem; line-height: 1; } /* 48px */
.text-6xl { font-size: 3.75rem; line-height: 1; } /* 60px */

/* Font weights */
.font-thin { font-weight: 100; }
.font-extralight { font-weight: 200; }
.font-light { font-weight: 300; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.font-black { font-weight: 900; }

/* Font families */
.font-system { font-family: system-ui, sans-serif; }
.font-heading { font-family: BenchNine, system-ui, sans-serif; }
.font-mono { font-family: ui-monospace, SFMono-Regular, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
.font-serif { font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; }

/* Line heights */
.leading-none { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-snug { line-height: 1.375; }
.leading-normal { line-height: 1.5; }
.leading-relaxed { line-height: 1.625; }
.leading-loose { line-height: 2; }

/* Text alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* Text transform */
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.capitalize { text-transform: capitalize; }
.normal-case { text-transform: none; }

/* Text decoration */
.underline { text-decoration: underline; }
.line-through { text-decoration: line-through; }
.no-underline { text-decoration: none; }

/* Text overflow */
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-ellipsis { text-overflow: ellipsis; }
.text-clip { text-overflow: clip; }

/* White space */
.whitespace-normal { white-space: normal; }
.whitespace-nowrap { white-space: nowrap; }
.whitespace-pre { white-space: pre; }
.whitespace-pre-line { white-space: pre-line; }
.whitespace-pre-wrap { white-space: pre-wrap; }

/* =================================
   COLOR UTILITIES
   ================================= */

/* Text colors using design tokens */
.text-inherit { color: inherit; }
.text-current { color: currentColor; }
.text-transparent { color: transparent; }
.text-default { color: var(--color); }
.text-link { color: var(--link-color); }
.text-muted { color: #666; }
.text-white { color: #fff; }
.text-black { color: #000; }

/* Dark mode text colors */
@media (prefers-color-scheme: dark) {
  .text-muted { color: #ccc; }
}

/* Background colors using design tokens */
.bg-transparent { background-color: transparent; }
.bg-current { background-color: currentColor; }
.bg-default { background-color: var(--background-color); }
.bg-white { background-color: #fff; }
.bg-black { background-color: #000; }
.bg-gray-50 { background-color: #f9fafb; }
.bg-gray-100 { background-color: #f3f4f6; }
.bg-gray-200 { background-color: #e5e7eb; }
.bg-gray-300 { background-color: #d1d5db; }
.bg-gray-400 { background-color: #9ca3af; }
.bg-gray-500 { background-color: #6b7280; }
.bg-gray-600 { background-color: #4b5563; }
.bg-gray-700 { background-color: #374151; }
.bg-gray-800 { background-color: #1f2937; }
.bg-gray-900 { background-color: #111827; }

/* Border colors using design tokens */
.border-transparent { border-color: transparent; }
.border-current { border-color: currentColor; }
.border-default { border-color: var(--border-color); }
.border-white { border-color: #fff; }
.border-black { border-color: #000; }
.border-gray-200 { border-color: #e5e7eb; }
.border-gray-300 { border-color: #d1d5db; }
.border-gray-400 { border-color: #9ca3af; }

/* =================================
   LAYOUT UTILITIES
   ================================= */

/* Display */
.block { display: block; }
.inline-block { display: inline-block; }
.inline { display: inline; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.table { display: table; }
.inline-table { display: inline-table; }
.table-caption { display: table-caption; }
.table-cell { display: table-cell; }
.table-column { display: table-column; }
.table-column-group { display: table-column-group; }
.table-footer-group { display: table-footer-group; }
.table-header-group { display: table-header-group; }
.table-row-group { display: table-row-group; }
.table-row { display: table-row; }
.flow-root { display: flow-root; }
.grid { display: grid; }
.inline-grid { display: inline-grid; }
.contents { display: contents; }
.list-item { display: list-item; }
.hidden { display: none; }

/* Flexbox utilities */
.flex-row { flex-direction: row; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-col { flex-direction: column; }
.flex-col-reverse { flex-direction: column-reverse; }

.flex-wrap { flex-wrap: wrap; }
.flex-wrap-reverse { flex-wrap: wrap-reverse; }
.flex-nowrap { flex-wrap: nowrap; }

.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.items-center { align-items: center; }
.items-baseline { align-items: baseline; }
.items-stretch { align-items: stretch; }

.justify-start { justify-content: flex-start; }
.justify-end { justify-content: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }
.justify-evenly { justify-content: space-evenly; }

.content-center { align-content: center; }
.content-start { align-content: flex-start; }
.content-end { align-content: flex-end; }
.content-between { align-content: space-between; }
.content-around { align-content: space-around; }
.content-evenly { align-content: space-evenly; }

.self-auto { align-self: auto; }
.self-start { align-self: flex-start; }
.self-end { align-self: flex-end; }
.self-center { align-self: center; }
.self-stretch { align-self: stretch; }
.self-baseline { align-self: baseline; }

.flex-1 { flex: 1 1 0%; }
.flex-auto { flex: 1 1 auto; }
.flex-initial { flex: 0 1 auto; }
.flex-none { flex: none; }

.flex-shrink-0 { flex-shrink: 0; }
.flex-shrink { flex-shrink: 1; }

.flex-grow-0 { flex-grow: 0; }
.flex-grow { flex-grow: 1; }

/* Grid utilities */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }

.col-auto { grid-column: auto; }
.col-span-1 { grid-column: span 1 / span 1; }
.col-span-2 { grid-column: span 2 / span 2; }
.col-span-3 { grid-column: span 3 / span 3; }
.col-span-4 { grid-column: span 4 / span 4; }
.col-span-5 { grid-column: span 5 / span 5; }
.col-span-6 { grid-column: span 6 / span 6; }
.col-span-full { grid-column: 1 / -1; }

.grid-rows-1 { grid-template-rows: repeat(1, minmax(0, 1fr)); }
.grid-rows-2 { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.grid-rows-3 { grid-template-rows: repeat(3, minmax(0, 1fr)); }
.grid-rows-4 { grid-template-rows: repeat(4, minmax(0, 1fr)); }
.grid-rows-5 { grid-template-rows: repeat(5, minmax(0, 1fr)); }
.grid-rows-6 { grid-template-rows: repeat(6, minmax(0, 1fr)); }

.row-auto { grid-row: auto; }
.row-span-1 { grid-row: span 1 / span 1; }
.row-span-2 { grid-row: span 2 / span 2; }
.row-span-3 { grid-row: span 3 / span 3; }
.row-span-4 { grid-row: span 4 / span 4; }
.row-span-5 { grid-row: span 5 / span 5; }
.row-span-6 { grid-row: span 6 / span 6; }
.row-span-full { grid-row: 1 / -1; }

.gap-0 { gap: 0; }
.gap-1 { gap: 0.25rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.gap-10 { gap: 2.5rem; }
.gap-12 { gap: 3rem; }
.gap-16 { gap: 4rem; }
.gap-20 { gap: 5rem; }

.gap-x-0 { column-gap: 0; }
.gap-x-1 { column-gap: 0.25rem; }
.gap-x-2 { column-gap: 0.5rem; }
.gap-x-3 { column-gap: 0.75rem; }
.gap-x-4 { column-gap: 1rem; }
.gap-x-5 { column-gap: 1.25rem; }
.gap-x-6 { column-gap: 1.5rem; }
.gap-x-8 { column-gap: 2rem; }
.gap-x-10 { column-gap: 2.5rem; }
.gap-x-12 { column-gap: 3rem; }
.gap-x-16 { column-gap: 4rem; }
.gap-x-20 { column-gap: 5rem; }

.gap-y-0 { row-gap: 0; }
.gap-y-1 { row-gap: 0.25rem; }
.gap-y-2 { row-gap: 0.5rem; }
.gap-y-3 { row-gap: 0.75rem; }
.gap-y-4 { row-gap: 1rem; }
.gap-y-5 { row-gap: 1.25rem; }
.gap-y-6 { row-gap: 1.5rem; }
.gap-y-8 { row-gap: 2rem; }
.gap-y-10 { row-gap: 2.5rem; }
.gap-y-12 { row-gap: 3rem; }
.gap-y-16 { row-gap: 4rem; }
.gap-y-20 { row-gap: 5rem; }

/* Positioning */
.static { position: static; }
.fixed { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.sticky { position: sticky; }

.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.inset-auto { top: auto; right: auto; bottom: auto; left: auto; }

.top-0 { top: 0; }
.top-auto { top: auto; }
.right-0 { right: 0; }
.right-auto { right: auto; }
.bottom-0 { bottom: 0; }
.bottom-auto { bottom: auto; }
.left-0 { left: 0; }
.left-auto { left: auto; }

/* Z-index */
.z-0 { z-index: 0; }
.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-30 { z-index: 30; }
.z-40 { z-index: 40; }
.z-50 { z-index: 50; }
.z-auto { z-index: auto; }

/* =================================
   VISUAL UTILITIES
   ================================= */

/* Borders */
.border { border-width: 1px; }
.border-0 { border-width: 0; }
.border-2 { border-width: 2px; }
.border-4 { border-width: 4px; }
.border-8 { border-width: 8px; }

.border-t { border-top-width: 1px; }
.border-t-0 { border-top-width: 0; }
.border-t-2 { border-top-width: 2px; }
.border-t-4 { border-top-width: 4px; }

.border-r { border-right-width: 1px; }
.border-r-0 { border-right-width: 0; }
.border-r-2 { border-right-width: 2px; }
.border-r-4 { border-right-width: 4px; }

.border-b { border-bottom-width: 1px; }
.border-b-0 { border-bottom-width: 0; }
.border-b-2 { border-bottom-width: 2px; }
.border-b-4 { border-bottom-width: 4px; }

.border-l { border-left-width: 1px; }
.border-l-0 { border-left-width: 0; }
.border-l-2 { border-left-width: 2px; }
.border-l-4 { border-left-width: 4px; }

.border-solid { border-style: solid; }
.border-dashed { border-style: dashed; }
.border-dotted { border-style: dotted; }
.border-double { border-style: double; }
.border-none { border-style: none; }

/* Border radius */
.rounded-none { border-radius: 0; }
.rounded-sm { border-radius: 0.125rem; }
.rounded { border-radius: 0.25rem; }
.rounded-md { border-radius: 0.375rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-3xl { border-radius: 1.5rem; }
.rounded-full { border-radius: 9999px; }

.rounded-t-none { border-top-left-radius: 0; border-top-right-radius: 0; }
.rounded-t-sm { border-top-left-radius: 0.125rem; border-top-right-radius: 0.125rem; }
.rounded-t { border-top-left-radius: 0.25rem; border-top-right-radius: 0.25rem; }
.rounded-t-md { border-top-left-radius: 0.375rem; border-top-right-radius: 0.375rem; }
.rounded-t-lg { border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; }
.rounded-t-xl { border-top-left-radius: 0.75rem; border-top-right-radius: 0.75rem; }
.rounded-t-2xl { border-top-left-radius: 1rem; border-top-right-radius: 1rem; }
.rounded-t-3xl { border-top-left-radius: 1.5rem; border-top-right-radius: 1.5rem; }
.rounded-t-full { border-top-left-radius: 9999px; border-top-right-radius: 9999px; }

.rounded-r-none { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.rounded-r-sm { border-top-right-radius: 0.125rem; border-bottom-right-radius: 0.125rem; }
.rounded-r { border-top-right-radius: 0.25rem; border-bottom-right-radius: 0.25rem; }
.rounded-r-md { border-top-right-radius: 0.375rem; border-bottom-right-radius: 0.375rem; }
.rounded-r-lg { border-top-right-radius: 0.5rem; border-bottom-right-radius: 0.5rem; }
.rounded-r-xl { border-top-right-radius: 0.75rem; border-bottom-right-radius: 0.75rem; }
.rounded-r-2xl { border-top-right-radius: 1rem; border-bottom-right-radius: 1rem; }
.rounded-r-3xl { border-top-right-radius: 1.5rem; border-bottom-right-radius: 1.5rem; }
.rounded-r-full { border-top-right-radius: 9999px; border-bottom-right-radius: 9999px; }

.rounded-b-none { border-bottom-right-radius: 0; border-bottom-left-radius: 0; }
.rounded-b-sm { border-bottom-right-radius: 0.125rem; border-bottom-left-radius: 0.125rem; }
.rounded-b { border-bottom-right-radius: 0.25rem; border-bottom-left-radius: 0.25rem; }
.rounded-b-md { border-bottom-right-radius: 0.375rem; border-bottom-left-radius: 0.375rem; }
.rounded-b-lg { border-bottom-right-radius: 0.5rem; border-bottom-left-radius: 0.5rem; }
.rounded-b-xl { border-bottom-right-radius: 0.75rem; border-bottom-left-radius: 0.75rem; }
.rounded-b-2xl { border-bottom-right-radius: 1rem; border-bottom-left-radius: 1rem; }
.rounded-b-3xl { border-bottom-right-radius: 1.5rem; border-bottom-left-radius: 1.5rem; }
.rounded-b-full { border-bottom-right-radius: 9999px; border-bottom-left-radius: 9999px; }

.rounded-l-none { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.rounded-l-sm { border-top-left-radius: 0.125rem; border-bottom-left-radius: 0.125rem; }
.rounded-l { border-top-left-radius: 0.25rem; border-bottom-left-radius: 0.25rem; }
.rounded-l-md { border-top-left-radius: 0.375rem; border-bottom-left-radius: 0.375rem; }
.rounded-l-lg { border-top-left-radius: 0.5rem; border-bottom-left-radius: 0.5rem; }
.rounded-l-xl { border-top-left-radius: 0.75rem; border-bottom-left-radius: 0.75rem; }
.rounded-l-2xl { border-top-left-radius: 1rem; border-bottom-left-radius: 1rem; }
.rounded-l-3xl { border-top-left-radius: 1.5rem; border-bottom-left-radius: 1.5rem; }
.rounded-l-full { border-top-left-radius: 9999px; border-bottom-left-radius: 9999px; }

/* Box shadow */
.shadow-none { box-shadow: none; }
.shadow-sm { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); }
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.shadow-inner { box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); }
.shadow-default { box-shadow: 0 0 0 1px var(--shadow-color); }

/* Opacity */
.opacity-0 { opacity: 0; }
.opacity-5 { opacity: 0.05; }
.opacity-10 { opacity: 0.1; }
.opacity-20 { opacity: 0.2; }
.opacity-25 { opacity: 0.25; }
.opacity-30 { opacity: 0.3; }
.opacity-40 { opacity: 0.4; }
.opacity-50 { opacity: 0.5; }
.opacity-60 { opacity: 0.6; }
.opacity-70 { opacity: 0.7; }
.opacity-75 { opacity: 0.75; }
.opacity-80 { opacity: 0.8; }
.opacity-90 { opacity: 0.9; }
.opacity-95 { opacity: 0.95; }
.opacity-100 { opacity: 1; }

/* Transitions */
.transition-none { transition-property: none; }
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition { transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-colors { transition-property: background-color, border-color, color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-shadow { transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }

.duration-75 { transition-duration: 75ms; }
.duration-100 { transition-duration: 100ms; }
.duration-150 { transition-duration: 150ms; }
.duration-200 { transition-duration: 200ms; }
.duration-300 { transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }
.duration-700 { transition-duration: 700ms; }
.duration-1000 { transition-duration: 1000ms; }

.ease-linear { transition-timing-function: linear; }
.ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }
.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }
.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

/* =================================
   RESPONSIVE UTILITIES
   ================================= */

/* Visibility controls */
.visible { visibility: visible; }
.invisible { visibility: hidden; }

/* Screen reader only - enhanced version */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Show for screen readers only on focus */
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  padding: inherit;
  margin: inherit;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

/* Responsive visibility utilities */
@media (max-width: 640px) {
  .sm-hidden { display: none; }
  .sm-block { display: block; }
  .sm-inline { display: inline; }
  .sm-inline-block { display: inline-block; }
  .sm-flex { display: flex; }
  .sm-inline-flex { display: inline-flex; }
  .sm-grid { display: grid; }
  .sm-inline-grid { display: inline-grid; }
}

@media (min-width: 641px) and (max-width: 768px) {
  .md-hidden { display: none; }
  .md-block { display: block; }
  .md-inline { display: inline; }
  .md-inline-block { display: inline-block; }
  .md-flex { display: flex; }
  .md-inline-flex { display: inline-flex; }
  .md-grid { display: grid; }
  .md-inline-grid { display: inline-grid; }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .lg-hidden { display: none; }
  .lg-block { display: block; }
  .lg-inline { display: inline; }
  .lg-inline-block { display: inline-block; }
  .lg-flex { display: flex; }
  .lg-inline-flex { display: inline-flex; }
  .lg-grid { display: grid; }
  .lg-inline-grid { display: inline-grid; }
}

@media (min-width: 1025px) {
  .xl-hidden { display: none; }
  .xl-block { display: block; }
  .xl-inline { display: inline; }
  .xl-inline-block { display: inline-block; }
  .xl-flex { display: flex; }
  .xl-inline-flex { display: inline-flex; }
  .xl-grid { display: grid; }
  .xl-inline-grid { display: inline-grid; }
}

/* =================================
   ACCESSIBILITY UTILITIES
   ================================= */

/* Focus indicators */
.focus-visible:focus-visible {
  outline: 2px solid var(--focus-color, #007bff);
  outline-offset: 2px;
}

.focus-within:focus-within {
  outline: 2px solid var(--focus-color, #007bff);
  outline-offset: 2px;
}

/* Skip links */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: var(--background-color);
  color: var(--color);
  padding: 8px;
  text-decoration: none;
  border-radius: 4px;
  z-index: 1000;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.skip-link:focus {
  top: 6px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .border-default {
    border-color: CanvasText;
  }
  
  .text-muted {
    color: CanvasText;
  }
  
  .bg-gray-100,
  .bg-gray-200,
  .bg-gray-300 {
    background-color: Canvas;
    border: 1px solid CanvasText;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .transition-all,
  .transition,
  .transition-colors,
  .transition-opacity,
  .transition-shadow,
  .transition-transform {
    transition-duration: 0.01ms !important;
  }
  
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* =================================
   LAYOUT HELPERS
   ================================= */

/* Container utilities */
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 640px) {
  .container { max-width: 640px; }
}

@media (min-width: 768px) {
  .container { max-width: 768px; }
}

@media (min-width: 1024px) {
  .container { max-width: 1024px; }
}

@media (min-width: 1280px) {
  .container { max-width: 1280px; }
}

/* Max width utilities using design tokens */
.max-w-layout { max-width: var(--layout-max); }
.max-w-none { max-width: none; }
.max-w-xs { max-width: 20rem; }
.max-w-sm { max-width: 24rem; }
.max-w-md { max-width: 28rem; }
.max-w-lg { max-width: 32rem; }
.max-w-xl { max-width: 36rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-6xl { max-width: 72rem; }
.max-w-7xl { max-width: 80rem; }
.max-w-full { max-width: 100%; }

/* Width utilities */
.w-auto { width: auto; }
.w-full { width: 100%; }
.w-screen { width: 100vw; }
.w-fit { width: fit-content; }
.w-min { width: min-content; }
.w-max { width: max-content; }

.w-0 { width: 0; }
.w-1 { width: 0.25rem; }
.w-2 { width: 0.5rem; }
.w-3 { width: 0.75rem; }
.w-4 { width: 1rem; }
.w-5 { width: 1.25rem; }
.w-6 { width: 1.5rem; }
.w-8 { width: 2rem; }
.w-10 { width: 2.5rem; }
.w-12 { width: 3rem; }
.w-16 { width: 4rem; }
.w-20 { width: 5rem; }
.w-24 { width: 6rem; }
.w-32 { width: 8rem; }
.w-40 { width: 10rem; }
.w-48 { width: 12rem; }
.w-56 { width: 14rem; }
.w-64 { width: 16rem; }
.w-72 { width: 18rem; }
.w-80 { width: 20rem; }
.w-96 { width: 24rem; }

.w-1\/2 { width: 50%; }
.w-1\/3 { width: 33.333333%; }
.w-2\/3 { width: 66.666667%; }
.w-1\/4 { width: 25%; }
.w-2\/4 { width: 50%; }
.w-3\/4 { width: 75%; }
.w-1\/5 { width: 20%; }
.w-2\/5 { width: 40%; }
.w-3\/5 { width: 60%; }
.w-4\/5 { width: 80%; }

/* Height utilities */
.h-auto { height: auto; }
.h-full { height: 100%; }
.h-screen { height: 100vh; }
.h-fit { height: fit-content; }
.h-min { height: min-content; }
.h-max { height: max-content; }

.h-0 { height: 0; }
.h-1 { height: 0.25rem; }
.h-2 { height: 0.5rem; }
.h-3 { height: 0.75rem; }
.h-4 { height: 1rem; }
.h-5 { height: 1.25rem; }
.h-6 { height: 1.5rem; }
.h-8 { height: 2rem; }
.h-10 { height: 2.5rem; }
.h-12 { height: 3rem; }
.h-16 { height: 4rem; }
.h-20 { height: 5rem; }
.h-24 { height: 6rem; }
.h-32 { height: 8rem; }
.h-40 { height: 10rem; }
.h-48 { height: 12rem; }
.h-56 { height: 14rem; }
.h-64 { height: 16rem; }
.h-72 { height: 18rem; }
.h-80 { height: 20rem; }
.h-96 { height: 24rem; }

/* Overflow utilities */
.overflow-auto { overflow: auto; }
.overflow-hidden { overflow: hidden; }
.overflow-visible { overflow: visible; }
.overflow-scroll { overflow: scroll; }

.overflow-x-auto { overflow-x: auto; }
.overflow-x-hidden { overflow-x: hidden; }
.overflow-x-visible { overflow-x: visible; }
.overflow-x-scroll { overflow-x: scroll; }

.overflow-y-auto { overflow-y: auto; }
.overflow-y-hidden { overflow-y: hidden; }
.overflow-y-visible { overflow-y: visible; }
.overflow-y-scroll { overflow-y: scroll; }

/* =================================
   INTERACTION UTILITIES
   ================================= */

/* Cursor utilities */
.cursor-auto { cursor: auto; }
.cursor-default { cursor: default; }
.cursor-pointer { cursor: pointer; }
.cursor-wait { cursor: wait; }
.cursor-text { cursor: text; }
.cursor-move { cursor: move; }
.cursor-help { cursor: help; }
.cursor-not-allowed { cursor: not-allowed; }

/* User select utilities */
.select-none { user-select: none; }
.select-text { user-select: text; }
.select-all { user-select: all; }
.select-auto { user-select: auto; }

/* Pointer events utilities */
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }

/* Resize utilities */
.resize-none { resize: none; }
.resize-both { resize: both; }
.resize-x { resize: horizontal; }
.resize-y { resize: vertical; }

tests/fetch-community-data.test.js (2.3 KiB)

import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import { execSync } from 'child_process';
import { existsSync, rmSync } from 'fs';
import { join } from 'path';

// Mock the dependencies
vi.mock('child_process');
vi.mock('fs');
vi.mock('path');

describe('Fetch Community Data Script', () => {
  beforeEach(() => {
    // Reset all mocks before each test
    vi.clearAllMocks();
    
    // Mock console methods
    vi.spyOn(console, 'log').mockImplementation(() => {});
    vi.spyOn(console, 'error').mockImplementation(() => {});
    
    // Mock process.exit
    vi.spyOn(process, 'exit').mockImplementation(() => {});
  });

  afterEach(() => {
    vi.restoreAllMocks();
  });

  it('should remove existing directory if it exists', async () => {
    // Mock that directory exists
    existsSync.mockReturnValue(true);
    execSync.mockReturnValue();
    join.mockImplementation((...args) => args.join('/'));

    // Import and run the script logic (we'll need to refactor the script to be testable)
    // For now, let's test the logic conceptually
    const directoryExists = true;
    
    if (directoryExists) {
      // This would call rmSync in the actual script
      expect(true).toBe(true); // Placeholder for actual rmSync call
    }
  });

  it('should handle successful data download', () => {
    existsSync.mockReturnValue(false);
    execSync.mockReturnValue();
    join.mockImplementation((...args) => args.join('/'));

    // Test that execSync would be called with correct command
    const expectedCommand = 'npx degit github:11ty/11ty-community/built-with-eleventy src/_data/builtwith/';
    
    // This is a conceptual test - in a real scenario we'd refactor the script
    // to be more testable by extracting the main logic into a function
    expect(expectedCommand).toContain('degit');
    expect(expectedCommand).toContain('11ty/11ty-community');
  });

  it('should handle errors gracefully', () => {
    existsSync.mockReturnValue(false);
    execSync.mockImplementation(() => {
      throw new Error('Command failed');
    });
    join.mockImplementation((...args) => args.join('/'));

    // Test error handling logic
    try {
      throw new Error('Command failed');
    } catch (error) {
      expect(error.message).toBe('Command failed');
    }
  });
});

tests/filters.test.js (3.3 KiB)

import { describe, it, expect } from 'vitest';
import customFilters from '../src/_eleventy/filters.js';

describe('Custom Eleventy Filters', () => {
  describe('readableDate filter', () => {
    it('should format a valid date object correctly', () => {
      const date = new Date('2024-01-15T12:00:00Z');
      const result = customFilters.readableDate(date);
      // Note: toLocaleDateString() output can vary by locale, so we test format
      expect(result).toMatch(/\d{1,2}\/\d{1,2}\/\d{4}/);
    });

    it('should format a valid date string correctly', () => {
      const dateString = '2024-01-15';
      const result = customFilters.readableDate(dateString);
      expect(result).toMatch(/\d{1,2}\/\d{1,2}\/\d{4}/);
    });

    it('should return empty string for null input', () => {
      expect(customFilters.readableDate(null)).toBe('');
    });

    it('should return empty string for undefined input', () => {
      expect(customFilters.readableDate(undefined)).toBe('');
    });

    it('should return empty string for invalid date', () => {
      expect(customFilters.readableDate('invalid-date')).toBe('');
    });

    it('should return empty string for empty string', () => {
      expect(customFilters.readableDate('')).toBe('');
    });
  });

  describe('htmlDateString filter', () => {
    it('should format a valid date object to YYYY-MM-DD', () => {
      const date = new Date('2024-01-15T12:00:00Z');
      const result = customFilters.htmlDateString(date);
      expect(result).toBe('2024-01-15');
    });

    it('should format a valid date string to YYYY-MM-DD', () => {
      const dateString = '2024-01-15T12:00:00Z';
      const result = customFilters.htmlDateString(dateString);
      expect(result).toBe('2024-01-15');
    });

    it('should return empty string for null input', () => {
      expect(customFilters.htmlDateString(null)).toBe('');
    });

    it('should return empty string for undefined input', () => {
      expect(customFilters.htmlDateString(undefined)).toBe('');
    });

    it('should return empty string for invalid date', () => {
      expect(customFilters.htmlDateString('invalid-date')).toBe('');
    });

    it('should return empty string for empty string', () => {
      expect(customFilters.htmlDateString('')).toBe('');
    });
  });

  describe('head filter', () => {
    const testArray = [1, 2, 3, 4, 5];

    it('should return first n elements when n is positive', () => {
      expect(customFilters.head(testArray, 3)).toEqual([1, 2, 3]);
      expect(customFilters.head(testArray, 1)).toEqual([1]);
      expect(customFilters.head(testArray, 0)).toEqual([]);
    });

    it('should return last n elements when n is negative', () => {
      expect(customFilters.head(testArray, -2)).toEqual([4, 5]);
      expect(customFilters.head(testArray, -1)).toEqual([5]);
    });

    it('should return entire array when n is larger than array length', () => {
      expect(customFilters.head(testArray, 10)).toEqual(testArray);
    });

    it('should work with empty array', () => {
      expect(customFilters.head([], 3)).toEqual([]);
      expect(customFilters.head([], -1)).toEqual([]);
    });

    it('should work with string arrays', () => {
      const stringArray = ['a', 'b', 'c', 'd'];
      expect(customFilters.head(stringArray, 2)).toEqual(['a', 'b']);
      expect(customFilters.head(stringArray, -1)).toEqual(['d']);
    });
  });
});

vercel.json (2.4 KiB)

{
	"trailingSlash": true,
  "redirects": [
    { "source": "/mastodon", "destination": "https://neighborhood.11ty.dev/@11ty", "statusCode": 301 },
    { "source": "/youtube", "destination": "https://www.youtube.com/c/EleventyVideo", "statusCode": 301 },
    { "source": "/twitter", "destination": "https://twitter.com/eleven_ty", "statusCode": 301 },
    { "source": "/follow/", "destination": "/firehose/firehose.rss", "statusCode": 301 },
    { "source": "/follow/follow.rss", "destination": "/firehose/firehose.rss", "statusCode": 301 },
    { "source": "/docs/getting-started/", "destination": "/docs/", "statusCode": 301 },
    { "source": "/docs/get-started/", "destination": "/docs/", "statusCode": 301 },
    { "source": "/activity/", "destination": "/firehose/", "statusCode": 301 },
    { "source": "/docs/sites/", "destination": "/speedlify/", "statusCode": 301 },
    { "source": "/docs/performance-leaderboard/", "destination": "/speedlify/", "statusCode": 301 },
    { "source": "/docs/accessibility-leaderboard/", "destination": "/speedlify/", "statusCode": 301 },
    { "source": "/leaderboard/(.*)", "destination": "/speedlify/", "statusCode": 301 },
    { "source": "/news/:path*", "destination": "/blog/:path*", "statusCode": 301 },
    { "source": "/docs/how-to-support/", "destination": "/docs/community/", "statusCode": 301 },
    { "source": "/docs/plugins/cache/", "destination": "/docs/plugins/fetch/", "statusCode": 301 },
    { "source": "/docs/plugins/partial-hydration/", "destination": "/docs/plugins/is-land/", "statusCode": 301 },
    { "source": "/docs/templates/", "destination": "/docs/projects/", "statusCode": 301 },
    { "source": "/docs/plugins/official/", "destination": "/docs/plugins/", "statusCode": 301 },
    { "source": "/docs/memoize/", "destination": "/docs/filters/#memoize-filters", "statusCode": 301 }
  ],
	"rewrites": [
    {
      "source": "/speedlify/(.*)",
      "destination": "https://built-with-11ty-speedlify.vercel.app/speedlify/$1"
    }
  ],
	"headers": [
		{
      "source": "/api/(.*)",
      "headers": [
        {
          "key": "Access-Control-Allow-Origin",
          "value": "*"
        }
      ]
    },
		{
      "source": "/blog/feed.xml",
      "headers": [
        {
          "key": "X-Content-Type-Options",
          "value": "nosniff"
        },
        {
          "key": "Content-Type",
          "value": "application/xml; charset=utf-8"
        }
      ]
    }
	]
}

verify-cloudflare-setup.cjs (6.4 KiB)

#!/usr/bin/env node

/**
 * Cloudflare Setup Verification Script
 * Checks if domain is properly configured before email setup
 */

const https = require('https');

class CloudflareVerifier {
    constructor() {
        this.apiToken = process.env.CLOUDFLARE_API_TOKEN;
        this.domain = 'sibylline.dev';
        this.baseUrl = 'https://api.cloudflare.com/client/v4';
    }

    async makeRequest(method, endpoint) {
        return new Promise((resolve, reject) => {
            const url = new URL(this.baseUrl + endpoint);
            const options = {
                method,
                headers: {
                    'Authorization': `Bearer ${this.apiToken}`,
                    'Content-Type': 'application/json'
                }
            };

            const req = https.request(url, options, (res) => {
                let body = '';
                res.on('data', chunk => body += chunk);
                res.on('end', () => {
                    try {
                        const response = JSON.parse(body);
                        if (response.success) {
                            resolve(response.result);
                        } else {
                            reject(new Error(`API Error: ${response.errors?.map(e => e.message).join(', ') || 'Unknown error'}`));
                        }
                    } catch (err) {
                        reject(new Error(`Parse Error: ${err.message}`));
                    }
                });
            });

            req.on('error', reject);
            req.end();
        });
    }

    async verifyToken() {
        console.log('šŸ”‘ Verifying API token...');
        try {
            const user = await this.makeRequest('GET', '/user/tokens/verify');
            console.log(`āœ… Token valid! Status: ${user.status}`);
            return true;
        } catch (error) {
            console.error('āŒ Token verification failed:', error.message);
            return false;
        }
    }

    async checkDomain() {
        console.log(`🌐 Checking domain: ${this.domain}`);
        try {
            const zones = await this.makeRequest('GET', '/zones');
            const zone = zones.find(z => z.name === this.domain);
            
            if (!zone) {
                console.error(`āŒ Domain ${this.domain} not found in your Cloudflare account`);
                console.log('\nšŸ“‹ To add your domain to Cloudflare:');
                console.log('1. Go to https://dash.cloudflare.com/');
                console.log('2. Click "Add site"');
                console.log(`3. Enter "${this.domain}"`);
                console.log('4. Follow the setup instructions');
                console.log('5. Update your nameservers at your domain registrar');
                return null;
            }
            
            console.log(`āœ… Domain found: ${zone.name}`);
            console.log(`   Status: ${zone.status}`);
            console.log(`   Plan: ${zone.plan.name}`);
            console.log(`   Zone ID: ${zone.id}`);
            
            if (zone.status === 'active') {
                console.log('āœ… Domain is active and ready for email routing');
            } else {
                console.log(`āš ļø  Domain status is "${zone.status}" - may need nameserver configuration`);
            }
            
            return zone;
        } catch (error) {
            console.error('āŒ Error checking domain:', error.message);
            return null;
        }
    }

    async checkDNSRecords(zoneId) {
        console.log('\nšŸ” Checking DNS records...');
        try {
            const records = await this.makeRequest('GET', `/zones/${zoneId}/dns_records`);
            
            const aRecords = records.filter(r => r.type === 'A');
            const mxRecords = records.filter(r => r.type === 'MX');
            const cnameRecords = records.filter(r => r.type === 'CNAME');
            
            console.log(`Found ${records.length} DNS records:`);
            console.log(`  - ${aRecords.length} A records`);
            console.log(`  - ${mxRecords.length} MX records`);
            console.log(`  - ${cnameRecords.length} CNAME records`);
            
            if (mxRecords.length > 0) {
                console.log('\nšŸ“§ Existing MX records:');
                mxRecords.forEach(record => {
                    console.log(`  - ${record.name} → ${record.content} (priority: ${record.priority})`);
                });
                console.log('āš ļø  Note: Email routing will replace existing MX records');
            } else {
                console.log('āœ… No existing MX records - clean slate for email routing');
            }
            
            return records;
        } catch (error) {
            console.error('āŒ Error checking DNS records:', error.message);
            return [];
        }
    }

    async run() {
        console.log('šŸ” Cloudflare Setup Verification');
        console.log('================================\n');

        if (!this.apiToken) {
            console.error('āŒ CLOUDFLARE_API_TOKEN environment variable not set');
            console.log('\nPlease set your API token:');
            console.log('export CLOUDFLARE_API_TOKEN="your_token_here"');
            process.exit(1);
        }

        console.log(`Domain: ${this.domain}`);
        console.log(`Token: ${this.apiToken.substring(0, 10)}...${this.apiToken.slice(-4)}\n`);

        // Verify token
        const tokenValid = await this.verifyToken();
        if (!tokenValid) {
            console.log('\nšŸ’” Token issues might be due to:');
            console.log('- Incorrect token (copy/paste error)');
            console.log('- Insufficient permissions');
            console.log('- Token expired or revoked');
            process.exit(1);
        }

        // Check domain
        const zone = await this.checkDomain();
        if (!zone) {
            process.exit(1);
        }

        // Check DNS records
        await this.checkDNSRecords(zone.id);

        console.log('\nšŸŽ‰ Verification complete!');
        console.log('\nāœ… Ready to proceed with email routing setup');
        console.log('\nNext step: Run the email setup script:');
        console.log('node cloudflare-email-setup.js');
    }
}

// Run verification
if (require.main === module) {
    const verifier = new CloudflareVerifier();
    verifier.run().catch(error => {
        console.error('\nšŸ’„ Verification failed:', error.message);
        process.exit(1);
    });
}

module.exports = CloudflareVerifier;

vitest.config.js (824 B)

import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    globals: true,
    environment: 'node',
    include: ['tests/**/*.test.js', 'src/**/*.test.js'],
    exclude: [
      'node_modules/**',
      '_site/**',
      'backup/**',
      'src/_data/builtwith/**'
    ],
    coverage: {
      provider: 'v8',
      reporter: ['text', 'html', 'lcov'],
      include: [
        'src/_eleventy/**/*.js',
        'scripts/**/*.js',
        'eleventy.config.js'
      ],
      exclude: [
        'tests/**',
        'src/_data/**',
        'src/_includes/**',
        'src/js/**' // Exclude browser JS from coverage for now
      ],
      thresholds: {
        global: {
          branches: 80,
          functions: 80,
          lines: 80,
          statements: 80
        }
      }
    }
  }
});

šŸ¤– LLM View - CXML Format

Copy the text below and paste it to an LLM for analysis:

šŸ’” Tip: Click in the text area and press Ctrl+A (Cmd+A on Mac) to select all, then Ctrl+C (Cmd+C) to copy.